70 USE modd_assim
, ONLY : lassim, cassim, cassim_isba
76 USE modi_get_dim_full_n
77 USE modi_get_isba_conf_n
78 USE modi_ol_define_dim
81 USE modi_def_var_netcdf
82 USE modi_ol_write_coord
83 USE modi_ol_write_proj
97 CHARACTER(LEN=*),
DIMENSION(:),
INTENT(IN) :: HSELECT
98 LOGICAL,
INTENT(IN) :: OSNOWDIMNC
100 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
101 INTEGER,
INTENT(IN) :: KLUOUT
106 CHARACTER(LEN=100),
DIMENSION(:),
POINTER :: YNAME_DIM
107 CHARACTER(LEN=100),
DIMENSION(1) :: YATT_TITLE,YATT
108 CHARACTER(LEN=40),
DIMENSION(1) :: YDATE
109 CHARACTER(LEN=13),
DIMENSION(1) :: YUNIT1,YUNIT2
110 CHARACTER(LEN=100) :: YCOMMENT
111 CHARACTER(LEN=50) :: YFILE
112 CHARACTER(LEN=12) :: YRECFM
113 CHARACTER(LEN=3) :: YPAS,YPAT
114 CHARACTER(LEN=6) :: YLVL
115 CHARACTER(LEN=3) :: YISBA
116 CHARACTER(LEN=1) :: YNDAYS
117 CHARACTER(LEN=2) :: YLVLV
118 CHARACTER(LEN=3) :: YSNOW_SCHEME
121 REAL,
DIMENSION(:),
POINTER :: ZX,ZY
122 REAL,
DIMENSION(:),
POINTER :: ZLAT,ZLON
124 INTEGER :: ISNOW_LAYER
125 INTEGER,
DIMENSION(:),
POINTER :: IDIMS, IDDIMALL
126 INTEGER :: INI, INPATCH, INLVLD, INLVLS, INBIOMASS,&
127 INLITTER, INLITTLEVS, INSOILCARB
128 INTEGER :: IDIM1, INDIMS, INDIMSALL, INJDIMS
129 INTEGER :: IFILE_ID, IDIMID, JSV
130 INTEGER :: IL,JRET, INSNLAYER, JFILE
131 REAL(KIND=JPRB) :: ZHOOK_HANDLE
138 IF (
lhook)
CALL dr_hook(
'INIT_OUTFN_ISBA_N',0,zhook_handle)
141 ysnow_scheme = im%NPE%AL(1)%TSNOW%SCHEME
142 isnow_layer = im%NPE%AL(1)%TSNOW%NLAYER
145 CALL get_isba_conf_n(im%O,isnow_layer,yisba,inpatch,inlvld,inlvls,inbiomass,&
146 inlitter,inlittlevs,insoilcarb)
149 IF ( osnowdimnc ) insnlayer = isnow_layer
151 CALL ol_define_dim(ug, u%NSIZE_FULL, hprogram, kluout, ini, idim1, yunit1, yunit2,&
152 zx, zy, idims, iddimall, yname_dim, knsnlayer=insnlayer,plat=zlat,plon=zlon)
154 CALL ol_define_dim(ug, u%NSIZE_FULL, hprogram, kluout, ini, idim1, yunit1, yunit2,&
155 zx, zy, idims, iddimall, yname_dim, knpatch=inpatch, &
156 knsnlayer=insnlayer, plat=zlat, plon=zlon)
160 indimsall =
SIZE(iddimall)
162 IF ( osnowdimnc )
THEN 163 injdims = indimsall-2
166 injdims = indimsall-1
173 yatt_title(1)=
'units' 175 yfile=
'ISBA_PROGNOSTIC.OUT.nc' 176 CALL create_file(yfile,idims,yname_dim,ifile_id,iddimall)
177 jret=nf90_redef(ifile_id)
188 IF (.NOT. im%ID%DM%LPROSNOW)
THEN 190 CALL ol_write_coord(hselect,yfile,ifile_id,iddimall,yatt_title,yname_dim,&
191 yunit1,yunit2,idim1,ydate,zx,zy,zlon,zlat)
197 yfile=
'ISBA_DIAGNOSTICS.OUT.nc' 198 CALL create_file(yfile,idims,yname_dim,ifile_id,iddimall)
199 jret=nf90_redef(ifile_id)
200 yatt =
'dimensionless' 213 CALL ol_write_coord(hselect,yfile,ifile_id,iddimall,yatt_title,yname_dim,&
214 yunit1,yunit2,idim1,ydate,zx,zy,zlon,zlat)
216 IF (im%ID%O%LSURF_BUDGETC)
THEN 218 yfile=
'ISBA_DIAG_CUMUL.OUT.nc' 219 CALL create_file(yfile,idims,yname_dim,ifile_id,iddimall)
220 jret=nf90_redef(ifile_id)
232 yname_dim,yunit1,yunit2,idim1,ydate,zx,zy,zlon,zlat)
240 IF( lassim.OR.im%ID%O%LPGD )
THEN 242 yfile=
'ISBA_VEG_EVOLUTION.OUT.nc' 243 CALL create_file(yfile,idims,yname_dim,ifile_id,iddimall)
244 jret=nf90_redef(ifile_id)
255 CALL ol_write_coord(hselect,yfile,ifile_id,iddimall,yatt_title,yname_dim,&
256 yunit1,yunit2,idim1,ydate,zx,zy,zlon,zlat)
263 IF(lassim .AND. cassim_isba==
'EKF ')
THEN 265 yfile=
'ISBA_ANALYSIS.OUT.nc' 266 CALL create_file(yfile,idims,yname_dim,ifile_id,iddimall)
267 jret=nf90_redef(ifile_id)
278 CALL ol_write_coord(hselect,yfile,ifile_id,iddimall,yatt_title,yname_dim,&
279 yunit1,yunit2,idim1,ydate,zx,zy,zlon,zlat)
282 IF (
ASSOCIATED(zx))
DEALLOCATE(zx,zy)
283 DEALLOCATE(zlon,zlat)
285 IF (
lhook)
CALL dr_hook(
'INIT_OUTFN_ISBA_N',1,zhook_handle)
subroutine get_date_ol(TPTIME, PTSTEP, HDATE)
subroutine get_dim_full_n(KDIM_FULL_IN, KDIM_FULL_OUT)
character(len=200), dimension(25) xnetcdf_filename_out
subroutine ol_write_proj(HSELECT, KFILE_ID, UG)
subroutine ol_define_dim(UG, KSIZE_FULL, HPROGRAM, KLUOUT, KNI, KDIM1, HUNIT1, HUNIT2, PX, PY, KDIMS, KDDIM, HNAME_DIM, KNPATCH, KNSNLAYER, PLAT, PLON)
subroutine create_file(HFILE, KDIMS, HNAM_DIM, KFILE_ID, KDIM_ID)
subroutine init_outfn_isba_n(IM, UG, U, HSELECT, OSNOWDIMNC, HPROGRAM, KLUOUT)
subroutine get_isba_conf_n(IO, KSNOW_LAYER_IN, HISBA, KPATCH, KGROUND_LAYER, KSNOW_LAYE
integer, dimension(25) xnetcdf_fileid_out
subroutine ol_write_coord(HSELECT, HFILE, KFILE_ID, KDDIM, HATT_TITLE, HNAME_DIM, HUNIT1, HUNIT2, KDIM1, HDATE, PX, PY, PLON, PLAT)