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.
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_I8(n,code)!< Encode scalar number to base64 (I8P).!<!<```fortran!< use befor64!< use penf!< character(len=:), allocatable :: code64!< call b64_encode(n=23_I8P, code=code64)!< print "(A)", code64!<```!=> FwAAAAAAAAA= <<<integer(I8P),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:((BYI8P+2)/3)*3));nI1P=0_I1Pcode=repeat(' ',((BYI8P+2)/3)*4)nI1P=transfer(n,nI1P)padd=mod((BYI8P),3_I8P);if(padd>0_I4P)padd=3_I4P-paddcall encode_bits(bits=nI1P,padd=padd,code=code)endsubroutine b64_encode_I8