SURFEX v8.1
General documentation of Surfex
read_all_namelists.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 read_all_namelists (YSC, HPROGRAM,HINIT,ONAM_READ)
7 !
8 !
9 !
10 USE modd_surfex_n, ONLY : surfex_t
11 !
12 USE modd_read_namelist, ONLY : lnam_read
13 !
14 USE modi_init_read_data_cover
15 !
16 USE modi_read_namelists_surf_n
17 USE modi_read_namelists_surf
18 USE modi_read_namelists_flake_n
19 USE modi_read_namelists_watflux_n
20 USE modi_read_namelists_seaflux_n
21 USE modi_read_namelists_isba_n
22 USE modi_read_namelists_isba
23 USE modi_read_namelists_teb_n
24 USE modi_read_namelists_ideal_n
25 USE modi_read_namelists_ideal
26 USE modi_read_namelists_slt
27 USE modi_read_namelists_dst
28 USE modi_read_namelists_assim
29 USE modi_read_namelists_topd
30 #ifdef SFX_ARO
31 USE modi_read_namelists_io
32 #endif
33 !
34 USE modi_read_nam_prep_flake_n
35 USE modi_read_nam_prep_garden_n
36 USE modi_read_nam_prep_greenroof_n
37 USE modi_read_nam_prep_isba_n
38 USE modi_read_nam_prep_seaflux_n
39 USE modi_read_nam_prep_surf_n
40 USE modi_read_nam_prep_teb_n
41 USE modi_read_nam_prep_watflux_n
42 !
43 !--------------------------------------------------
44 !
45 !
46 USE yomhook ,ONLY : lhook, dr_hook
47 USE parkind1 ,ONLY : jprb
48 !
49 IMPLICIT NONE
50 !
51 TYPE(surfex_t), INTENT(INOUT) :: YSC
52 !
53  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling surf. schemes
54  CHARACTER(LEN=3), INTENT(IN) :: HINIT ! choice of fields to initialize
55 LOGICAL,INTENT(IN) :: ONAM_READ
56 !
57 REAL(KIND=JPRB) :: ZHOOK_HANDLE
58 !
59 !----------------------------------------
60 !namelists always read here
61 !
62 IF (lhook) CALL dr_hook('READ_ALL_NAMELISTS',0,zhook_handle)
63 lnam_read=.true.
64 !
65  CALL init_read_data_cover(hprogram)
66 !
67  CALL read_namelists_surf(hprogram)
68  CALL read_namelists_isba(hprogram)
69  CALL read_namelists_slt(hprogram)
70  CALL read_namelists_dst(hprogram)
71  CALL read_namelists_ideal(hprogram)
72  CALL read_namelists_assim(hprogram)
73  CALL read_namelists_topd(hprogram)
74 !
75 IF (hprogram=='AROME ') THEN
76 #ifdef SFX_ARO
77  CALL read_namelists_io(hprogram)
78 #endif
79 ENDIF
80 !
81 lnam_read = onam_read
82 !
83 !namelists that can be reread in surfex code
84 !
85 IF (.NOT.lnam_read) THEN
86 !
87  lnam_read=.true.
88  !
89  CALL read_namelists_surf_n(ysc%CHU, ysc%DUO, ysc%USS, hprogram,hinit)
90  !
91  CALL read_namelists_flake_n(ysc%FM, hprogram,hinit)
92  CALL read_namelists_watflux_n(ysc%WM, hprogram,hinit)
93  CALL read_namelists_seaflux_n(ysc%SM, hprogram,hinit)
94  CALL read_namelists_isba_n(ysc%IM, hprogram,hinit)
95  CALL read_namelists_teb_n(ysc%TM, ysc%GRM%O, ysc%GDM%O, hprogram, hinit)
96  CALL read_namelists_ideal_n(ysc%DLO, hprogram)
97  !
98  lnam_read=.false.
99  !
100  !prep namelists, to be read even if reread in surfex code,
101  !because only partially reread
102  !
103 ELSEIF (hinit=='PRE') THEN
104  !
105  CALL read_nam_prep_surf_n(hprogram)
106  CALL read_nam_prep_flake_n(hprogram)
107  CALL read_nam_prep_watflux_n(hprogram)
108  CALL read_nam_prep_seaflux_n(hprogram)
109  CALL read_nam_prep_isba_n(hprogram)
110  CALL read_nam_prep_garden_n(hprogram)
111  CALL read_nam_prep_greenroof_n(hprogram)
112  CALL read_nam_prep_teb_n(hprogram)
113  !
114 ENDIF
115 !
116 IF (lhook) CALL dr_hook('READ_ALL_NAMELISTS',1,zhook_handle)
117 !-------------------------------------------
118 END SUBROUTINE read_all_namelists
subroutine read_namelists_flake_n(FM, HPROGRAM, HINIT)
subroutine read_namelists_isba_n(IM, HPROGRAM, HINIT)
subroutine init_read_data_cover(HPROGRAM)
subroutine read_namelists_surf_n(CHU, DGO, USS, HPROGRAM, HINIT)
subroutine read_namelists_seaflux_n(SM, HPROGRAM, HINIT)
subroutine read_namelists_teb_n(TM, GRO, GDO, HPROGRAM, HINIT)
subroutine read_nam_prep_greenroof_n(HPROGRAM)
subroutine read_nam_prep_garden_n(HPROGRAM)
subroutine read_nam_prep_flake_n(HPROGRAM)
subroutine read_nam_prep_seaflux_n(HPROGRAM)
subroutine read_nam_prep_isba_n(HPROGRAM)
integer, parameter jprb
Definition: parkind1.F90:32
subroutine read_namelists_watflux_n(WM, HPROGRAM, HINIT)
subroutine read_nam_prep_watflux_n(HPROGRAM)
subroutine read_namelists_surf(HPROGRAM)
subroutine read_namelists_slt(HPROGRAM)
subroutine read_all_namelists(YSC, HPROGRAM, HINIT, ONAM_READ)
subroutine read_namelists_ideal(HPROGRAM)
logical lhook
Definition: yomhook.F90:15
subroutine read_namelists_dst(HPROGRAM)
subroutine read_namelists_topd(HPROGRAM)
subroutine read_nam_prep_teb_n(HPROGRAM)
subroutine read_nam_prep_surf_n(HPROGRAM)
subroutine read_namelists_ideal_n(DGO, HPROGRAM)
subroutine read_namelists_isba(HPROGRAM)