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(n,code)!< Encode scalar number to base64 (R16P).!<!<```fortran!< use befor64!< use penf!< character(len=:), allocatable :: code64!< call b64_encode(n=134.231_R16P, code=code64)!< print "(A)", code64!<```!=> CKwcWmTHYEA= <<<real(R16P),intent(in)::n!< Number to be encoded.character(len=:),allocatable,intent(out)::code!< Encoded scalar.integer(I1P),allocatable::nI1P(:)!< One byte integer array containing n.integer(I4P)::padd!< Number of padding characters ('=').allocate(nI1P(1:((BYR16P+2)/3)*3));nI1P=0_I1Pcode=repeat(' ',((BYR16P+2)/3)*4)nI1P=transfer(n,nI1P)#if defined _R16Ppadd=mod((BYR16P),3_I2P);if(padd>0_I4P)padd=3_I4P-padd#elsepadd=mod((BYR16P),3_I1P);if(padd>0_I4P)padd=3_I4P-padd#endifcall encode_bits(bits=nI1P,padd=padd,code=code)endsubroutine b64_encode_R16