65 USE modi_set_surfex_file_name_asc
68 USE modi_set_surfex_file_name_fa
71 USE modi_set_surfex_file_name_lfi
74 USE modi_set_surfex_file_name_nc
78 USE modi_open_namelist
79 USE modi_close_namelist
81 USE modi_open_filein_ol
82 USE modi_close_filein_ol
84 USE modi_read_from_surfex_file
89 USE yomhook
,ONLY : lhook, dr_hook
90 USE parkind1
,ONLY : jprb
94 USE modi_extrapol_fields
106 TYPE(isba_grid_t
),
INTENT(INOUT) :: ig
107 TYPE(isba_t
),
INTENT(INOUT) :: i
112 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
129 CHARACTER(LEN=28) :: cfnam_vegtype
133 CHARACTER(LEN=6) :: cftyp_vegtype
135 CHARACTER(LEN=28) :: hfilein
138 REAL(KIND=JPRB) :: zhook_handle
140 namelist/nam_land_use/cfnam_vegtype,cftyp_vegtype
147 IF (lhook) CALL dr_hook(
'SET_VEGTYPES_FRACTIONS',0,zhook_handle)
159 CALL
posnam(ilunam,
'NAM_LAND_USE',gfound,iluout)
160 IF (gfound)
READ(unit=ilunam,nml=nam_land_use)
169 IF(cftyp_vegtype==
'NETCDF') cftyp_vegtype=
'OFFLIN'
171 IF (cftyp_vegtype==
'ASCII ')
THEN
175 ELSEIF (cftyp_vegtype==
'FA ')
THEN
179 ELSEIF (cftyp_vegtype==
'LFI ')
THEN
183 ELSEIF (cftyp_vegtype==
'NC ')
THEN
190 IF(cftyp_vegtype==
'OFFLIN' .AND. .NOT.
ALLOCATED(xvar_to_filein))
THEN
195 IF (cftyp_vegtype==
'FA '.OR.cftyp_vegtype==
'ASCII '.OR.cftyp_vegtype==
'LFI ' &
196 .OR.cftyp_vegtype==
'OFFLIN' .OR.cftyp_vegtype==
'NC ')
THEN
198 dti%LDATA_VEGTYPE=.true.
201 cftyp_vegtype,cfnam_vegtype,
'NATURE',
' ',dti%XPAR_VEGTYPE(:,1),hnam=
'VEGTYPE1')
203 cftyp_vegtype,cfnam_vegtype,
'NATURE',
' ',dti%XPAR_VEGTYPE(:,2),hnam=
'VEGTYPE2')
205 cftyp_vegtype,cfnam_vegtype,
'NATURE',
' ',dti%XPAR_VEGTYPE(:,3),hnam=
'VEGTYPE3')
207 cftyp_vegtype,cfnam_vegtype,
'NATURE',
' ',dti%XPAR_VEGTYPE(:,4),hnam=
'VEGTYPE4')
209 cftyp_vegtype,cfnam_vegtype,
'NATURE',
' ',dti%XPAR_VEGTYPE(:,5),hnam=
'VEGTYPE5')
211 cftyp_vegtype,cfnam_vegtype,
'NATURE',
' ',dti%XPAR_VEGTYPE(:,6),hnam=
'VEGTYPE6')
213 cftyp_vegtype,cfnam_vegtype,
'NATURE',
' ',dti%XPAR_VEGTYPE(:,7),hnam=
'VEGTYPE7')
215 cftyp_vegtype,cfnam_vegtype,
'NATURE',
' ',dti%XPAR_VEGTYPE(:,8),hnam=
'VEGTYPE8')
217 cftyp_vegtype,cfnam_vegtype,
'NATURE',
' ',dti%XPAR_VEGTYPE(:,9),hnam=
'VEGTYPE9')
219 cftyp_vegtype,cfnam_vegtype,
'NATURE',
' ',dti%XPAR_VEGTYPE(:,10),hnam=
'VEGTYPE10')
221 cftyp_vegtype,cfnam_vegtype,
'NATURE',
' ',dti%XPAR_VEGTYPE(:,11),hnam=
'VEGTYPE11')
223 cftyp_vegtype,cfnam_vegtype,
'NATURE',
' ',dti%XPAR_VEGTYPE(:,12),hnam=
'VEGTYPE12')
225 cftyp_vegtype,cfnam_vegtype,
'NATURE',
' ',dti%XPAR_VEGTYPE(:,13),hnam=
'VEGTYPE13')
227 cftyp_vegtype,cfnam_vegtype,
'NATURE',
' ',dti%XPAR_VEGTYPE(:,14),hnam=
'VEGTYPE14')
229 cftyp_vegtype,cfnam_vegtype,
'NATURE',
' ',dti%XPAR_VEGTYPE(:,18),hnam=
'VEGTYPE15')
231 cftyp_vegtype,cfnam_vegtype,
'NATURE',
' ',dti%XPAR_VEGTYPE(:,15),hnam=
'VEGTYPE16')
233 cftyp_vegtype,cfnam_vegtype,
'NATURE',
' ',dti%XPAR_VEGTYPE(:,16),hnam=
'VEGTYPE17')
235 cftyp_vegtype,cfnam_vegtype,
'NATURE',
' ',dti%XPAR_VEGTYPE(:,17),hnam=
'VEGTYPE18')
237 cftyp_vegtype,cfnam_vegtype,
'NATURE',
' ',dti%XPAR_VEGTYPE(:,19),hnam=
'VEGTYPE19')
245 WHERE(dti%XPAR_VEGTYPE < 1.e-8)dti%XPAR_VEGTYPE(:,:)=0.0
247 IF (cftyp_vegtype==
'ASCII ')
THEN
251 ELSEIF (cftyp_vegtype==
'FA ')
THEN
255 ELSEIF (cftyp_vegtype==
'LFI ')
THEN
259 ELSEIF (cftyp_vegtype==
'NC ')
THEN
265 IF (dti%LDATA_VEGTYPE)
THEN
266 IF (maxval(abs(sum(dti%XPAR_VEGTYPE,2)-1.))>1.e-6)
THEN
267 jvegtype=count(sum(dti%XPAR_VEGTYPE,2) .GT. 1.e19)
269 WRITE(iluout,*)
'******************************************************************************'
270 WRITE(iluout,*)
'* Error in ISBA data field preparation *'
271 WRITE(iluout,*)
'* Sum of XPAR_VEGTYPE on all vegtypes is not equal to 1. for all grid point *'
272 WRITE(iluout,*)
'* nbr of indef VEGTYPE =',jvegtype,
' / total nbr =',
SIZE(dti%XPAR_VEGTYPE(:,1))
273 WRITE(iluout,*)
'* MAXVAL of SUM(XPAR_VEGTYPE,2) =', maxval(sum(dti%XPAR_VEGTYPE,2))
274 WRITE(iluout,*)
'* MAXLOC of SUM(XPAR_VEGTYPE,2) =', maxloc(sum(dti%XPAR_VEGTYPE,2))
275 WRITE(iluout,*)
'******************************************************************************'
277 CALL
abor1_sfx(
'SET_VEGTYPES_FRACTIONS: SUM OF ALL XPAR_VEGTYPE MUST BE 1.')
284 IF (lhook) CALL dr_hook(
'SET_VEGTYPES_FRACTIONS',1,zhook_handle)
subroutine set_surfex_file_name_asc(HNAME_IN, HNAME_OUT)
subroutine set_surfex_file_name_lfi(HNAME_IN, HNAME_OUT)
subroutine set_surfex_file_name_fa(HNAME_IN, HNAME_OUT)
subroutine set_surfex_file_name_nc(HNAME_IN, HNAME_OUT)
subroutine abor1_sfx(YTEXT)
subroutine close_filein_ol
subroutine set_vegtypes_fractions(DTCO, DGU, DTI, IG, I, UG, U, HPROGRAM)
subroutine close_namelist(HPROGRAM, KLUNAM)
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine read_from_surfex_file(DTCO, DGU, U, HFTYP, HFNAM, HMASK, HSCHEME, PFIELD, HNAM)
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)
subroutine open_filein_ol