59 USE modi_io_buff_clean
70 CHARACTER(LEN=*),
INTENT(IN) :: HGRID
71 REAL,
DIMENSION(:),
INTENT(IN) :: PGRID_PAR
73 CHARACTER(LEN=3),
INTENT(IN) :: HWRITE
74 CHARACTER(LEN=6),
INTENT(IN) :: CFILETYPE
100 REAL,
DIMENSION(:),
ALLOCATABLE :: ZSINLA, ZAHYBR, ZBHYBR
102 REAL,
DIMENSION(:),
ALLOCATABLE :: ZLAT_XY, ZDX, ZDY
104 REAL,
DIMENSION(0:1),
PARAMETER :: ZNIVA = (/0.,0./)
106 REAL,
DIMENSION(0:1),
PARAMETER :: ZNIVB = (/0.,1./)
108 REAL,
PARAMETER :: ZREFER = 101325.
110 INTEGER,
DIMENSION(11) :: IDATE
111 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INLOPA, INOZPA
123 REAL(KIND=JPRB) :: ZHOOK_HANDLE
127 IF (
lhook)
CALL dr_hook(
'WRITE_HEADER_FA',0,zhook_handle)
140 IF (hgrid==
"CONF PROJ ")
THEN 143 zlatmin,zlonmin,ilon,ilat )
146 ALLOCATE(zdx(icount))
147 ALLOCATE(zdy(icount))
153 ALLOCATE(inozpa((1+ilat)/2))
161 zsinla(3) = zlopo*zrad
162 zsinla(4) = zlapo*zrad
163 zsinla(5) = gcp%XLONC*zrad
164 zsinla(6) = gcp%XLATC*zrad
179 ityptr = -int(
REAL(ilon-1)/2.)
180 itronc = int(
REAL(ilat-1)/2.)
185 ELSEIF (hgrid==
"CARTESIAN ")
THEN 187 CALL abor1_sfx(
'WRITE_HEADER_FA: CARTESIAN NOT YET IMPLEMENTED')
189 ELSEIF (hgrid==
"LONLAT REG")
THEN 192 zlatmin,zlatmax,ilon,ilat )
197 WRITE(iluout,*)
' When Fa is used, NDIM_FULL must be >= 289, here NDIM_FULL = ',il
198 CALL abor1_sfx(
' WRITE_HEADER_FA: LONLAT REG, With Fa, NDIM_FULL must be >= 289')
203 ALLOCATE(inozpa((1+ilat)/2))
205 itronc= min(int((
REAL(ilat-2)/2.0)),21)
206 ityptr=-min(int((
REAL(ilon-2)/2.0)),21)
216 zsinla(5) =(zlonmin+(zlonmax-zlonmin)/2.)*zrad
217 zsinla(6) =(zlatmin+(zlatmax-zlatmin)/2.)*zrad
218 zsinla(7) =((zlonmax-zlonmin)/
REAL(ilon))*zrad
219 zsinla(8) =((zlatmax-zlatmin)/
REAL(ilat))*zrad
220 zsinla(9) =(zlonmax-zlonmin)*zrad
221 zsinla(10)=(zlatmax-zlatmin)*zrad
222 zsinla(13)=zlonmin*zrad
223 zsinla(14)=zlatmin*zrad
224 zsinla(15)=zlonmax*zrad
225 zsinla(16)=zlatmax*zrad
236 ELSEIF (hgrid==
"GAUSS ")
THEN 240 ALLOCATE(inlopa(inlati))
241 ALLOCATE(zsinla(inlati))
242 ALLOCATE(inozpa(inlati))
244 ALLOCATE(zlat_xy(il))
247 pcodil=zcodil,knlopa=inlopa,plat_xy=zlat_xy )
250 IF (zlapo>89.99 .AND. abs(zlopo)<0.00001)
THEN 256 zslapo=sin(zlapo*zrad)
257 zclopo=cos(zlopo*zrad)
258 zslopo=sin(zlopo*zrad)
260 iwork = int(
REAL(inlati)/2.0)
264 itronc=int(
REAL(inxlon-1)/2.)
266 itronc=int(
REAL(inxlon-3)/2.)
273 zsinla(jlat)=sin(zlat_xy(icount)*zrad)
274 icount=icount+inlopa(jlat)
279 ELSEIF (hgrid==
"IGN ")
THEN 281 CALL abor1_sfx(
'WRITE_HEADER_FA: IGN NOT YET IMPLEMENTED')
283 ELSEIF (hgrid==
"LONLATVAL ")
THEN 285 CALL abor1_sfx(
'WRITE_HEADER_FA: LONLATVAL NOT YET IMPLEMENTED')
289 ALLOCATE(zahybr(0:1))
290 ALLOCATE(zbhybr(0:1))
291 zahybr(0:1)=zniva(0:1)
292 zbhybr(0:1)=znivb(0:1)
296 CALL facade(
cdnomc,ityptr,zslapo,zclopo,zslopo,zcodil,itronc,inlati,inxlon, &
297 inlopa,inozpa,zsinla,1,zrefer,zahybr,zbhybr,.true.)
318 IF (
lhook)
CALL dr_hook(
'WRITE_HEADER_FA',1,zhook_handle)
character(len=28), save cfileout_fa
subroutine facade(CDNOMC, KTYPTR, PSLAPO, PCLOPO, PSLOPO, PCODIL, KTRONC, KNLATI, KNXLON, KNLOPA, KNOZPA, PSINLA, KNIVER, PREFER, PAHYBR, PBHYBR, LDGARD)
subroutine abor1_sfx(YTEXT)
subroutine get_gridtype_lonlat_reg(PGRID_PAR, PLONMIN, PLONMAX, PLATMIN, PLATMAX, KLON, KLAT, KL, PLON, PLAT)
character(len=6), save cdnomc
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine get_gridtype_conf_proj(PGRID_PAR, PLAT0, PLON0, PRPK, PBETA
subroutine fanmsg(KNIVAU, KULOUT)
subroutine get_gridtype_gauss(PGRID_PAR, KNLATI, PLAPO, PLOPO, PCODIL, KNLOPA, KL, PLAT, PLON, PLAT_XY, PLON_XY, PMESH_SIZE, PLONINF, PLATINF, PLONSUP, PLATSUP)
subroutine fandar(KREP, KNUMER, KDATEF)
subroutine faitou(KREP, KNUMER, LDNOMM, CDNOMF, CDSTTU, LDERFA, LDIMST, KNIMES, KNBARP, KNBARI, CDNOMC)