53 USE modi_sfx_oasis_check
59 USE yomhook
,ONLY : lhook, dr_hook
60 USE parkind1
,ONLY : jprb
68 TYPE(isba_t
),
INTENT(INOUT) :: i
71 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
72 INTEGER,
INTENT(IN) :: knpts
73 INTEGER,
DIMENSION(:),
INTENT(IN) :: kparal
79 INTEGER,
DIMENSION(2),
PARAMETER :: ivar_nodims = (/1,1/)
85 INTEGER,
DIMENSION(2) :: ivar_shape
90 INTEGER :: iluout, iflag
92 REAL(KIND=JPRB) :: zhook_handle
96 IF (lhook) CALL dr_hook(
'SFX_OASIS_DEFINE',0,zhook_handle)
116 CALL oasis_def_partition(ipart_id,kparal(:),ierr)
118 IF(ierr/=oasis_ok)
THEN
119 WRITE(iluout,*)
'SFX_OASIS_DEFINE: OASIS def partition problem, err = ',ierr
120 CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def partition problem')
140 IF(len_trim(csea_fwsu)/=0)
THEN
141 CALL oasis_def_var(nsea_fwsu_id,csea_fwsu,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
142 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for sea zonal wind stress')
147 IF(len_trim(csea_fwsv)/=0)
THEN
148 CALL oasis_def_var(nsea_fwsv_id,csea_fwsv,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
149 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for sea meridian wind stress')
154 IF(len_trim(csea_heat)/=0)
THEN
155 CALL oasis_def_var(nsea_heat_id,csea_heat,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
156 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for sea Non solar net heat flux')
161 IF(len_trim(csea_snet)/=0)
THEN
162 CALL oasis_def_var(nsea_snet_id,csea_snet,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
163 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for sea Solar net heat')
168 IF(len_trim(csea_wind)/=0)
THEN
169 CALL oasis_def_var(nsea_wind_id,csea_wind,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
170 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for sea 10m wind speed')
175 IF(len_trim(csea_fwsm)/=0)
THEN
176 CALL oasis_def_var(nsea_fwsm_id,csea_fwsm,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
177 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for sea wind stress')
182 IF(len_trim(csea_evap)/=0)
THEN
183 CALL oasis_def_var(nsea_evap_id,csea_evap,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
184 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for sea Evaporation')
189 IF(len_trim(csea_rain)/=0)
THEN
190 CALL oasis_def_var(nsea_rain_id,csea_rain,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
191 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for sea Rainfall rate')
196 IF(len_trim(csea_snow)/=0)
THEN
197 CALL oasis_def_var(nsea_snow_id,csea_snow,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
198 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for sea Snowfall rate')
203 IF(len_trim(csea_watf)/=0)
THEN
204 CALL oasis_def_var(nsea_watf_id,csea_watf,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
205 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for sea freshwater rate')
212 CALL oasis_def_var(nsea_sst_id,csea_sst,ipart_id,ivar_nodims,oasis_in,ivar_shape,oasis_double,ierr)
213 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for Sea surface temperature')
215 CALL oasis_def_var(nsea_ucu_id,csea_ucu,ipart_id,ivar_nodims,oasis_in,ivar_shape,oasis_double,ierr)
216 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for Sea u-current stress')
218 CALL oasis_def_var(nsea_vcu_id,csea_vcu,ipart_id,ivar_nodims,oasis_in,ivar_shape,oasis_double,ierr)
219 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for Sea v-current stress')
227 IF(len_trim(cseaice_heat)/=0)
THEN
228 CALL oasis_def_var(nseaice_heat_id,cseaice_heat,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
229 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for Sea-ice non solar net heat')
231 nseaice_heat_id=nundef
234 IF(len_trim(cseaice_snet)/=0)
THEN
235 CALL oasis_def_var(nseaice_snet_id,cseaice_snet,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
236 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for Sea-ice solar net heat flux')
238 nseaice_snet_id=nundef
241 IF(len_trim(cseaice_evap)/=0)
THEN
242 CALL oasis_def_var(nseaice_evap_id,cseaice_evap,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
243 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for Sea-ice sublimation')
245 nseaice_evap_id=nundef
250 CALL oasis_def_var(nseaice_sit_id,cseaice_sit,ipart_id,ivar_nodims,oasis_in,ivar_shape,oasis_double,ierr)
251 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for Sea-ice non solar net heat')
253 CALL oasis_def_var(nseaice_cvr_id,cseaice_cvr,ipart_id,ivar_nodims,oasis_in,ivar_shape,oasis_double,ierr)
254 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for Sea-ice non solar net heat')
256 CALL oasis_def_var(nseaice_alb_id,cseaice_alb,ipart_id,ivar_nodims,oasis_in,ivar_shape,oasis_double,ierr)
257 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for Sea-ice non solar net heat')
272 IF(len_trim(clake_evap)/=0)
THEN
273 CALL oasis_def_var(nlake_evap_id,clake_evap,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
274 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for lake Evaporation')
279 IF(len_trim(clake_rain)/=0)
THEN
280 CALL oasis_def_var(nlake_rain_id,clake_rain,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
281 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for lake Rainfall rate')
286 IF(len_trim(clake_snow)/=0)
THEN
287 CALL oasis_def_var(nlake_snow_id,clake_snow,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
288 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for lake Snowfall rate')
293 IF(len_trim(clake_watf)/=0)
THEN
294 CALL oasis_def_var(nlake_watf_id,clake_watf,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
295 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for sea freshwater rate')
311 CALL oasis_def_var(nrunoff_id,crunoff,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
312 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for land Surface runoff')
319 CALL oasis_def_var(ncalving_id,ccalving,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
320 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for land Calving flux')
326 CALL oasis_def_var(ndrain_id,cdrain,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
327 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for land Deep drainage')
334 CALL oasis_def_var(nrecharge_id,crecharge,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
335 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for land groundwater recharge')
338 CALL oasis_def_var(nwtd_id,cwtd,ipart_id,ivar_nodims,oasis_in,ivar_shape,oasis_double,ierr)
339 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for land Water table depth')
342 CALL oasis_def_var(nfwtd_id,cfwtd,ipart_id,ivar_nodims,oasis_in,ivar_shape,oasis_double,ierr)
343 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for land fraction of WTD to rise')
352 CALL oasis_def_var(nsrcflood_id,csrcflood,ipart_id,ivar_nodims,oasis_out,ivar_shape,oasis_double,ierr)
353 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for land Floodplains freshwater flux')
356 CALL oasis_def_var(nfflood_id,cfflood,ipart_id,ivar_nodims,oasis_in,ivar_shape,oasis_double,ierr)
357 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for land Floodplains fraction')
360 CALL oasis_def_var(npiflood_id,cpiflood,ipart_id,ivar_nodims,oasis_in,ivar_shape,oasis_double,ierr)
361 IF(ierr/=oasis_ok) CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS def var problem for land Floodplains potential infiltration')
372 CALL oasis_enddef(ierr)
374 IF(ierr/=oasis_ok)
THEN
375 WRITE(iluout,*)
'SFX_OASIS_DEFINE: OASIS enddef problem, err = ',ierr
376 CALL
abor1_sfx(
'SFX_OASIS_DEFINE: OASIS enddef problem')
383 IF (lhook) CALL dr_hook(
'SFX_OASIS_DEFINE',1,zhook_handle)
subroutine abor1_sfx(YTEXT)
subroutine sfx_oasis_check(I, U, KLUOUT)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine sfx_oasis_define(I, U, HPROGRAM, KNPTS, KPARAL)