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
subroutine b64_encode_up(up,code)!< Encode an unlimited polymorphic scalar to base64.!<!<```fortran!< use befor64!< use penf!< character(len=:), allocatable :: code64!< call b64_encode_up(up=1._R8P, code=code64)!< print "(A)", code64!<```!=> AAAAAAAA8D8= <<<class(*),intent(in)::up!< Unlimited polymorphic variable to be encoded.character(len=:),allocatable,intent(out)::code!< Encoded scalar.select type(up)type is(real(R8P))call b64_encode_R8(n=up,code=code)type is(real(R4P))call b64_encode_R4(n=up,code=code)type is(integer(I8P))call b64_encode_I8(n=up,code=code)type is(integer(I4P))call b64_encode_I4(n=up,code=code)type is(integer(I2P))call b64_encode_I2(n=up,code=code)type is(integer(I1P))call b64_encode_I1(n=up,code=code)type is(character(*))call b64_encode_string(s=up,code=code)endselect endsubroutine b64_encode_up