10 HPROGRAM, HATYPE, HNAME, HTYPE, HFNAM, HFTYP, PUNIF, PFIELD, OPRESENT)
20 TYPE(
sso_t),
INTENT(INOUT) :: USS
22 REAL,
DIMENSION(:,:),
INTENT(IN) :: PPAR_VEGTYPE
24 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
25 CHARACTER(LEN=3),
INTENT(IN) :: HATYPE
26 CHARACTER(LEN=*),
INTENT(IN) :: HNAME
27 CHARACTER(LEN=3),
INTENT(IN) :: HTYPE
28 CHARACTER(LEN=28),
DIMENSION(:),
INTENT(IN) :: HFNAM
29 CHARACTER(LEN=6),
DIMENSION(:),
INTENT(INOUT) :: HFTYP
30 REAL,
DIMENSION(:),
INTENT(IN) :: PUNIF
31 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PFIELD
32 LOGICAL,
DIMENSION(:),
INTENT(OUT) :: OPRESENT
37 HPROGRAM, HATYPE, HNAME, HTYPE, HFNAM, HFTYP, PUNIF, PFIELD, OPRESENT)
47 TYPE(
sso_t),
INTENT(INOUT) :: USS
49 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
50 CHARACTER(LEN=3),
INTENT(IN) :: HATYPE
51 CHARACTER(LEN=*),
INTENT(IN) :: HNAME
52 CHARACTER(LEN=3),
INTENT(IN) :: HTYPE
53 CHARACTER(LEN=28),
DIMENSION(:),
INTENT(IN) :: HFNAM
54 CHARACTER(LEN=6),
DIMENSION(:),
INTENT(INOUT) :: HFTYP
55 REAL,
DIMENSION(:),
INTENT(IN) :: PUNIF
56 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PFIELD
57 LOGICAL,
INTENT(OUT) :: OPRESENT
63 HPROGRAM, HATYPE, HNAME, HTYPE, HFNAM, HFTYP, PUNIF, PFIELD_TIME, OPRESENT)
70 REAL,
DIMENSION(:,:),
INTENT(IN) :: PPAR_VEGTYPE
75 TYPE(
sso_t),
INTENT(INOUT) :: USS
77 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
78 CHARACTER(LEN=3),
INTENT(IN) :: HATYPE
79 CHARACTER(LEN=*),
INTENT(IN) :: HNAME
80 CHARACTER(LEN=3),
INTENT(IN) :: HTYPE
81 CHARACTER(LEN=28),
DIMENSION(:,:),
INTENT(IN) :: HFNAM
82 CHARACTER(LEN=6),
DIMENSION(:,:),
INTENT(INOUT) :: HFTYP
83 REAL,
DIMENSION(:,:),
INTENT(IN) :: PUNIF
84 REAL,
DIMENSION(:,:,:),
INTENT(OUT) :: PFIELD_TIME
85 LOGICAL,
DIMENSION(:),
INTENT(OUT) :: OPRESENT
91 HPROGRAM, HATYPE, HNAME, HTYPE, HFNAM, HFTYP, PUNIF, PFIELD_TIME, OPRESENT)
101 TYPE(
sso_t),
INTENT(INOUT) :: USS
103 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
104 CHARACTER(LEN=3),
INTENT(IN) :: HATYPE
105 CHARACTER(LEN=*),
INTENT(IN) :: HNAME
106 CHARACTER(LEN=3),
INTENT(IN) :: HTYPE
107 CHARACTER(LEN=28),
DIMENSION(:,:),
INTENT(IN) :: HFNAM
108 CHARACTER(LEN=6),
DIMENSION(:,:),
INTENT(INOUT) :: HFTYP
109 REAL,
DIMENSION(:,:),
INTENT(IN) :: PUNIF
110 REAL,
DIMENSION(:,:,:),
INTENT(OUT) :: PFIELD_TIME
111 LOGICAL,
INTENT(OUT) :: OPRESENT
123 HPROGRAM, HATYPE, HNAME ,HTYPE, HFNAM, HFTYP, PUNIF, PFIELD, OPRESENT)
135 USE modd_data_cover_par
, ONLY : nvegtype
151 TYPE(
sso_t),
INTENT(INOUT) :: USS
152 REAL,
DIMENSION(:,:),
INTENT(IN) :: PPAR_VEGTYPE
154 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
155 CHARACTER(LEN=3),
INTENT(IN) :: HATYPE
156 CHARACTER(LEN=*),
INTENT(IN) :: HNAME
157 CHARACTER(LEN=3),
INTENT(IN) :: HTYPE
158 CHARACTER(LEN=28),
DIMENSION(:),
INTENT(INOUT) :: HFNAM
159 CHARACTER(LEN=6),
DIMENSION(:),
INTENT(INOUT) :: HFTYP
160 REAL,
DIMENSION(:),
INTENT(INOUT) :: PUNIF
161 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PFIELD
162 LOGICAL,
DIMENSION(:),
INTENT(OUT) :: OPRESENT
168 REAL,
DIMENSION(SIZE(PPAR_VEGTYPE,1)) :: ZMASK
169 CHARACTER(LEN=40) :: YNAME
172 REAL(KIND=JPRB) :: ZHOOK_HANDLE
181 CALL dr_hook(
'MODI_INI_VAR_FROM_DATA:INI_VAR_FROM_DATA_NAT_1D',0,zhook_handle)
183 opresent(:) = .false.
187 IF (hftyp(1)==
'DIRTYP')
THEN 190 hprogram, hatype, hname, htype, hfnam(1), &
191 hftyp(1), punif(1), pfield, opresent(1), ppar_vegtype)
193 opresent(2:) = opresent(1)
198 IF (.NOT.all(len_trim(hfnam(:))/=0) .AND. .NOT.all(len_trim(hfnam(2:))==0))
THEN 199 DO jv=1,
SIZE(pfield,2)
200 IF (len_trim(hfnam(jv))==0)
THEN 202 IF (len_trim(hfnam(jv2))/=0)
THEN 203 hfnam(jv) = hfnam(jv2)
204 hftyp(jv) = hftyp(jv2)
211 DO jv=1,
SIZE(pfield,2)
213 IF (all(len_trim(hfnam(2:))==0))
THEN 216 zmask(:) = ppar_vegtype(:,jv)
220 hprogram, hatype, hname, htype, hfnam(jv), &
221 hftyp(jv), punif(jv), pfield(:,jv), opresent(jv), zmask)
227 CALL dr_hook(
'MODI_INI_VAR_FROM_DATA:INI_VAR_FROM_DATA_NAT_1D',1,zhook_handle)
236 HPROGRAM, HATYPE, HNAME ,HTYPE, HFNAM, HFTYP, PUNIF, PFIELD, OPRESENT)
276 USE modd_data_cover_par
, ONLY : nvegtype
292 TYPE(
sso_t),
INTENT(INOUT) :: USS
294 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
295 CHARACTER(LEN=3),
INTENT(IN) :: HATYPE
296 CHARACTER(LEN=*),
INTENT(IN) :: HNAME
297 CHARACTER(LEN=3),
INTENT(IN) :: HTYPE
298 CHARACTER(LEN=28),
DIMENSION(:),
INTENT(IN) :: HFNAM
299 CHARACTER(LEN=6),
DIMENSION(:),
INTENT(INOUT) :: HFTYP
300 REAL,
DIMENSION(:),
INTENT(IN) :: PUNIF
301 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PFIELD
302 LOGICAL,
INTENT(OUT) :: OPRESENT
308 CHARACTER(LEN=40) :: YNAME
309 LOGICAL,
DIMENSION(SIZE(PFIELD,2)) :: LPRESENT
312 REAL(KIND=JPRB) :: ZHOOK_HANDLE
321 CALL dr_hook(
'MODI_INI_VAR_FROM_DATA:INI_VAR_FROM_DATA_1D',0,zhook_handle)
326 DO jv=1,
SIZE(pfield,2)
328 hprogram, hatype, hname, htype, hfnam(jv), &
329 hftyp(jv), punif(jv), pfield(:,jv), lpresent(jv))
332 IF (any(lpresent(:)))
THEN 336 IF (.NOT.all(lpresent))
THEN 337 CALL abor1_sfx(
"INI_VAR_FROM_DATA_1D: MISSING INPUT DATA FOR "//hname)
343 CALL dr_hook(
'MODI_INI_VAR_FROM_DATA:INI_VAR_FROM_DATA_1D',1,zhook_handle)
352 HPROGRAM, HATYPE, HNAME, HTYPE, HFNAM, HFTYP, PUNIF, PFIELD_TIME, OPRESENT)
366 USE modd_data_cover_par
, ONLY : nvegtype
382 TYPE(
sso_t),
INTENT(INOUT) :: USS
384 REAL,
DIMENSION(:,:),
INTENT(IN) :: PPAR_VEGTYPE
386 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
387 CHARACTER(LEN=3),
INTENT(IN) :: HATYPE
388 CHARACTER(LEN=*),
INTENT(IN) :: HNAME
389 CHARACTER(LEN=3),
INTENT(IN) :: HTYPE
390 CHARACTER(LEN=28),
DIMENSION(:,:),
INTENT(INOUT) :: HFNAM
391 CHARACTER(LEN=6),
DIMENSION(:,:),
INTENT(INOUT) :: HFTYP
392 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: PUNIF
393 REAL,
DIMENSION(:,:,:),
INTENT(OUT) :: PFIELD_TIME
394 LOGICAL,
DIMENSION(:),
INTENT(OUT) :: OPRESENT
400 REAL,
DIMENSION(SIZE(PPAR_VEGTYPE,1)) :: ZMASK
401 INTEGER :: JV, JJ, JV2
403 INTEGER :: ITIME, ISIZE_V, IDX
405 REAL(KIND=JPRB) :: ZHOOK_HANDLE
414 CALL dr_hook(
'MODI_INI_VAR_FROM_DATA:INI_VAR_FROM_DATA_NAT_2D',0,zhook_handle)
419 isize_v =
SIZE(pfield_time,3)
421 DO jtime=1,
SIZE(pfield_time,2)
423 IF (hftyp(1,jtime)==
'DIRTYP')
THEN 425 IF (
SIZE(opresent)>isize_v)
THEN 426 idx = (jtime-1)*isize_v+1
431 hprogram, hatype, hname, htype, hfnam(1,jtime), &
432 hftyp(1,jtime), punif(1,jtime), pfield_time(:,jtime,:), &
433 opresent(idx), ppar_vegtype)
434 opresent(idx+1:idx+isize_v-1) = opresent(idx)
438 IF (.NOT.all(len_trim(hfnam(:,jtime))/=0) .AND. &
439 count(len_trim(hfnam(:,jtime))/=0)>1)
THEN 440 DO jv=1,
SIZE(pfield_time,3)
441 IF (len_trim(hfnam(jv,jtime))==0)
THEN 443 IF (len_trim(hfnam(jv2,jtime))/=0)
THEN 444 hfnam(jv,jtime) = hfnam(jv2,jtime)
445 hftyp(jv,jtime) = hftyp(jv2,jtime)
452 IF (.NOT.all(punif(:,jtime)/=
xundef) .AND. &
454 DO jv=1,
SIZE(pfield_time,3)
455 IF (punif(jv,jtime)==
xundef)
THEN 457 IF (punif(jv2,jtime)/=
xundef)
THEN 458 punif(jv,jtime) = punif(jv2,jtime)
467 IF (
SIZE(opresent)>isize_v)
THEN 468 idx = (jtime-1)*isize_v+jv
473 IF (all(len_trim(hfnam(2:,jtime))==0))
THEN 476 zmask(:) = ppar_vegtype(:,jv)
480 hprogram, hatype, hname, htype, hfnam(jv,jtime), &
481 hftyp(jv,jtime), punif(jv,jtime), pfield_time(:,jtime,jv), &
482 opresent(idx), zmask)
490 IF (
SIZE(opresent)>isize_v)
THEN 492 DO jtime=1,
SIZE(pfield_time,2)-1
493 IF (opresent((jtime-1)*isize_v+jv).NEQV.opresent(jtime*isize_v+jv))
THEN 494 CALL abor1_sfx(
"INI_VAR_FROM_DATA: "//trim(hname)//
" - CHECK NTIME AND ADAPT NUMBER OF DATA TO NTIME")
501 IF (
lhook)
CALL dr_hook(
'MODI_INI_VAR_FROM_DATA:INI_VAR_FROM_DATA_NAT_2D',1,zhook_handle)
510 HPROGRAM, HATYPE, HNAME, HTYPE, HFNAM, HFTYP, PUNIF, PFIELD_TIME, OPRESENT)
549 USE modd_data_cover_par
, ONLY : nvegtype
567 TYPE(
sso_t),
INTENT(INOUT) :: USS
569 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
570 CHARACTER(LEN=3),
INTENT(IN) :: HATYPE
571 CHARACTER(LEN=*),
INTENT(IN) :: HNAME
572 CHARACTER(LEN=3),
INTENT(IN) :: HTYPE
573 CHARACTER(LEN=28),
DIMENSION(:,:),
INTENT(IN) :: HFNAM
574 CHARACTER(LEN=6),
DIMENSION(:,:),
INTENT(INOUT) :: HFTYP
575 REAL,
DIMENSION(:,:),
INTENT(IN) :: PUNIF
576 REAL,
DIMENSION(:,:,:),
INTENT(OUT) :: PFIELD_TIME
577 LOGICAL,
INTENT(OUT) :: OPRESENT
583 LOGICAL,
DIMENSION(SIZE(PFIELD_TIME,3)) :: LPRESENT
584 LOGICAL,
DIMENSION(SIZE(PFIELD_TIME,2)) :: LPRESENT_TIME
589 REAL(KIND=JPRB) :: ZHOOK_HANDLE
598 CALL dr_hook(
'MODI_INI_VAR_FROM_DATA:INI_VAR_FROM_DATA_2D',0,zhook_handle)
601 lpresent_time(:)=.false.
604 DO jtime=1,
SIZE(pfield_time,2)
606 DO jv=1,
SIZE(pfield_time,3)
609 hprogram, hatype, hname, htype, hfnam(jv,jtime), &
610 hftyp(jv,jtime), punif(jv,jtime), pfield_time(:,jtime,jv),&
615 IF (any(lpresent(:)))
THEN 617 lpresent_time(jtime)=.true.
621 IF (.NOT.all(lpresent))
THEN 622 CALL abor1_sfx(
"INI_VAR_FROM_DATA_2D: MISSING INPUT DATA FOR "//hname)
630 IF (
SIZE(pfield_time,2)==36)
THEN 633 IF (any(lpresent_time(:)) .AND. .NOT.all(lpresent_time(:))) &
634 CALL abor1_sfx(
"INI_VAR_FROM_DATA_2D: MISSING INPUT DATA FOR "//hname)
640 CALL dr_hook(
'MODI_INI_VAR_FROM_DATA:INI_VAR_FROM_DATA_2D',1,zhook_handle)
subroutine ini_var_from_data_2d(DTCO, UG, U, USS, HPROGRAM, HATYPE, HNAME, HTYPE, HFNAM, HFTYP, PUNIF, PFIELD_TIME, OPRESENT)
subroutine ini_var_from_data_nat_1d(DTCO, UG, U, USS, PPAR_VEGTYPE, HPROGRAM, HATYPE, HNAME, HTYPE, HFNAM, HFTYP, PUNIF, PFIELD, OPRESENT)
subroutine abor1_sfx(YTEXT)
subroutine put_in_time(HNAME, HTYPE, NTIME1, NTIME2, PDATA)
subroutine ini_var_from_data_1d(DTCO, UG, U, USS, HPROGRAM, HATYPE, HNAME, HTYPE, HFNAM, HFTYP, PUNIF, PFIELD, OPRESENT)
subroutine ini_var_from_data_nat_2d(DTCO, UG, U, USS, PPAR_VEGTYPE, HPROGRAM, HATYPE, HNAME, HTYPE, HFNAM, HFTYP, PUNIF, PFIELD_TIME, OPRESENT)
integer, dimension(:,:), allocatable nsize