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_decode_up(code,up)!< Decode an unlimited polymorphic scalar from base64.!<!<```fortran!< use befor64!< use penf!< integer(I4P) :: scalar_I4!< call b64_decode_up(code='5wcAAA==',up=scalar_I4)!< print "(L1)", scalar_I4==2023_I4P!<```!=> T <<<character(*),intent(in)::code!< Encoded scalar.class(*),intent(out)::up!< Unlimited polymorphic variable to be decoded.select type(up)type is(real(R8P))call b64_decode_R8(code=code,n=up)type is(real(R4P))call b64_decode_R4(code=code,n=up)type is(integer(I8P))call b64_decode_I8(code=code,n=up)type is(integer(I4P))call b64_decode_I4(code=code,n=up)type is(integer(I2P))call b64_decode_I2(code=code,n=up)type is(integer(I1P))call b64_decode_I1(code=code,n=up)type is(character(*))call b64_decode_string(code=code,s=up)endselect endsubroutine b64_decode_up