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