SURFEX v8.1
General documentation of Surfex
modd_xios.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! ######################
6  MODULE modd_xios
7 ! ######################
8 !
9 !!**** *MODD_XIOS - nest for variables used in interfacing XIOS to Surfex / Arpege
10 !!
11 !! PURPOSE
12 !! -------
13 !!
14 !!** IMPLICIT ARGUMENTS
15 !! ------------------
16 !! None
17 !!
18 !! REFERENCE
19 !! ---------
20 !!
21 !! AUTHOR
22 !! ------
23 !! S.Sénési *Meteo France*
24 !!
25 !! MODIFICATIONS
26 !! -------------
27 !! Original 08/2015
28 !
29 !* 0. DECLARATIONS
30 ! ------------
31 #ifdef WXIOS
32 USE xios , ONLY : xios_context
33 TYPE(xios_context) :: txios_context ! Xios context handle
34 #else
35 INTEGER :: txios_context ! Fake Xios context handle
36 #endif
37 !
38 !
39 ! Basic toggle
40 !
41 LOGICAL :: lxios=.false. ! Do we use XIOS for outputing diags
42 !
43 !
44 ! Setup variables
45 !
46  CHARACTER(LEN=6) :: yxios_context= "surfex" ! Context name known to Xios (must match a context declared in xml file)
47  CHARACTER(LEN=14) :: coutput_default="surfex_cselect" ! XIOS id for the file receiving all Surfex variables selected
48  ! by CSELECT (could/should exist in xml configuration file)
49 LOGICAL :: lallow_add_dim=.false. ! allow multi-dimensional output ?
50 INTEGER :: nbase_xios_freq=1 ! Base frequency for calling XIOS (unit=timestep)
51 !
52 ! Evolving variables
53 !
54 LOGICAL :: lxios_def_closed ! Has the Surfex context definition already been closed ?
55  CHARACTER(LEN=6) :: yxios_domain ! When writing diags using write_diag_surf, name of the current tile
56 INTEGER :: ntimestep=-1 ! Last value of timestep sent to XIOS (should be useless, now..)
57 INTEGER :: nblock=1 ! Number of blocks in the MPI-task (NPROMA blocks when in
58  ! Arpege). For xios_send_block
59 !
60 ! Names for various dimensions (this section could be move elsewhere when more
61 ! output schemes will handle dimension names)
62 !
63  CHARACTER(LEN=30) :: ypatch_dim_name ="patch"
64  CHARACTER(LEN=30) :: yground_layer_dim_name ="ground_layer"
65  CHARACTER(LEN=30) :: ywground_layer_dim_name ="ground_water_layer"
66  CHARACTER(LEN=30) :: ywiground_layer_dim_name ="ground_ice_layer"
67  CHARACTER(LEN=30) :: ysnow_patch_dim_name ="snow_patch"
68  CHARACTER(LEN=30) :: yseaice_layer_dim_name ="seaice_layer"
69  CHARACTER(LEN=30) :: yswband_dim_name ="swband"
70  CHARACTER(LEN=30) :: yatm_vaxis_name ="klev"
71 
72 !
73 END MODULE modd_xios
character(len=30) yground_layer_dim_name
Definition: modd_xios.F90:64
logical lxios
Definition: modd_xios.F90:41
character(len=30) ywground_layer_dim_name
Definition: modd_xios.F90:65
character(len=30) ysnow_patch_dim_name
Definition: modd_xios.F90:67
character(len=30) yseaice_layer_dim_name
Definition: modd_xios.F90:68
character(len=6) yxios_context
Definition: modd_xios.F90:46
logical lxios_def_closed
Definition: modd_xios.F90:54
character(len=30) yatm_vaxis_name
Definition: modd_xios.F90:70
logical lallow_add_dim
Definition: modd_xios.F90:49
character(len=30) ywiground_layer_dim_name
Definition: modd_xios.F90:66
character(len=30) ypatch_dim_name
Definition: modd_xios.F90:63
character(len=30) yswband_dim_name
Definition: modd_xios.F90:69
integer nblock
Definition: modd_xios.F90:57
type(xios_context) txios_context
Definition: modd_xios.F90:33
character(len=6) yxios_domain
Definition: modd_xios.F90:55
integer ntimestep
Definition: modd_xios.F90:56
character(len=14) coutput_default
Definition: modd_xios.F90:47
integer nbase_xios_freq
Definition: modd_xios.F90:50