6 SUBROUTINE readhead(KGLB,PGLBLATMIN,PGLBLATMAX,PGLBLONMIN,PGLBLONMAX,&
7 knblat,knblon,pcutval,pdlat,pdlon,plat,plon,kerr)
57 USE yomhook
,ONLY : lhook, dr_hook
58 USE parkind1
,ONLY : jprb
66 INTEGER,
INTENT(IN) :: kglb
67 REAL,
INTENT(OUT) :: pglblatmin
68 REAL,
INTENT(OUT) :: pglblatmax
69 REAL,
INTENT(OUT) :: pglblonmin
70 REAL,
INTENT(OUT) :: pglblonmax
71 INTEGER,
INTENT(OUT) :: knblat
72 INTEGER,
INTENT(OUT) :: knblon
73 REAL,
INTENT(OUT) :: pcutval
74 REAL,
INTENT(OUT) :: pdlat
75 REAL,
INTENT(OUT) :: pdlon
76 REAL,
DIMENSION(:),
POINTER :: plat
77 REAL,
DIMENSION(:),
POINTER :: plon
78 INTEGER,
INTENT(OUT) :: kerr
90 REAL,
DIMENSION(7) :: zval
92 CHARACTER(LEN=100) :: ystring
93 CHARACTER(LEN=100) :: ystring1
94 CHARACTER(LEN=100) :: yval
97 INTEGER :: ifraclength
98 CHARACTER(LEN=2) :: ylength
99 CHARACTER(LEN=2) :: yfraclength
100 CHARACTER(LEN=10) :: yinternalformat
101 REAL(KIND=JPRB) :: zhook_handle
104 IF (lhook) CALL dr_hook(
'READHEAD',0,zhook_handle)
110 READ (kglb,
'(A100)',end=99) ystring
118 READ (kglb,
'(A100)',end=99) ystring
119 ystring=adjustl(ystring)
124 SELECT CASE (ystring(1:5))
127 ystring1=ystring(10:100)
130 ystring1=ystring(8:100)
133 ystring1=ystring(7:100)
136 ystring1=ystring(7:100)
139 ystring1=ystring(6:100)
142 ystring1=ystring(6:100)
145 ystring1=ystring(6:100)
148 ystring1=ystring(6:100)
154 inindex=index(ystring1,
'N')
155 isindex=index(ystring1,
'S')
156 ieindex=index(ystring1,
'E')
157 iwindex=index(ystring1,
'W')
158 yval=adjustl(ystring1)
159 IF (inindex/=0) yval=adjustl(ystring1(1:inindex-1))
160 IF (isindex/=0) yval=
'-'//adjustl(ystring1(1:isindex-1))
161 IF (ieindex/=0) yval=adjustl(ystring1(1:ieindex-1))
162 IF (iwindex/=0) yval=
'-'//adjustl(ystring1(1:iwindex-1))
167 ipoint=index(yval,
'.')
168 IF (ipoint==0) yval=adjustl(adjustr(yval)//
'.')
173 ilength=len_trim(adjustl(adjustr(yval)))
174 ifraclength=ilength-index(yval,
'.')
175 WRITE(ylength,
'(I2)') ilength
176 WRITE(yfraclength,
'(I2)') ifraclength
177 yinternalformat=
'(F'//ylength//
'.'//yfraclength//
')'
182 READ(yval,adjustl(yinternalformat)) zval(ihead)
195 pglblonmax=zval(4)+nint((zval(5)-zval(4)+180.*(1.0+xsurf_epsilon))/360.)*360.
199 pdlat=(pglblatmax-pglblatmin)/knblat
200 pdlon=(pglblonmax-pglblonmin)/knblon
201 ALLOCATE(plat(knblat))
202 ALLOCATE(plon(knblon))
203 plat(:)=(/ (pglblatmax-(jlat-0.5)*pdlat, jlat=1,knblat) /)
204 plon(:)=(/ (pglblonmin+(jlon-0.5)*pdlon, jlon=1,knblon) /)
206 IF (lhook) CALL dr_hook(
'READHEAD',1,zhook_handle)
210 IF (lhook) CALL dr_hook(
'READHEAD',1,zhook_handle)
subroutine readhead(KGLB, PGLBLATMIN, PGLBLATMAX, PGLBLONMIN, PGLBLONMAX, KNBLAT, KNBLON, PCUTVAL, PDLAT, PDLON, PLAT, PLON, KERR)