2 & (fa, krep, krang, cdnoma, kvalco, klonga, &
3 & pchamp, ldcosp, ldundf, pundf)
12 INTEGER (KIND=JPLIKB) KREP, KRANG, KLONGA
14 INTEGER (KIND=JPLIKB) KVALCO(*)
15 REAL (KIND=JPDBLR) PCHAMP(*)
16 REAL (KIND=JPDBLR) PUNDF
18 LOGICAL LDCOSP, LDUNDF
23 REAL (KIND=JPDBLR) :: Z1, Z2, Z3, Z4
24 INTEGER (KIND=JPLIKB) IRANGC
25 INTEGER (KIND=JPLIKB) INLATI, INXLON, IDLUXG, IDGUXG, IDZONL, IDZONG
26 INTEGER (KIND=JPLIKB) ILCHAM
27 INTEGER (KIND=JPLIKB) ICPLSIZE, INBITS
28 INTEGER (KIND=JPLIKB) ILAT, ILON, IPACK
29 INTEGER (KIND=JPLIKB) ILAT1, ILAT2, ILAT3, ILAT4
30 INTEGER (KIND=JPLIKB) ILON1, ILON2, ILON3, ILON4
31 INTEGER (KIND=JPLIKB) ILATMIN, ILATMAX, ILONMIN, ILONMAX
32 INTEGER (KIND=JPLIKB) INIMES, INUMER
34 CHARACTER(LEN=FA%JPLMES) CLMESS
35 CHARACTER(LEN=FA%JPLSPX) CLNSPR
38 REAL (KIND=JPDBLR) :: ZUNDF, ZMULTI
39 INTEGER (KIND=JPLIKM) :: ILGRIB, IGRIBH, IRET
40 INTEGER (KIND=JPLIKB) :: INOD, INOV
41 CHARACTER,
ALLOCATABLE :: CLGRIB (:)
43 REAL(KIND=JPRB) :: ZHOOK_HANDLE
54 irangc=fa%FICHIER(krang)%NUCADR
55 inlati=fa%CADRE(irangc)%NLATIT
56 inxlon=fa%CADRE(irangc)%NXLOPA
58 ilcham = inlati * inxlon
59 idluxg = fa%CADRE(irangc)%NLOPAR (4)
60 idguxg = fa%CADRE(irangc)%NLOPAR (6)
61 idzonl = fa%CADRE(irangc)%NLOPAR (7)
62 idzong = fa%CADRE(irangc)%NLOPAR (8)
67 ilonmin=idzonl+icplsize
68 ilonmax=idluxg-icplsize-idzonl+1
69 ilatmin=idzong+icplsize
70 ilatmax=idguxg-icplsize-idzong+1
75 ALLOCATE (clgrib(ilgrib))
76 clgrib = transfer(kvalco(5:klonga), clgrib)
77 CALL grib_new_from_message_char (igribh, clgrib, status=iret)
79 IF (iret /= grib_success)
THEN 94 IF ((inod < ilcham) .OR. &
95 & (inov < (ilcham-(ilatmax-ilatmin-1)*(ilonmax-ilonmin-1))))
THEN 98 ELSEIF ((inod > ilcham) .OR. &
99 & (inov > (ilcham-(ilatmax-ilatmin-1)*(ilonmax-ilonmin-1))))
THEN 107 pchamp(1:ilcham) = pchamp(1:ilcham) / zmulti
108 zundf = zundf / zmulti
111 DO ilat = ilatmin+1, ilatmax-1
112 DO ilon = ilonmin+1, ilonmax-1
115 pchamp((ilat-1)*inxlon+ilon) = pundf
129 z1 = 1.0_jprb / (ilon-ilon1)
130 z2 = 1.0_jprb / (ilon2-ilon)
131 z3 = 1.0_jprb / (ilat-ilat3)
132 z4 = 1.0_jprb / (ilat4-ilat)
134 pchamp((ilat-1)*inxlon+ilon) = &
135 & (z1*pchamp((ilat1-1)*inxlon+ilon1) &
136 & +z2*pchamp((ilat2-1)*inxlon+ilon2) &
137 & +z3*pchamp((ilat3-1)*inxlon+ilon3) &
138 & +z4*pchamp((ilat4-1)*inxlon+ilon4)) &
147 llfata=llmoer(krep,krang)
149 IF (fa%LFAMOP.OR.llfata)
THEN 154 WRITE (unit=clmess,fmt=
"('KREP=',I4,', KRANG=',I4,', CDPREF=''',A,'''')") &
155 & krep, krang, cdnoma
157 & (fa,inumer,inimes,krep,.false.,clmess, &
158 & clnspr,
'',.false.)
166 #include "facom2.llmoer.h" subroutine fadcpl_fort(FA, KREP, KRANG, CDNOMA, KVALCO, KLONGA, PCHAMP, LDCOSP, LDUNDF, PUNDF)
subroutine, public igrib_release(KHANDLE)
integer, parameter jpdblr
subroutine faipar_fort(FA, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI, LDRLFI)
integer(kind=jplikb), parameter jpniil