SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
read_default_isban.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_isba_n (CHI, DGEI, DGI, DGMI, I, &
7  hprogram)
8 ! #######################################################
9 !
10 !!**** *READ_ISBA_CONF* - routine to read the configuration for ISBA
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 !! V. Masson *Meteo France*
32 !!
33 !! MODIFICATIONS
34 !! -------------
35 !! Original 01/2003
36 !-------------------------------------------------------------------------------
37 !
38 !* 0. DECLARATIONS
39 ! ------------
40 !
41 !
42 !
43 !
44 !
45 USE modd_ch_isba_n, ONLY : ch_isba_t
47 USE modd_diag_isba_n, ONLY : diag_isba_t
49 USE modd_isba_n, ONLY : isba_t
50 !
52 !
53 USE mode_pos_surf
54 !
55 USE modi_get_luout
56 USE modi_get_default_nam_n
57 !
58 USE modn_isba_n
59 !
60 USE modd_read_namelist, ONLY : lnam_read
61 !
62 !
63 USE yomhook ,ONLY : lhook, dr_hook
64 USE parkind1 ,ONLY : jprb
65 !
66 IMPLICIT NONE
67 !
68 !* 0.1 Declarations of arguments
69 ! -------------------------
70 !
71 !
72 TYPE(ch_isba_t), INTENT(INOUT) :: chi
73 TYPE(diag_evap_isba_t), INTENT(INOUT) :: dgei
74 TYPE(diag_isba_t), INTENT(INOUT) :: dgi
75 TYPE(diag_misc_isba_t), INTENT(INOUT) :: dgmi
76 TYPE(isba_t), INTENT(INOUT) :: i
77 !
78  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! program calling ISBA
79 
80 !
81 !* 0.2 Declarations of local variables
82 ! -------------------------------
83 !
84 !
85 LOGICAL :: gfound ! Return code when searching namelist
86 INTEGER :: iluout ! output listing logical unit
87 INTEGER :: iludes ! .des file logical unit
88 INTEGER :: imi
89 REAL(KIND=JPRB) :: zhook_handle
90 !-------------------------------------------------------------------------------
91 !
92 IF (lhook) CALL dr_hook('READ_DEFAULT_ISBA_N',0,zhook_handle)
93  CALL get_luout(hprogram,iluout)
94 !
95  CALL get_default_nam_n(hprogram,'READ ',iludes)
96 !
97 IF (iludes==0 .AND. lhook) CALL dr_hook('READ_DEFAULT_ISBA_N',1,zhook_handle)
98 IF (iludes==0) RETURN
99 !
101 !
102 IF (imi.NE.-1 .AND. lnam_read) THEN
103  CALL init_nam_isban(i)
104  CALL init_nam_isba_agsn(i)
105  CALL init_nam_sgh_isban(i)
106  CALL init_nam_diag_surfn(dgei, dgi)
107  CALL init_nam_diag_isban(dgei, dgi, dgmi)
108  CALL init_nam_ch_controln(chi)
109  CALL init_nam_ch_isban(chi)
111  CALL init_nam_isba_snown(i)
112 ENDIF
113 !
114 IF (lnam_read) THEN
115  !
116  !* reading of new defaults in file
117  ! -------------------------------
118  !
119  CALL posnam(iludes,'NAM_ISBAN',gfound,iluout)
120  IF (gfound) READ(unit=iludes,nml=nam_isban)
121  CALL posnam(iludes,'NAM_ISBA_AGSN',gfound,iluout)
122  IF (gfound) READ(unit=iludes,nml=nam_isba_agsn)
123  CALL posnam(iludes,'NAM_SGH_ISBAN',gfound,iluout)
124  IF (gfound) READ(unit=iludes,nml=nam_sgh_isban)
125  CALL posnam(iludes,'NAM_DIAG_SURFN',gfound,iluout)
126  IF (gfound) READ(unit=iludes,nml=nam_diag_surfn)
127  CALL posnam(iludes,'NAM_DIAG_ISBAN',gfound,iluout)
128  IF (gfound) READ(unit=iludes,nml=nam_diag_isban)
129  CALL posnam(iludes,'NAM_CH_CONTROLN',gfound,iluout)
130  IF (gfound) READ(unit=iludes,nml=nam_ch_controln)
131  CALL posnam(iludes,'NAM_CH_ISBAN',gfound,iluout)
132  IF (gfound) READ(unit=iludes,nml=nam_ch_isban)
133  CALL posnam(iludes,'NAM_SPINUP_CARBN',gfound,iluout)
134  IF (gfound) READ(unit=iludes,nml=nam_spinup_carbn)
135  CALL posnam(iludes,'NAM_ISBA_SNOWN',gfound,iluout)
136  IF (gfound) READ(unit=iludes,nml=nam_isba_snown)
137 ENDIF
138 
139 IF (imi.NE.-1) THEN
140  CALL update_nam_isban(i)
141  CALL update_nam_isba_agsn(i)
142  CALL update_nam_sgh_isban(i)
143  CALL update_nam_diag_surfn(dgei, dgi)
144  CALL update_nam_diag_isban(dgei, dgi, dgmi)
145  CALL update_nam_ch_controln(chi)
146  CALL update_nam_ch_isban(chi)
148  CALL update_nam_isba_snown(i)
149 ENDIF
150 IF (lhook) CALL dr_hook('READ_DEFAULT_ISBA_N',1,zhook_handle)
151 
152 !
153 !-------------------------------------------------------------------------------
154 !
155 END SUBROUTINE read_default_isba_n
subroutine update_nam_ch_controln(CHI)
Definition: modn_isban.F90:365
subroutine init_nam_isba_agsn(I)
Definition: modn_isban.F90:152
subroutine init_nam_isba_snown(I)
Definition: modn_isban.F90:458
subroutine init_nam_sgh_isban(I)
Definition: modn_isban.F90:167
subroutine update_nam_isba_snown(I)
Definition: modn_isban.F90:478
subroutine init_nam_ch_controln(CHI)
Definition: modn_isban.F90:350
subroutine init_nam_diag_surfn(DGF)
subroutine update_nam_sgh_isban(I)
Definition: modn_isban.F90:231
subroutine update_nam_spinup_carb_isban(I)
Definition: modn_isban.F90:436
subroutine update_nam_ch_isban(CHI)
Definition: modn_isban.F90:397
subroutine update_nam_diag_surfn(DGF)
subroutine update_nam_isban(I)
Definition: modn_isban.F90:186
subroutine read_default_isba_n(CHI, DGEI, DGI, DGMI, I, HPROGRAM)
subroutine init_nam_ch_isban(CHI)
Definition: modn_isban.F90:380
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine get_luout(HPROGRAM, KLUOUT)
Definition: get_luout.F90:6
subroutine init_nam_isban(I)
Definition: modn_isban.F90:122
subroutine init_nam_spinup_carb_isban(I)
Definition: modn_isban.F90:414
subroutine init_nam_diag_isban(DGEI, DGI, DGMI)
Definition: modn_isban.F90:250
subroutine update_nam_isba_agsn(I)
Definition: modn_isban.F90:216
subroutine update_nam_diag_isban(DGEI, DGI, DGMI)
Definition: modn_isban.F90:275
integer function get_current_model_index_surfex()
subroutine get_default_nam_n(HPROGRAM, HACTION, KLUDES)