SURFEX v8.1
General documentation of Surfex
read_default_surf_atmn.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_default_surf_atm_n (CHU, DGO, USS, HPROGRAM)
7 ! #######################################################
8 !
9 !!**** *READ_DEFAULT_SURF_ATM* - routine to read the default general configuration for surface
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 !
41 !
42 !
43 !
44 USE modd_ch_surf_n, ONLY : ch_surf_t
45 USE modd_diag_n, ONLY : diag_options_t
46 USE modd_sso_n, ONLY : sso_t
47 !
49 !
50 USE mode_pos_surf
51 !
52 USE modi_get_luout
53 USE modi_get_default_nam_n
54 !
55 USE modd_read_namelist, ONLY : lnam_read
56 !
57 USE modn_sso_n
59 !
60 !
61 USE yomhook ,ONLY : lhook, dr_hook
62 USE parkind1 ,ONLY : jprb
63 !
64 IMPLICIT NONE
65 !
66 !* 0.1 Declarations of arguments
67 ! -------------------------
68 !
69 !
70 TYPE(ch_surf_t), INTENT(INOUT) :: CHU
71 TYPE(diag_options_t), INTENT(INOUT) :: DGO
72 TYPE(sso_t), INTENT(INOUT) :: USS
73 !
74  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling GROUND
75 !
76 !* 0.2 Declarations of local variables
77 ! -------------------------------
78 !
79 !
80 LOGICAL :: GFOUND ! Return code when searching namelist
81 INTEGER :: ILUOUT ! output listing logical unit
82 INTEGER :: ILUDES ! .des file logical unit
83 INTEGER :: IMI
84 REAL(KIND=JPRB) :: ZHOOK_HANDLE
85 !-------------------------------------------------------------------------------
86 !
87 IF (lhook) CALL dr_hook('READ_DEFAULT_SURF_ATM_N',0,zhook_handle)
88  CALL get_luout(hprogram,iluout)
89 
90  CALL get_default_nam_n(hprogram,'READ ',iludes)
91 !
92 IF (iludes==0 .AND. lhook) CALL dr_hook('READ_DEFAULT_SURF_ATM_N',1,zhook_handle)
93 IF (iludes==0) RETURN
94 
96 
97 IF (imi.NE.-1 .AND. lnam_read) THEN
98  CALL init_nam_sson(uss)
99  CALL init_nam_ch_controln(chu)
100  CALL init_nam_ch_surfn(chu)
101  CALL init_nam_diag_surf_atmn(dgo)
102  CALL init_nam_diag_surfn(dgo)
103  CALL init_nam_write_diag_surfn(dgo)
104 ENDIF
105 !
106 IF (lnam_read) THEN
107  !
108  !* reading of file with default value
109  ! ----------------------------------
110  !
111  CALL posnam(iludes,'NAM_SSON',gfound,iluout)
112  IF (gfound) READ(unit=iludes,nml=nam_sson)
113  CALL posnam(iludes,'NAM_DIAG_SURFN',gfound,iluout)
114  IF (gfound) READ(unit=iludes,nml=nam_diag_surfn)
115  CALL posnam(iludes,'NAM_WRITE_DIAG_SURFN',gfound,iluout)
116  IF (gfound) READ(unit=iludes,nml=nam_write_diag_surfn)
117  CALL posnam(iludes,'NAM_DIAG_SURF_ATMN',gfound,iluout)
118  IF (gfound) READ(unit=iludes,nml=nam_diag_surf_atmn)
119  CALL posnam(iludes,'NAM_CH_CONTROLN',gfound,iluout)
120  IF (gfound) READ(unit=iludes,nml=nam_ch_controln)
121  CALL posnam(iludes,'NAM_CH_SURFN',gfound,iluout)
122  IF (gfound) READ(unit=iludes,nml=nam_ch_surfn)
123  !
124 ENDIF
125 !
126 IF (imi.NE.-1) THEN
127  CALL update_nam_sson(uss)
128  CALL update_nam_ch_controln(chu)
129  CALL update_nam_ch_surfn(chu)
130  CALL update_nam_diag_surf_atmn(dgo)
131  CALL update_nam_diag_surfn(dgo)
133 ENDIF
134 IF (lhook) CALL dr_hook('READ_DEFAULT_SURF_ATM_N',1,zhook_handle)
135 !
136 !
137 !-------------------------------------------------------------------------------
138 !
139 END SUBROUTINE read_default_surf_atm_n
subroutine init_nam_sson(USS)
Definition: modn_sson.F90:52
subroutine init_nam_diag_surfn(DGO)
subroutine update_nam_diag_surf_atmn(DGO)
subroutine update_nam_ch_surfn(CHU)
subroutine update_nam_diag_surfn(DGO)
subroutine get_default_nam_n(HPROGRAM, HACTION, KLUDES, ONAM_WRITTEN)
integer function get_current_model_index_surfex()
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine update_nam_ch_controln(CHU)
subroutine update_nam_write_diag_surfn(DGO)
integer, parameter jprb
Definition: parkind1.F90:32
subroutine read_default_surf_atm_n(CHU, DGO, USS, HPROGRAM)
subroutine get_luout(HPROGRAM, KLUOUT)
Definition: get_luout.F90:7
subroutine init_nam_write_diag_surfn(DGO)
subroutine init_nam_ch_controln(CHU)
subroutine init_nam_ch_surfn(CHU)
logical lhook
Definition: yomhook.F90:15
subroutine update_nam_sson(USS)
Definition: modn_sson.F90:68
subroutine init_nam_diag_surf_atmn(DGO)