SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
modn_flaken.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 ! ##################
7 ! ##################
8 !
9 !!**** *MODN_FLAKE_n* - declaration of namelist NAM_FLAKEn
10 !!
11 !! PURPOSE
12 !! -------
13 ! The purpose of this module is to specify the namelist NAM_FLAKEn
14 !
15 !!
16 !!** IMPLICIT ARGUMENTS
17 !! ------------------
18 !!
19 !! REFERENCE
20 !! ---------
21 !!
22 !!
23 !! AUTHOR
24 !! ------
25 !! V. Masson *Meteo France*
26 !!
27 !! MODIFICATIONS
28 !! -------------
29 !! Original 01/2004
30 !! Modified 04/2013, P. Le Moigne: FLake chemistry
31 !-------------------------------------------------------------------------------
32 !
33 !* 0. DECLARATIONS
34 ! ------------
35 !
36 
37 
38 
39 !
40 USE yomhook ,ONLY : lhook, dr_hook
41 USE parkind1 ,ONLY : jprb
42 !
43 IMPLICIT NONE
44 !
45 REAL :: XTSTEP
46 REAL :: XOUT_TSTEP
47 REAL :: XDIAG_TSTEP
48 INTEGER :: N2M
49 LOGICAL :: L2M_MIN_ZS
50 LOGICAL :: LSURF_BUDGET
51 LOGICAL :: LRAD_BUDGET
52 LOGICAL :: LSURF_BUDGETC
53 LOGICAL :: LRESET_BUDGETC
54 LOGICAL :: LCOEF
55 LOGICAL :: LSURF_VARS
56  CHARACTER(LEN=6) :: CCH_DRY_DEP
57 !
58 LOGICAL :: LSEDIMENTS
59 LOGICAL :: LSKINTEMP
60  CHARACTER(LEN=3) :: CSNOW_FLK
61  CHARACTER(LEN=5) :: CFLK_FLUX
62  CHARACTER(LEN=4) :: CFLK_ALB
63 !
64 LOGICAL :: LWATER_PROFILE
65 REAL,DIMENSION(100) :: XZWAT_PROFILE
66 !
67 namelist/nam_diag_flaken/lwater_profile,xzwat_profile
68 namelist/nam_flaken/lsediments,csnow_flk, cflk_flux, cflk_alb, &
69  lskintemp
70 namelist/nam_diag_surfn/n2m,l2m_min_zs,lsurf_budget,lrad_budget, &
71  lsurf_budgetc,lreset_budgetc,lcoef,lsurf_vars
72 namelist/nam_ch_flaken/cch_dry_dep
73 !
74  CONTAINS
75 !
76 SUBROUTINE init_nam_flaken (F)
77 !
78  USE modd_flake_n, ONLY : flake_t
79 !
80  IMPLICIT NONE
81 
82 !
83  TYPE(flake_t), INTENT(INOUT) :: f
84  REAL(KIND=JPRB) :: zhook_handle
85 
86  IF (lhook) CALL dr_hook('MODN_FLAKE_N:INIT_NAM_FLAKEN',0,zhook_handle)
87  xtstep=f%XTSTEP
88  xout_tstep=f%XOUT_TSTEP
89  lsediments=f%LSEDIMENTS
90  lskintemp=f%LSKINTEMP
91  cflk_flux=f%CFLK_FLUX
92  cflk_alb=f%CFLK_ALB
93  csnow_flk=f%CSNOW_FLK
94 IF (lhook) CALL dr_hook('MODN_FLAKE_N:INIT_NAM_FLAKEN',1,zhook_handle)
95 END SUBROUTINE init_nam_flaken
96 !
97 SUBROUTINE update_nam_flaken (F)
98 !
99  USE modd_flake_n, ONLY : flake_t
100 !
101  IMPLICIT NONE
102 
103 !
104  TYPE(flake_t), INTENT(INOUT) :: f
105  REAL(KIND=JPRB) :: zhook_handle
106 
107  IF (lhook) CALL dr_hook('MODN_FLAKE_N:UPDATE_NAM_FLAKEN',0,zhook_handle)
108  f%XTSTEP = xout_tstep
109  f%XOUT_TSTEP = xout_tstep
110  f%LSEDIMENTS = lsediments
111  f%LSKINTEMP = lskintemp
112  f%CFLK_FLUX=cflk_flux
113  f%CFLK_ALB=cflk_alb
114  f%CSNOW_FLK=csnow_flk
115 IF (lhook) CALL dr_hook('MODN_FLAKE_N:UPDATE_NAM_FLAKEN',1,zhook_handle)
116 END SUBROUTINE update_nam_flaken
117 !
118 SUBROUTINE init_nam_diag_surfn (DGF)
119 !
120  USE modd_diag_flake_n, ONLY : diag_flake_t
121 !
122  IMPLICIT NONE
123 
124 !
125  TYPE(diag_flake_t), INTENT(INOUT) :: dgf
126  REAL(KIND=JPRB) :: zhook_handle
127 
128  IF (lhook) CALL dr_hook('MODN_FLAKE_N:INIT_NAM_DIAG_SURFN',0,zhook_handle)
129  xdiag_tstep = dgf%XDIAG_TSTEP
130  n2m = dgf%N2M
131  l2m_min_zs = dgf%L2M_MIN_ZS
132  lsurf_budget = dgf%LSURF_BUDGET
133  lrad_budget = dgf%LRAD_BUDGET
134  lsurf_budgetc = dgf%LSURF_BUDGETC
135  lreset_budgetc = dgf%LRESET_BUDGETC
136  lcoef = dgf%LCOEF
137  lsurf_vars = dgf%LSURF_VARS
138 IF (lhook) CALL dr_hook('MODN_FLAKE_N:INIT_NAM_DIAG_SURFN',1,zhook_handle)
139 END SUBROUTINE init_nam_diag_surfn
140 
141 SUBROUTINE update_nam_diag_surfn (DGF)
142 !
143  USE modd_diag_flake_n, ONLY : diag_flake_t
144 !
145  IMPLICIT NONE
146 
147 !
148  TYPE(diag_flake_t), INTENT(INOUT) :: dgf
149  REAL(KIND=JPRB) :: zhook_handle
150 
151  IF (lhook) CALL dr_hook('MODN_FLAKE_N:UPDATE_NAM_DIAG_SURFN',0,zhook_handle)
152  dgf%XDIAG_TSTEP = xdiag_tstep
153  dgf%N2M = n2m
154  dgf%L2M_MIN_ZS = l2m_min_zs
155  dgf%LSURF_BUDGET = lsurf_budget
156  dgf%LRAD_BUDGET = lrad_budget
157  dgf%LSURF_BUDGETC = lsurf_budgetc
158  dgf%LRESET_BUDGETC = lreset_budgetc
159  dgf%LCOEF = lcoef
160  dgf%LSURF_VARS = lsurf_vars
161 IF (lhook) CALL dr_hook('MODN_FLAKE_N:UPDATE_NAM_DIAG_SURFN',1,zhook_handle)
162 END SUBROUTINE update_nam_diag_surfn
163 !
164 SUBROUTINE init_nam_diag_flaken (DGMF)
165 !
167 !
168  IMPLICIT NONE
169 
170 !
171  TYPE(diag_misc_flake_t), INTENT(INOUT) :: dgmf
172  REAL(KIND=JPRB) :: zhook_handle
173 
174  IF (lhook) CALL dr_hook('MODN_FLAKE_N:INIT_NAM_DIAG_FLAKEN',0,zhook_handle)
175  lwater_profile = dgmf%LWATER_PROFILE
176  xzwat_profile = dgmf%XZWAT_PROFILE
177 IF (lhook) CALL dr_hook('MODN_FLAKE_N:INIT_NAM_DIAG_FLAKEN',1,zhook_handle)
178 END SUBROUTINE init_nam_diag_flaken
179 
180 SUBROUTINE update_nam_diag_flaken (DGMF)
181 !
183 !
184  IMPLICIT NONE
185 
186 !
187  TYPE(diag_misc_flake_t), INTENT(INOUT) :: dgmf
188  REAL(KIND=JPRB) :: zhook_handle
189 
190  IF (lhook) CALL dr_hook('MODN_FLAKE_N:UPDATE_NAM_DIAG_FLAKEN',0,zhook_handle)
191  dgmf%LWATER_PROFILE = lwater_profile
192  dgmf%XZWAT_PROFILE = xzwat_profile
193 IF (lhook) CALL dr_hook('MODN_FLAKE_N:UPDATE_NAM_DIAG_FLAKEN',1,zhook_handle)
194 END SUBROUTINE update_nam_diag_flaken
195 
196 SUBROUTINE init_nam_ch_flaken (CHF)
197 !
198  USE modd_ch_flake_n, ONLY : ch_flake_t
199 !
200  IMPLICIT NONE
201 
202 !
203  TYPE(ch_flake_t), INTENT(INOUT) :: chf
204  REAL(KIND=JPRB) :: zhook_handle
205 
206  IF (lhook) CALL dr_hook('MODN_FLAKE_N:INIT_NAM_CH_FLAKEN',0,zhook_handle)
207  cch_dry_dep = chf%CCH_DRY_DEP
208 IF (lhook) CALL dr_hook('MODN_FLAKE_N:INIT_NAM_CH_FLAKEN',1,zhook_handle)
209 END SUBROUTINE init_nam_ch_flaken
210 
211 SUBROUTINE update_nam_ch_flaken (CHF)
212 !
213  USE modd_ch_flake_n, ONLY : ch_flake_t
214 !
215  IMPLICIT NONE
216 
217 !
218  TYPE(ch_flake_t), INTENT(INOUT) :: chf
219  REAL(KIND=JPRB) :: zhook_handle
220 
221  IF (lhook) CALL dr_hook('MODN_FLAKE_N:UPDATE_NAM_CH_FLAKEn',0,zhook_handle)
222  chf%CCH_DRY_DEP = cch_dry_dep
223 IF (lhook) CALL dr_hook('MODN_FLAKE_N:UPDATE_NAM_CH_FLAKEn',1,zhook_handle)
224 END SUBROUTINE update_nam_ch_flaken
225 
226 END MODULE modn_flake_n
subroutine init_nam_ch_flaken(CHF)
subroutine init_nam_diag_flaken(DGMF)
subroutine init_nam_diag_surfn(DGF)
subroutine update_nam_flaken(F)
Definition: modn_flaken.F90:97
subroutine update_nam_ch_flaken(CHF)
subroutine update_nam_diag_surfn(DGF)
subroutine init_nam_flaken(F)
Definition: modn_flaken.F90:76
subroutine update_nam_diag_flaken(DGMF)