The main documentation of the Initialize_Communication Procedure contains additional explanation of this code listing.
subroutine Initialize_Communication (Communication) ! Input/Output variable. ! Place holder to allow generic procedure calls -- real data associated ! with the communication is stored in global class variables for easy ! access. type(Communication_type), intent(inout) :: Communication !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ! Verify requirements - none. ! Initialize parallel/serial processor information. ifdef([USE_PGSLIB],[ ! PGSLib Parallel Initialization. call PGSLib_Initialize (1) NPEs = PGSLib_Inquire_nPE() this_PE = PGSLib_Inquire_thisPE_Actual() IO_PE = PGSLib_Inquire_IO_ROOT_PE() this_is_IO_PE = PGSLib_Inquire_IO_P() Scope = PGSLib_Global Parallel = .true. Parallel_Library = 'PGSLib' ],[ ! Serial initialization. NPEs = 1 this_PE = 1 IO_PE = 1 this_is_IO_PE = .true. Parallel = .false. Parallel_Library = 'None' ]) Serial = .not.Parallel if (this_is_IO_PE) then delta_PE_IO_PE = 1 else delta_PE_IO_PE = 0 end if this_is_not_IO_PE = .not. this_is_IO_PE ! Verify guarantees. VERIFY(Valid_State(Communication),5) ! Communication is now valid. return end subroutine Initialize_Communication