SURFEX v8.1
General documentation of Surfex
init_io_surfn.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  SUBROUTINE init_io_surf_n (DTCO, U, HPROGRAM,HMASK,HSCHEME,HACTION,HNAME)
7 ! #######################################################
8 !
9 !
10 !!**** *INIT_IO_SURF_n* - chooses the routine to initialize IO
11 !!
12 !! PURPOSE
13 !! -------
14 !!
15 !!** METHOD
16 !! ------
17 !!
18 !! EXTERNAL
19 !! --------
20 !!
21 !!
22 !! IMPLICIT ARGUMENTS
23 !! ------------------
24 !!
25 !! REFERENCE
26 !! ---------
27 !!
28 !!
29 !! AUTHOR
30 !! ------
31 !! S.Malardel *Meteo France*
32 !!
33 !! MODIFICATIONS
34 !! -------------
35 !! Original 09/2003
36 !! Modified 04/2004 by P. LeMoigne: add HACTION if ASCII mode selected
37 !! Modified 01/2009 by B. Decjharme: add HPROGRAM if FA mode selected
38 !! Modified 08/2015 by S. Senesi : handle XIOS output mode
39 !-------------------------------------------------------------------------------
40 !
41 !* 0. DECLARATIONS
42 ! ------------
43 !
44 !
45 !
47 USE modd_surf_atm_n, ONLY : surf_atm_t
48 !
49 #ifdef SFX_ASC
50 USE modi_init_io_surf_asc_n
51 #endif
52 #ifdef SFX_BIN
53 USE modi_init_io_surf_bin_n
54 #endif
55 #ifdef SFX_FA
56 USE modi_init_io_surf_fa_n
57 #endif
58 #ifdef SFX_LFI
59 USE modi_init_io_surf_lfi_n
60 #endif
61 #ifdef SFX_NC
62 USE modi_init_io_surf_nc_n
63 #endif
64 #ifdef SFX_OL
65 USE modi_init_io_surf_ol_n
66 #endif
67 #ifdef SFX_TXT
68 USE modi_init_io_surf_txt_n
69 #endif
70 #ifdef SFX_MNH
71 USE modi_mnhinit_io_surf_n
72 #endif
73 #ifdef SFX_ARO
74 USE modi_aroinit_io_surf_n
75 #endif
76 !
77 #ifdef WXIOS
78 USE modd_xios, ONLY : yxios_domain
79 #endif
80 !
81 USE yomhook ,ONLY : lhook, dr_hook
82 USE parkind1 ,ONLY : jprb
83 !
84 IMPLICIT NONE
85 !
86 !
87 !* 0.1 Declarations of arguments
88 ! -------------------------
89 !
90 !
91 TYPE(data_cover_t), INTENT(INOUT) :: DTCO
92 TYPE(surf_atm_t), INTENT(INOUT) :: U
93 !
94  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! main program
95  CHARACTER(LEN=6), INTENT(IN) :: HMASK
96  CHARACTER(LEN=6), INTENT(IN) :: HSCHEME ! scheme used
97  CHARACTER(LEN=5), INTENT(IN) :: HACTION ! action performed ('READ ','WRITE')
98  CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: HNAME
99 !
100 !* 0.2 Declarations of local variables
101 ! -------------------------------
102 !
103 REAL(KIND=JPRB) :: ZHOOK_HANDLE
104 !-------------------------------------------------------------------------------
105 !
106 IF (lhook) CALL dr_hook('INIT_IO_SURF_N',0,zhook_handle)
107 IF (hprogram=='MESONH') THEN
108 #ifdef SFX_MNH
109  CALL mnhinit_io_surf_n(hprogram,hmask,haction)
110 #endif
111 END IF
112 !
113 IF (hprogram=='OFFLIN' ) THEN
114 #ifdef SFX_OL
115  IF(PRESENT(hname)) THEN
116  CALL init_io_surf_ol_n(dtco, u, hprogram,hmask,hscheme,haction,hname)
117  ELSE
118  CALL init_io_surf_ol_n(dtco, u, hprogram,hmask,hscheme,haction,hname)
119  ENDIF
120 #endif
121 ENDIF
122 !
123 IF (hprogram=='ASCII ' ) THEN
124 #ifdef SFX_ASC
125  CALL init_io_surf_asc_n(dtco, u, hmask,haction)
126 #endif
127 ENDIF
128 !
129 IF (hprogram=='TEXTE ' ) THEN
130 #ifdef SFX_TXT
131  CALL init_io_surf_txt_n(dtco, u, hmask,haction)
132 #endif
133 ENDIF
134 !
135 IF (hprogram=='BINARY' ) THEN
136 #ifdef SFX_BIN
137  CALL init_io_surf_bin_n(dtco, u, hmask,haction)
138 #endif
139 ENDIF
140 !
141 IF (hprogram=='AROME ' ) THEN
142 #ifdef SFX_ARO
143  CALL aroinit_io_surf_n(hprogram,hmask,haction)
144 #endif
145 ENDIF
146 !
147 IF (hprogram=='FA ' ) THEN
148 #ifdef SFX_FA
149  CALL init_io_surf_fa_n(dtco, u, hprogram,hmask,haction)
150 #endif
151 ENDIF
152 !
153 IF (hprogram=='LFI ' ) THEN
154 #ifdef SFX_LFI
155  CALL init_io_surf_lfi_n(dtco, u, hmask,haction)
156 #endif
157 ENDIF
158 !
159 IF (hprogram=='NC ' ) THEN
160 #ifdef SFX_NC
161  CALL init_io_surf_nc_n(dtco, u, hmask,haction)
162 #endif
163 ENDIF
164 !
165 IF (trim(hprogram)=='XIOS' ) THEN
166 #ifdef WXIOS
167  yxios_domain = hmask
168 #endif
169 ENDIF
170 !
171 IF (lhook) CALL dr_hook('INIT_IO_SURF_N',1,zhook_handle)
172 !
173 !-------------------------------------------------------------------------------
174 !
175 END SUBROUTINE init_io_surf_n
subroutine init_io_surf_lfi_n(DTCO, U, HMASK, HACTION)
subroutine init_io_surf_txt_n(DTCO, U, HMASK, HACTION)
subroutine init_io_surf_fa_n(DTCO, U, HPROGRAM, HMASK, HACTION)
subroutine init_io_surf_asc_n(DTCO, U, HMASK, HACTION)
integer, parameter jprb
Definition: parkind1.F90:32
subroutine init_io_surf_ol_n(DTCO, U, HPROGRAM, HMASK, HSCHEME, HACT
logical lhook
Definition: yomhook.F90:15
subroutine init_io_surf_n(DTCO, U, HPROGRAM, HMASK, HSCHEME, HACTION
character(len=6) yxios_domain
Definition: modd_xios.F90:55
subroutine init_io_surf_bin_n(DTCO, U, HMASK, HACTION)
subroutine init_io_surf_nc_n(DTCO, U, HMASK, HACTION)