56 CHARACTER(LEN=JP_ARGLEN),
ALLOCATABLE,
SAVE ::
cl_args(:)
57 INTEGER(KIND=JPIM),
SAVE ::
n_args = -1
67 CHARACTER(LEN=*),
INTENT(IN) :: CDTERM
72 CHARACTER(LEN=*),
INTENT(OUT) :: CDTERM
78 #ifdef USE_8_BYTE_WORDS 80 mpi_initialized => mpi_initialized8, mpi_comm_size => mpi_comm_size8, &
81 mpi_comm_rank => mpi_comm_rank8, mpi_bcast => mpi_bcast8, &
85 INTEGER(KIND=JPIM) :: IARGS
86 INTEGER(KIND=JPIM) :: IERROR, IROOT, ICOUNT
87 INTEGER(KIND=JPIM) :: IRANK, INUMPROC, IRET, J
89 INTEGER(KIND=JPIM) :: IARGC
91 INTEGER(KIND=JPIM) :: IARGC_C
92 CHARACTER(LEN=LEN(CL_TERMINATE)) :: ENV_CL_TERMINATE
93 CHARACTER(LEN=JP_ARGLEN) :: CLARG0
96 INTEGER(KIND=JPIM) :: ICOMM
105 CALL mpi_initialized(llinit,iret)
106 IF (llinit == 0)
THEN 107 CALL mpi_init(ierror)
117 icomm = mpi_comm_world
120 CALL mpi_comm_size(icomm,inumproc,ierror)
121 CALL mpi_comm_rank(icomm,irank,ierror)
124 IF (irank == 1 .OR. inumproc == 1)
THEN 125 CALL get_environment_variable(
'MPL_CL_TERMINATE',env_cl_terminate)
126 IF (env_cl_terminate /=
' ')
cl_terminate = env_cl_terminate
128 llcargs = (iargs < 0)
131 llcargs = (iargs >= 0)
138 IF (iargs < 0) iargs = 0
154 IF (inumproc > 1)
THEN 157 IF (irank == 1) iargs =
n_args 159 CALL mpi_bcast(iargs,1,mpi_integer,iroot,icomm,ierror)
161 IF (irank > 1)
ALLOCATE(
cl_args(0:iargs))
165 CALL mpi_bcast(
cl_args(j),icount,mpi_byte,iroot,icomm,ierror)
168 IF (irank > 1)
n_args = iargs
174 INTEGER(KIND=JPIM),
INTENT(IN) :: KARG
175 CHARACTER(LEN=*),
INTENT(OUT) :: CDARG
177 INTEGER(KIND=JPIM) :: IARGC
180 IF (karg >= 0 .AND. karg <=
n_args)
THEN 188 INTEGER(KIND=JPIM) :: IRET
integer(kind=jpim), parameter jp_arglen
integer(kind=jpim) mplusercomm
integer(kind=jpim) mpl_numproc
void putarg_c(const int *argno, const char *arg, int arg_len)
void getarg_c(const int *argno, char *arg, const int arg_len)
subroutine, public mpl_arg_get_cl_terminate(CDTERM)
integer(kind=jpim) function, public mpl_iargc()
void putarg_info(const int *argc, const char *cterm, int cterm_len)
subroutine getarg(IARG, CLARG)
integer(kind=jpim), save n_args
character(len=10), save cl_terminate
subroutine, public mpl_arg_set_cl_terminate(CDTERM)
character(len=jp_arglen), dimension(:), allocatable, save cl_args
subroutine, public mpl_getarg(KARG, CDARG)