23 REAL(KIND=JPRD) ,
INTENT(IN) :: SOURCE
24 CHARACTER(LEN=*),
INTENT(IN) :: MOLD
26 CALL ecmwf_transfer(c,min(8,len(mold)),source,8)
31 CHARACTER(LEN=*),
INTENT(IN) :: SOURCE
32 REAL(KIND=JPRD) ,
INTENT(IN) :: MOLD
34 CALL ecmwf_transfer(z,8,source,len(source))
39 REAL(KIND=JPRM) ,
INTENT(IN) :: SOURCE
40 CHARACTER(LEN=*),
INTENT(IN) :: MOLD
42 CALL ecmwf_transfer(c,min(4,len(mold)),source,4)
47 CHARACTER(LEN=*),
INTENT(IN) :: SOURCE
48 REAL(KIND=JPRM) ,
INTENT(IN) :: MOLD
50 CALL ecmwf_transfer(z,4,source,len(source))
55 CHARACTER(LEN=*),
INTENT(IN) :: S
56 CHARACTER(LEN=MAX(1,LEN(S))) C
59 IF (s /=
' ') c = adjustl(s)
65 CHARACTER(LEN=*),
INTENT(IN) :: S
66 CHARACTER(LEN=MAX(1,LEN(S))) C
69 IF (s /=
' ') c = adjustr(s)
75 CHARACTER(LEN=*),
INTENT(INOUT) :: CDS
76 INTEGER(KIND=JPIM),
PARAMETER :: ICH_A = ichar(
'a')
77 INTEGER(KIND=JPIM),
PARAMETER :: ICHA = ichar(
'A')
78 INTEGER(KIND=JPIM),
PARAMETER :: ICHZ = ichar(
'Z')
79 INTEGER(KIND=JPIM) :: I, ICH, NEW_ICH
84 IF ( ich >= icha .AND. ich <= ichz )
THEN 85 new_ich = ich + (ich_a - icha)
94 CHARACTER(LEN=*),
INTENT(INOUT) :: CDS
95 INTEGER(KIND=JPIM),
PARAMETER :: ICH_A = ichar(
'A')
96 INTEGER(KIND=JPIM),
PARAMETER :: ICHA = ichar(
'a')
97 INTEGER(KIND=JPIM),
PARAMETER :: ICHZ = ichar(
'z')
98 INTEGER(KIND=JPIM) :: I, ICH, NEW_ICH
103 IF ( ich >= icha .AND. ich <= ichz )
THEN 104 new_ich = ich + (ich_a - icha)
119 INTEGER(KIND=JPIM),
INTENT(IN) :: MYPROC, NPROC
120 INTEGER(KIND=JPIM),
INTENT(IN) :: TIMESTEP, MAX_TIMESTEP
121 CHARACTER(LEN=*),
INTENT(INOUT) :: S(:)
122 CHARACTER(LEN=2*LEN(S)) T
123 CHARACTER(LEN=2*LEN(S)) TT
124 INTEGER(KIND=JPIM) :: I, J, JJ, LOC_P, LEN_T, N
125 INTEGER(KIND=JPIM) :: NDIGS(4), NUM(4)
126 CHARACTER(LEN=6) FMT(4)
134 num(2) = max(nproc,myproc)
136 num(4) = max(max_timestep,timestep)
141 IF (num(j) /= 0)
THEN 142 ndigs(j) = 1 + log10(dble(abs(num(j))))
143 IF (num(j) < 0) ndigs(j) = ndigs(j) + 1
145 ndigs(j) = min(ndigs(j),9)
146 WRITE(fmt(j),
'("(i",i1,")")') ndigs(j)
155 loc_p =
index(s(1),
'%s')
162 t = adjustl(s(i))//
' ' 172 DO WHILE (j <= len_t)
173 IF (t(j:j) ==
'%')
THEN 176 SELECT CASE ( t(j:j) )
178 WRITE(tt(jj+1:jj+ndigs(1)),fmt(1)) myproc
181 WRITE(tt(jj+1:jj+ndigs(2)),fmt(2)) nproc
184 WRITE(tt(jj+1:jj+ndigs(3)),fmt(3)) i
187 WRITE(tt(jj+1:jj+ndigs(4)),fmt(4)) timestep
190 tt(jj+1:jj+2) =
'%'//t(j:j)
198 tt(jj+1:jj+1) = t(j:j)
211 IF (t(j:j) ==
' ')
THEN character(len=8) function stransfer_r8_to_str(SOURCE, MOLD)
character(len=max(1, len(s))) function, public sadjustl(S)
real(kind=jprm) function stransfer_str_to_r4(SOURCE, MOLD)
character(len=max(1, len(s))) function, public sadjustr(S)
real(kind=jprd) function stransfer_str_to_r8(SOURCE, MOLD)
subroutine, public tolower(CDS)
subroutine, public toupper(CDS)
character(len=4) function stransfer_r4_to_str(SOURCE, MOLD)
subroutine, public expand_string(MYPROC, nproc, timestep, max_timestep, s)