Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Source Code
pure subroutine b64_encode_R16_a(n,code)!< Encode array numbers to base64 (R16P).!<!<```fortran!< use befor64!< use penf!< character(len=:), allocatable :: code64!< call b64_encode(n=[121._R16P,2.32_R16P], code=code64)!< print "(A)", code64!<```!=> AAAAAABAXkCPwvUoXI8CQA== <<<real(R16P),intent(in)::n(1:)!< Array of numbers to be encoded.character(len=:),allocatable,intent(out)::code!< Encoded array.integer(I1P),allocatable::nI1P(:)!< One byte integer array containing n.integer(I4P)::padd!< Number of padding characters ('=').integer(I8P)::ns!< Size of n.ns=size(n,dim=1)allocate(nI1P(1:((ns*BYR16P+2)/3)*3));nI1P=0_I1Pcode=repeat(' ',((ns*BYR16P+2)/3)*4)nI1P=transfer(n,nI1P)padd=mod((ns*BYR16P),3_I8P);if(padd>0_I4P)padd=3_I4P-paddcall encode_bits(bits=nI1P,padd=padd,code=code)endsubroutine b64_encode_R16_a