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_string_a(s,code)!< Encode array string to base64.!<!<```fortran!< use befor64!< use penf!< character(len=:), allocatable :: code64!< call b64_encode(s=['hello','world'], code=code64)!< print "(A)", code64!<```!=> aGVsbG93b3JsZA== <<<character(*),intent(in)::s(1:)!< String 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 ('=').integer(I4P)::BYCHS!< Bytes of character string.BYCHS=byte_size(s(1))*size(s,dim=1)allocate(nI1P(1:((BYCHS+2)/3)*3));nI1P=0_I1Pcode=repeat(' ',((BYCHS+2)/3)*4)nI1P=transfer(s,nI1P)padd=mod((BYCHS),3_I4P);if(padd>0_I4P)padd=3_I4P-paddcall encode_bits(bits=nI1P,padd=padd,code=code)endsubroutine b64_encode_string_a