SURFEX v8.1
General documentation of Surfex
set_surfex_filein.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 set_surfex_filein(HPROGRAM,HMASK)
7 ! ############################################
8 !
9 !
10 !!**** *SET_SURFEX_FILEIN* - set file name to read
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 !! B. Decharme *Meteo France*
32 !!
33 !! MODIFICATIONS
34 !! -------------
35 !! Original 05/2011
36 !-------------------------------------------------------------------------------
37 !
38 !* 0. DECLARATIONS
39 ! ------------
40 !
41 !
42 #ifdef SFX_ASC
44 USE modi_set_surfex_file_name_asc
45 #endif
46 #ifdef SFX_FA
48 USE modi_set_surfex_file_name_fa
49 #endif
50 #ifdef SFX_LFI
52 USE modi_set_surfex_file_name_lfi
53 #endif
54 #ifdef SFX_NC
56 USE modi_set_surfex_file_name_nc
57 #endif
58 #ifdef SFX_MNH
59 USE modi_set_surfex_file_name_mnh
60 #endif
61 #ifdef SFX_ARO
62 USE modi_set_surfex_file_name_aro
63 #endif
64 !
65 USE modi_abor1_sfx
66 !
67 USE yomhook ,ONLY : lhook, dr_hook
68 USE parkind1 ,ONLY : jprb
69 !
70 IMPLICIT NONE
71 !
72 !
73 !* 0.1 Declarations of arguments
74 ! -------------------------
75 !
76  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! main program
77  CHARACTER(LEN=4), INTENT(IN) :: HMASK
78 REAL(KIND=JPRB) :: ZHOOK_HANDLE
79 !
80 !* 0.2 Declarations of local variables
81 ! -------------------------------
82 !
83  CHARACTER(LEN=28) :: YFILE
84 !
85 !-------------------------------------------------------------------------------
86 !
87 IF (lhook) CALL dr_hook('SET_SURFEX_FILEIN',0,zhook_handle)
88 !
89 IF(hmask/='PGD'.AND.hmask/='PREP') CALL abor1_sfx('SET_SURFEX_FILEIN: MASK='//hmask//' REQUIRES MASK = PGD or PREP')
90 !
91 IF (hprogram=='ASCII ' ) THEN
92 !
93 #ifdef SFX_ASC
94  IF(hmask=='PGD')THEN
95  yfile=cfilepgd
96  ELSE
97  yfile=cfilein_save
98  ENDIF
99  CALL set_surfex_file_name_asc(hname_in=yfile)
100 #endif
101 !
102 ENDIF
103 !
104 IF (hprogram=='FA ' ) THEN
105 !
106 #ifdef SFX_FA
107  IF(hmask=='PGD')THEN
108  yfile=cfilepgd_fa
109  ELSE
110  yfile=cfilein_fa_save
111  ENDIF
112  CALL set_surfex_file_name_fa(hname_in=yfile)
113 #endif
114 !
115 ENDIF
116 !
117 IF (hprogram=='LFI ' ) THEN
118 !
119 #ifdef SFX_LFI
120  IF(hmask=='PGD')THEN
121  yfile=cfilepgd_lfi
122  ELSE
123  yfile=cfilein_lfi_save
124  ENDIF
125  CALL set_surfex_file_name_lfi(hname_in=yfile)
126 #endif
127 !
128 ENDIF
129 !
130 IF (hprogram=='NC ' ) THEN
131 !
132 #ifdef SFX_NC
133  IF(hmask=='PGD')THEN
134  yfile=cfilepgd_nc
135  ELSE
136  yfile=cfilein_nc_save
137  ENDIF
138  CALL set_surfex_file_name_nc(hname_in=yfile)
139 #endif
140 !
141 ENDIF
142 
143 !
144 IF (hprogram=='AROME ' ) THEN
145 #ifdef SFX_ARO
146  CALL set_surfex_file_name_aro
147 #endif
148 ENDIF
149 !
150 IF (hprogram=='MESONH' ) THEN
151 #ifdef SFX_MNH
152  CALL set_surfex_file_name_mnh(hmask)
153 #endif
154 ENDIF
155 !
156 IF (lhook) CALL dr_hook('SET_SURFEX_FILEIN',1,zhook_handle)
157 !
158 !-------------------------------------------------------------------------------
159 !
160 END SUBROUTINE set_surfex_filein
subroutine set_surfex_file_name_asc(HNAME_IN, HNAME_OUT)
subroutine set_surfex_file_name_lfi(HNAME_IN, HNAME_OUT)
subroutine set_surfex_file_name_fa(HNAME_IN, HNAME_OUT)
subroutine set_surfex_filein(HPROGRAM, HMASK)
character(len=28), save cfilein_lfi_save
subroutine set_surfex_file_name_nc(HNAME_IN, HNAME_OUT)
character(len=28), save cfilepgd
subroutine abor1_sfx(YTEXT)
Definition: abor1_sfx.F90:7
character(len=28), save cfilein_save
integer, parameter jprb
Definition: parkind1.F90:32
character(len=28), save cfilein_fa_save
character(len=28), save cfilepgd_lfi
character(len=28), save cfilepgd_fa
logical lhook
Definition: yomhook.F90:15
character(len=28), save cfilepgd_nc
character(len=28), save cfilein_nc_save