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_I2_a(n,code)!< Encode array numbers to base64 (I2P).!<!<```fortran!< use befor64!< use penf!< character(len=:), allocatable :: code64!< call b64_encode(n=[-203_I2P,-10_I2P], code=code64)!< print "(A)", code64!<```!=> Nf/2/w== <<<integer(I2P),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*BYI2P+2)/3)*3));nI1P=0_I1Pcode=repeat(' ',((ns*BYI2P+2)/3)*4)nI1P=transfer(n,nI1P)padd=mod((ns*BYI2P),3_I8P);if(padd>0_I4P)padd=3_I4P-paddcall encode_bits(bits=nI1P,padd=padd,code=code)endsubroutine b64_encode_I2_a