7 KVERSION, KBUGFIX, ODATA, PFIELD, KRESP, HCOMMENT, HDIR)
17 USE modd_data_cover_par
, ONLY : nvegtype
21 USE modi_put_on_all_vegtypes
22 USE modi_vegtype_to_patch
33 INTEGER,
INTENT(IN) :: KPATCH
35 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
36 CHARACTER(LEN=*),
INTENT(IN) :: HREC
38 INTEGER,
INTENT(IN) :: KLUOUT
39 INTEGER,
INTENT(IN) :: KSIZE
40 INTEGER,
INTENT(IN) :: KVERSION
41 INTEGER,
INTENT(IN) :: KBUGFIX
42 LOGICAL,
DIMENSION(:),
INTENT(INOUT) :: ODATA
44 REAL,
DIMENSION(:,:),
INTENT(OUT):: PFIELD
46 INTEGER ,
INTENT(OUT) :: KRESP
47 CHARACTER(LEN=*),
OPTIONAL,
INTENT(OUT) :: HCOMMENT
48 CHARACTER(LEN=1),
OPTIONAL,
INTENT(IN) :: HDIR
56 CHARACTER(LEN=12) :: YREC
57 CHARACTER(LEN=3) :: YVEG
58 REAL,
DIMENSION(KSIZE, NVEGTYPE) :: ZFIELD
59 REAL,
DIMENSION(SIZE(PFIELD,1),1,KPATCH) :: ZFIELD_PATCH
60 REAL,
DIMENSION(SIZE(PFIELD,1),1,NVEGTYPE) :: ZFIELD_VEGTYPE
61 CHARACTER(LEN=1) :: YDIR
62 INTEGER :: INI, JP, IPATCH, JV, JV2
63 REAL(KIND=JPRB) :: ZHOOK_HANDLE
66 IF (
lhook)
CALL dr_hook(
'READ_SURF_ISBA_PAR_n',0,zhook_handle)
69 IF (
PRESENT(hdir)) ydir = hdir
78 CALL read_surf(hprogram,hrec,zfield(:,1:kpatch),kresp,hcomment=hcomment
80 IF (ini.NE.ksize)
THEN 81 CALL hor_interpol(dtco, u, gcp, kluout,zfield(:,1:kpatch),pfield(:,1
84 pfield(:,1:kpatch) = zfield(:,1:kpatch)
88 IF (
SIZE(pfield,2)==nvegtype)
THEN 90 zfield_patch(:,1,jp) = pfield(:,jp)
99 IF (kversion>8 .OR. (kversion==8 .AND. kbugfix>=1))
THEN 103 WRITE(yveg,fmt=
'(A1,I2.2)')
'V',jv
104 yrec =
trim(adjustl(hrec))//yveg
105 CALL read_surf(hprogram,yrec,zfield(:,jv),kresp,hcomment=hcomment
115 IF (.NOT.odata(jv))
THEN 118 zfield(:,jv) = zfield(:,jv2)
129 CALL read_surf(hprogram,hrec,zfield(:,:),kresp,hcomment=hcomment,hdir
134 IF (ini.NE.ksize)
THEN 135 CALL hor_interpol(dtco, u, gcp, kluout,zfield(:,:),zfield_vegtype(:,
138 zfield_vegtype(:,1,:) = zfield(:,:)
142 IF (
SIZE(pfield,2).NE.nvegtype)
THEN 143 ipatch =
SIZE(pfield,2)
148 pfield(:,jp) = max(pfield(:,jp),zfield_vegtype(:,1,jv))
152 pfield(:,:) = zfield_vegtype(:,1,:)
156 IF (
lhook)
CALL dr_hook(
'READ_SURF_ISBA_PAR_n',1,zhook_handle)
static const char * trim(const char *name, int *n)
subroutine put_on_all_vegtypes(KNI, KLAYER, KPATCH, KVEGTYPE, PFIELD_P
integer function vegtype_to_patch(IVEGTYPE, INPATCH)
subroutine hor_interpol(DTCO, U, GCP, KLUOUT, PFIELDIN, PFIELDOUT)
subroutine read_surf_isba_par_n(DTCO, U, GCP, KPATCH, HPROGRAM, H