5 SUBROUTINE sfx_xios_setup(YSC, KCOMM, KLUOUT, KYEAR, KMONTH, KDAY, PTIME, PTSTEP, &
6 KDIM1, KDIM2, KEXT1, PCLAT, PCLON, KXINDEX, ODXMASK,&
7 KMASKNAT, KMASKSEA, KMASKWAT, KMASKTOWN)
60 USE xios
, ONLY : xios_context_initialize, xios_get_handle, &
61 xios_set_current_context, xios_set_timestep, xios_date, &
62 xios_duration, xios_define_calendar, xios_getvar, &
63 xios_solve_inheritance
66 USE modi_sfx_xios_set_domain
81 INTEGER,
INTENT(INOUT) :: KCOMM
82 INTEGER,
INTENT(IN) :: KLUOUT
83 INTEGER,
INTENT(IN) :: KYEAR
84 INTEGER,
INTENT(IN) :: KMONTH
85 INTEGER,
INTENT(IN) :: KDAY
86 REAL,
INTENT(IN) :: PTIME
87 REAL,
INTENT(IN) :: PTSTEP
88 INTEGER,
INTENT(IN) :: KDIM1
89 INTEGER,
INTENT(IN) :: KDIM2
90 INTEGER,
INTENT(IN) :: KEXT1
91 REAL ,
INTENT(IN) ,
DIMENSION(:,:) :: PCLAT
92 REAL ,
INTENT(IN) ,
DIMENSION(:,:) :: PCLON
93 INTEGER,
INTENT(IN) ,
DIMENSION(:) :: KXINDEX
94 LOGICAL,
INTENT(IN) ,
DIMENSION(:) :: ODXMASK
95 INTEGER,
INTENT(IN) ,
DIMENSION(:) :: KMASKNAT
96 INTEGER,
INTENT(IN) ,
DIMENSION(:) :: KMASKSEA
97 INTEGER,
INTENT(IN) ,
DIMENSION(:) :: KMASKWAT
98 INTEGER,
INTENT(IN) ,
DIMENSION(:) :: KMASKTOWN
104 TYPE(xios_duration) :: TDTIME
105 INTEGER :: INHOURS,INMINUTES,INSECONDS
110 REAL(KIND=JPRB) :: ZHOOK_HANDLE
112 IF (
lhook)
CALL dr_hook(
'SFX_XIOS_SETUP',0,zhook_handle)
114 IF (.NOT.
lxios )
THEN 115 CALL dr_hook(
'SFX_XIOS_SETUP',1,zhook_handle)
122 CALL abor1_sfx(
'SFX_XIOS_INIT_CONTEXT : cannot setup : Surfex was compiled without XIOS support')
154 inhours = int(ptime/3600)
155 inminutes = int((ptime - inhours*3600)/60)
156 inseconds = int(ptime - inhours*3600 - inminutes*60)
161 CALL xios_define_calendar(
"Gregorian", &
162 start_date = xios_date(kyear,kmonth,kday,inhours,inminutes,inseconds), &
163 time_origin = xios_date(kyear,kmonth,kday,inhours,inminutes,inseconds))
171 IF (xios_getvar(
"timesteps_between_samples",itmp))
nbase_xios_freq=itmp
174 CALL xios_set_timestep(tdtime)
186 ysc%UG%G%XLON, ysc%UG%G%XLAT, pclon, pclat )
188 ysc%UG%G%XLON, ysc%UG%G%XLAT, pclon, pclat, kmask=kmasksea )
189 CALL sfx_xios_set_domain(ysc%UG%G%CGRID,
"NATURE", kdim1, kdim2, kext1, kxindex, odxmask, &
190 ysc%UG%G%XLON, ysc%UG%G%XLAT, pclon, pclat, kmask=kmasknat)
191 CALL sfx_xios_set_domain(ysc%UG%G%CGRID,
"WATER" , kdim1, kdim2, kext1, kxindex, odxmask, &
192 ysc%UG%G%XLON, ysc%UG%G%XLAT , pclon, pclat, kmask=kmaskwat )
194 ysc%UG%G%XLON, ysc%UG%G%XLAT , pclon, pclat, kmask=kmasktown )
216 IF (
lhook)
CALL dr_hook(
'SFX_XIOS_SETUP',1,zhook_handle)
character(len=30) yground_layer_dim_name
character(len=30) ywground_layer_dim_name
subroutine set_axis(HNAME, PVALUE, CDPOSITIVE, KSIZE, CDUNITS, PBOUNDS)
subroutine sfx_xios_setup(YSC, KCOMM, KLUOUT, KYEAR, KMONTH, KDAY, PTIME, PTSTEP, KDIM1, KDIM2, KEXT1, PCLAT, PCLON, KXINDEX, ODXMASK, KMASKNAT, KMASKSEA, KMASKWAT, KMASKTOWN)
character(len=6) yxios_context
subroutine abor1_sfx(YTEXT)
subroutine sfx_xios_set_domain(HGRID, HNAME, KDIM1, KDIM2, KEXT1, KINDEX, ODMASK, PLON, PLAT, PCORNER_LON, PCORNER_LAT, KMASK)
character(len=30) ywiground_layer_dim_name
character(len=30) ypatch_dim_name
character(len=30) yswband_dim_name
integer, dimension(:), allocatable nindex
type(xios_context) txios_context