1 SUBROUTINE rien(CDNAMC,KTYPTR,PSLAPO,PLOCEN,&
2 & PCODIL,KTRONC,KDGL,KNXLON,KNLOPA,KNOZPA,PSINLA,&
3 & KHTYP,KFLEV,PREF,PVALH,PVBH,KQUAD,&
4 & KDGSA,KDGEN,PEPS,LDFICP,KULOUT)
103 INTEGER(KIND=JPIM),
INTENT(INOUT) :: KFLEV
104 INTEGER(KIND=JPIM),
INTENT(IN) :: KDGSA
105 INTEGER(KIND=JPIM),
INTENT(IN) :: KDGEN
106 CHARACTER(LEN=16) ,
INTENT(IN) :: CDNAMC
107 INTEGER(KIND=JPIM),
INTENT(INOUT) :: KTYPTR
108 REAL(KIND=JPRB) ,
INTENT(INOUT) :: PSLAPO
109 REAL(KIND=JPRB) ,
INTENT(INOUT) :: PLOCEN
110 REAL(KIND=JPRB) ,
INTENT(INOUT) :: PCODIL
111 INTEGER(KIND=JPIM),
INTENT(INOUT) :: KTRONC
112 INTEGER(KIND=JPIM),
INTENT(INOUT) :: KDGL
113 INTEGER(KIND=JPIM),
INTENT(INOUT) :: KNXLON
114 INTEGER(KIND=JPIM),
INTENT(INOUT) :: KNLOPA(kdgsa:kdgen)
115 INTEGER(KIND=JPIM),
INTENT(INOUT) :: KNOZPA(kdgsa:kdgen)
116 REAL(KIND=JPRB) ,
INTENT(OUT) :: PSINLA(kdgsa:kdgen)
117 INTEGER(KIND=JPIM),
INTENT(INOUT) :: KHTYP
118 REAL(KIND=JPRB) ,
INTENT(INOUT) :: PREF
119 REAL(KIND=JPRB) ,
INTENT(INOUT) :: PVALH(0:kflev)
120 REAL(KIND=JPRB) ,
INTENT(INOUT) :: PVBH(0:kflev)
121 INTEGER(KIND=JPIM),
INTENT(INOUT) :: KQUAD
122 REAL(KIND=JPRB) ,
INTENT(IN) :: PEPS
123 LOGICAL ,
INTENT(OUT) :: LDFICP
124 INTEGER(KIND=JPIM),
INTENT(IN) :: KULOUT
128 INTEGER(KIND=JPIM),
ALLOCATABLE :: INLOPA(:),INOZPA(:)
129 REAL(KIND=JPRB),
ALLOCATABLE :: ZVALH(:),ZVBH(:)
130 REAL(KIND=JPRB),
ALLOCATABLE :: ZSINLA(:)
133 INTEGER(KIND=JPIM) :: IDGL, IDGNH, IERR, IERRA, IHTYP, INIVER, INLATI, &
134 & INXLON, IQUADF, ISTROW, ITRONC, ITYPTR, JFLEV, JL, JLAT, JLEV, IMAXLEV, &
135 & IMAXGL, IMAXLON, IMAXTRUNC
137 REAL(KIND=JPRB) :: ZCLOPO, ZCODIL, ZEPS, ZMUNPOL, ZREF, ZSLAPO, ZSLOPO, ZX1
138 REAL(KIND=JPRB) :: ZX2
139 REAL(KIND=JPRB) :: ZHOOK_HANDLE
143 #include "abor1.intfb.h" 154 CALL falimu(imaxlev,imaxtrunc,imaxgl,imaxlon)
155 ALLOCATE(inlopa(imaxgl))
156 ALLOCATE(inozpa(imaxgl))
157 ALLOCATE(zsinla(imaxgl))
158 ALLOCATE(zvalh(0:imaxlev))
159 ALLOCATE(zvbh(0:imaxlev))
164 WRITE(kulout,*)
' HAF, HAF : CADRE : ',cdnamc
165 CALL facies(cdnamc,ityptr,zslapo,zclopo,zslopo,zcodil,itronc,&
166 & inlati,inxlon,inlopa,inozpa,zsinla,iniver,zref,zvalh,zvbh,llgard)
168 IF (inlati > kdgen-kdgsa+1)
THEN 169 CALL abor1(
'RIEN : MAX. NUMBER OF LATITUDE ROWS IN MODEL TOO SMALL !')
171 IF (iniver > kflev)
THEN 172 CALL abor1(
'RIEN : MAX. NUMBER OF LEVEL IN MODEL TOO SMALL !')
181 WRITE(kulout,*)
'YOU ARE USING A FILE ALADIN ',&
182 &
'WHILE THE MODEL EXPECTS A FILE ARPEGE' 183 CALL abor1(
'RIEN: ABOR1 CALLED 2a')
188 IF(inlopa(1) == inlopa(int(inlati/2)))
THEN 190 WRITE(kulout,*)
'FILE HAS REGULAR GRID ' 193 WRITE(kulout,*)
'FILE HAS REDUCED GRID ' 198 zmunpol = 0.9999999999_jprb
199 IF(zsinla(1) >= zmunpol)
THEN 200 WRITE(kulout,*)
' FILE CONTAINS THE POLES ' 206 IF(inlopa(1) /= inlopa(2))
THEN 207 WRITE(kulout,*)
' FILE ROWS #1 AND #2 DO NOT HAVE THE ',&
208 &
'SAME NUMBER OF LONGITUDES' 209 WRITE(kulout,*)
' THIS MAKES THE MODEL UNABLE TO READ THE '&
211 CALL abor1(
'RIEN: ABOR1 CALLED 2b')
214 WRITE(kulout,*)
' FILE DOES NOT CONTAINS THE POLES ' 223 zx1 = 1.0_jprb - zsinla(2)
224 zx2 = zsinla(2) - zsinla(3)
227 WRITE(kulout,*)
'FILE HAS LOBATTO QUADRATURE' 228 IF(mod(inlati,2) == 0)
THEN 229 WRITE(kulout,*)
' WARNING ! INLATI IS EVEN !' 233 WRITE(kulout,*)
'FILE HAS GAUSSIAN QUADRATURE' 234 IF(mod(inlati,2) == 1)
THEN 235 WRITE(kulout,*)
' WARNING ! INLATI IS ODD !' 240 WRITE(kulout,*)
'FILE HAS GAUSSIAN QUADRATURE' 241 IF(mod(inlati,2) == 1)
THEN 242 WRITE(kulout,*)
' WARNING ! INLATI IS ODD !' 257 plocen = sign(1.0_jprb,zslopo)*acos(zclopo)
262 pvalh(jlev) = zvalh(jlev)
263 pvbh(jlev) = zvbh(jlev)
272 psinla(jl) = zsinla(jl+1)
273 knlopa(jl) = inlopa(jl+1)
274 knozpa(jl) = inozpa(jl+1)
277 psinla(kdgl+1 - jl) = - zsinla(jl+1)
278 knlopa(kdgl+1 - jl) = inlopa(jl+1)
279 knozpa(kdgl+1 - jl) = inozpa(jl+1)
284 psinla(jl) = zsinla(jl)
285 knlopa(jl) = inlopa(jl)
286 knozpa(jl) = inozpa(jl)
289 psinla(kdgl - jl + 1) = - zsinla(jl)
290 knlopa(kdgl - jl + 1) = inlopa(jl)
291 knozpa(kdgl - jl + 1) = inozpa(jl)
295 knlopa(0) = inlopa(1)
296 knozpa(0) = inozpa(1)
298 IF (kdgen > kdgl)
THEN 299 psinla(kdgl+1) = - 1.0_jprb
300 knlopa(kdgl+1) = inlopa(1)
301 knozpa(kdgl+1) = inozpa(1)
subroutine rien(CDNAMC, KTYPTR, PSLAPO, PLOCEN, PCODIL, KTRONC, KDGL, KNXLON, KNLOPA, KNOZPA, PSINLA, KHTYP, KFLEV, PREF, PVALH, PVBH, KQUAD, KDGSA, KDGEN, PEPS, LDFICP, KULOUT)
subroutine falimu(KXNIVV, KXTRON, KXLATI, KXLONG)
subroutine facies(CDNOMC, KTYPTR, PSLAPO, PCLOPO, PSLOPO, PCODIL, KTRONC, KNLATI, KNXLON, KNLOPA, KNOZPA, PSINLA, KNIVER, PREFER, PAHYBR, PBHYBR, LDGARD)