43 USE modd_data_cover_par
, ONLY : nvegtype
45 USE modd_prep_isba
, ONLY : ctype_hug , ctype_tg , &
46 cfile_hug_surf, cfile_tg_surf, &
47 cfile_hug_root, cfile_tg_root, &
48 cfile_hug_deep, cfile_tg_deep
50 USE modi_get_latlonmask_n
57 USE modi_get_type_dim_n
71 TYPE(
sso_t),
INTENT(INOUT) :: USS
73 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
74 CHARACTER(LEN=7),
INTENT(IN) :: HSURF
75 INTEGER,
INTENT(IN) :: KLUOUT
76 REAL,
POINTER,
DIMENSION(:,:,:) :: PFIELD
84 INTEGER,
DIMENSION(0:NPROC-1) :: INB
85 INTEGER :: INFOMPI, JJ
87 REAL,
ALLOCATABLE,
DIMENSION(:,:) :: ZFIELD
88 REAL(KIND=JPRB) :: ZHOOK_HANDLE
92 IF (
lhook)
CALL dr_hook(
'PREP_ISBA_ASCLLV',0,zhook_handle)
94 IF (.NOT.
ALLOCATED(
nnum))
THEN 95 ALLOCATE(
nnum(u%NDIM_FULL))
98 ALLOCATE(
nindex(u%NDIM_FULL))
111 CALL mpi_bcast(ug%NGRID_FULL_PAR,kind(ug%NGRID_FULL_PAR)/4,mpi_integer,
npio,
ncomm,infompi)
113 IF (
nrank/=
npio)
ALLOCATE(ug%XGRID_FULL_PAR(ug%NGRID_FULL_PAR))
115 CALL mpi_bcast(ug%XGRID_FULL_PAR,&
116 SIZE(ug%XGRID_FULL_PAR)*kind(ug%XGRID_FULL_PAR)/4,mpi_real,
npio,
ncomm,infompi)
131 ALLOCATE(zfield(il,3))
145 CALL pgd_field(dtco, ug, u, uss, hprogram,
'HUG_SURF: relative humidity',
'NAT',cfile_hug_surf, &
146 ctype_hug,
xundef,zfield(:,1))
147 CALL pgd_field(dtco, ug, u, uss, hprogram,
'HUG_ROOT: relative humidity',
'NAT',cfile_hug_root, &
148 ctype_hug,
xundef,zfield(:,2))
149 CALL pgd_field(dtco, ug, u, uss, hprogram,
'HUG_DEEP: relative humidity',
'NAT',cfile_hug_deep, &
150 ctype_hug,
xundef,zfield(:,3))
152 ALLOCATE(pfield(il,3,nvegtype))
154 pfield(:,1,jv) = zfield(:,1)
155 pfield(:,2,jv) = zfield(:,2)
156 pfield(:,3,jv) = zfield(:,3)
163 CALL pgd_field(dtco, ug, u, uss, hprogram,
'TG_SURF: temperature',
'NAT',cfile_tg_surf, &
164 ctype_tg,
xundef,zfield(:,1))
165 CALL pgd_field(dtco, ug, u, uss, hprogram,
'TG_ROOT: temperature',
'NAT',cfile_tg_root, &
166 ctype_tg,
xundef,zfield(:,2))
167 CALL pgd_field(dtco, ug, u, uss, hprogram,
'TG_DEEP: temperature',
'NAT',cfile_tg_deep, &
168 ctype_tg,
xundef,zfield(:,3))
170 ALLOCATE(pfield(il,3,nvegtype))
172 pfield(:,1,jv) = zfield(:,1)
173 pfield(:,2,jv) = zfield(:,2)
174 pfield(:,3,jv) = zfield(:,3)
178 CALL abor1_sfx(
'PREP_ISBA_ASCLLV: '//
trim(hsurf)//
" initialization not implemented !")
190 DEALLOCATE(
nindex,ug%XGRID_FULL_PAR)
194 IF (
lhook)
CALL dr_hook(
'PREP_ISBA_ASCLLV',1,zhook_handle)
subroutine get_type_dim_n(DTCO, U, HTYPE, KDIM)
static const char * trim(const char *name, int *n)
subroutine get_latlonmask_n(UG, OLATLONMASK, HGRID, PGRID_PAR, KGRID_PAR
logical, dimension(720, 360) llatlonmask
subroutine prep_isba_ascllv(DTCO, UG, U, USS, HPROGRAM, HSURF, KLUOUT, PFIELD)
character(len=6) cinterp_type
integer, dimension(:), allocatable nnum
subroutine abor1_sfx(YTEXT)
real, dimension(:), pointer xgrid_par
integer, dimension(:), allocatable nindex