SURFEX v8.1
General documentation of Surfex
open_namelist.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 open_namelist(HPROGRAM,KLUNAM,HFILE)
7 ! #######################################################
8 !
9 !!**** *OPEN_NAMELIST* - routine to open a namelist file
10 !!
11 !! PURPOSE
12 !! -------
13 !!
14 !!** METHOD
15 !! ------
16 !!
17 !! EXTERNAL
18 !! --------
19 !!
20 !!
21 !! IMPLICIT ARGUMENTS
22 !! ------------------
23 !!
24 !! REFERENCE
25 !! ---------
26 !!
27 !!
28 !! AUTHOR
29 !! ------
30 !! V. Masson *Meteo France*
31 !!
32 !! MODIFICATIONS
33 !! -------------
34 !! Original 01/2003
35 !-------------------------------------------------------------------------------
36 !
37 !* 0. DECLARATIONS
38 ! ------------
39 !
40 #ifdef SFX_OL
41 USE modi_open_namelist_ol
42 #endif
43 #ifdef SFX_ASC
44 USE modi_open_namelist_asc
45 #endif
46 #ifdef SFX_FA
47 USE modi_open_namelist_fa
48 #endif
49 #ifdef SFX_LFI
50 USE modi_open_namelist_lfi
51 #endif
52 #ifdef SFX_NC
53 USE modi_open_namelist_nc
54 #endif
55 #ifdef SFX_MNH
56 USE modi_mnhopen_namelist
57 #endif
58 #ifdef SFX_ARO
59 USE modi_aroopen_namelist
60 #endif
61 !
62 USE yomhook ,ONLY : lhook, dr_hook
63 USE parkind1 ,ONLY : jprb
64 !
65 IMPLICIT NONE
66 !
67 !* 0.1 Declarations of arguments
68 ! -------------------------
69 !
70  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! main program
71 INTEGER, INTENT(OUT) :: KLUNAM ! logical unit of namelist
72  CHARACTER(LEN=28), INTENT(IN), OPTIONAL :: HFILE ! ASCII file to open
73 
74 !
75 !* 0.2 Declarations of local variables
76 ! -------------------------------
77 !
78  CHARACTER(LEN=28) :: YFILE
79 REAL(KIND=JPRB) :: ZHOOK_HANDLE
80 !
81 !-------------------------------------------------------------------------------
82 !
83 IF (lhook) CALL dr_hook('OPEN_NAMELIST',0,zhook_handle)
84 IF (PRESENT(hfile)) THEN
85  yfile = hfile
86 ELSE
87  yfile = ' '
88 END IF
89 
90 IF (hprogram=='MESONH') THEN
91 #ifdef SFX_MNH
92  CALL mnhopen_namelist(hprogram,klunam,yfile)
93 #endif
94 ELSE IF (hprogram=='OFFLIN') THEN
95 #ifdef SFX_OL
96  CALL open_namelist_ol(hprogram,klunam,yfile)
97 #endif
98 ELSE IF (hprogram=='ASCII ') THEN
99 #ifdef SFX_ASC
100  CALL open_namelist_asc(hprogram,klunam,yfile)
101 #endif
102 ELSE IF (hprogram=='AROME ') THEN
103 #ifdef SFX_ARO
104  CALL aroopen_namelist(hprogram,klunam,yfile)
105 #endif
106 ELSE IF (hprogram=='FA ') THEN
107 #ifdef SFX_FA
108  CALL open_namelist_fa(hprogram,klunam,yfile)
109 #endif
110 ELSE IF (hprogram=='LFI ') THEN
111 #ifdef SFX_LFI
112  CALL open_namelist_lfi(hprogram,klunam,yfile)
113 #endif
114 ELSE IF (hprogram=='NC ') THEN
115 #ifdef SFX_NC
116  CALL open_namelist_nc(hprogram,klunam,yfile)
117 #endif
118 END IF
119 !
120 IF (lhook) CALL dr_hook('OPEN_NAMELIST',1,zhook_handle)
121 !
122 !-------------------------------------------------------------------------------
123 !
124 END SUBROUTINE open_namelist
subroutine open_namelist_asc(HPROGRAM, KLUNAM, HFILE)
integer, parameter jprb
Definition: parkind1.F90:32
subroutine open_namelist_fa(HPROGRAM, KLUNAM, HFILE)
subroutine open_namelist_nc(HPROGRAM, KLUNAM, HFILE)
subroutine open_namelist_lfi(HPROGRAM, KLUNAM, HFILE)
logical lhook
Definition: yomhook.F90:15
subroutine open_namelist_ol(HPROGRAM, KLUNAM, HFILE)
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)