Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(out) | :: | count | |||
type(ESMF_KeywordEnforcer), | optional | :: | keywordEnforcer | |||
integer, | intent(out), | optional | :: | rc |
subroutine ESMF_UtilGetArgC(count, keywordEnforcer, rc) ! ! !ARGUMENTS: integer, intent(out) :: count type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below integer, intent(out), optional :: rc ! ! !STATUS: ! \begin{itemize} ! \item\apiStatusCompatibleVersion{5.2.0r} ! \end{itemize} ! ! !DESCRIPTION: ! This method returns the number of command line arguments specified ! when the process was started. ! ! The number of arguments returned does not include the name of the ! command itself - which is typically returned as argument zero. ! ! Some MPI implementations do not consistently provide command line ! arguments on PETs other than PET 0. It is therefore recommended ! that PET 0 call this method and broadcast the results to the other ! PETs by using the {\tt ESMF\_VMBroadcast()} method. ! ! The arguments are: ! ! \begin{description} ! \item [count] ! Count of command line arguments. ! \item [{[rc]}] ! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. ! \end{description} ! !EOP integer :: argc #if !defined (ESMF_NEEDSPXFGETARG) && !defined (ESMF_NEEDSGETARG) ! Fortran 2003 version (default and preferred) argc = command_argument_count () #elif defined (ESMF_NEEDSPXFGETARG) ! POSIX Fortran bindings (1003.9-1992) integer, external :: ipxfargc argc = ipxfargc () #else ! Non-Standard, but implemented by many compilers. integer, external :: iargc argc = iargc () #endif count = argc if (present (rc)) then ! TODO: On a few platforms, count will be erroneously returned as -1 ! when libesmf is a shared lib. See ticket #3614703. rc = merge (ESMF_SUCCESS, ESMF_FAILURE, count >= 0) end if end subroutine ESMF_UtilGetArgC