SURFEX v8.1
General documentation of Surfex
surfex_alloc.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 SUBROUTINE surfex_alloc(YDSURFEX)
6 !
8 USE modd_data_cover_par, ONLY : nvegtype_ecosg, ntilesfc
9 !
10 USE modd_surfex_n, ONLY : surfex_t
11 !
14 USE modd_ch_surf_n, ONLY : ch_surf_init
19 USE modd_canopy_n, ONLY : canopy_init
23 USE modd_sso_n, ONLY : sso_init, sso_np_init
24 USE modd_sv_n, ONLY : sv_init
25 !
27 !
28 USE modd_ideal_n, ONLY : ideal_init
29 !
30 USE modd_dst_n, ONLY : dst_np_init
31 USE modd_slt_n, ONLY : slt_init
32 !
34 !
43 !
47 USE modd_ch_teb_n, ONLY : ch_teb_init
52 USE modd_bem_n, ONLY : bem_np_init
53 USE modd_teb_n, ONLY : teb_np_init
54 !
56 USE modd_flake_n, ONLY : flake_init
57 !
59 USE modd_watflux_n, ONLY : watflux_init
60 !
62 USE modd_agri_n, ONLY : agri_np_init
68 !
71 USE modd_seaflux_n, ONLY : seaflux_init
72 USE modd_ocean_n, ONLY : ocean_init
74 !
75 USE yomhook ,ONLY : lhook, dr_hook
76 USE parkind1 ,ONLY : jprb
77 !
78 IMPLICIT NONE
79 !
80 type(surfex_t), INTENT (INOUT) :: ydsurfex
81 REAL(KIND=JPRB) :: ZHOOK_HANDLE
82 IF (lhook) CALL dr_hook("SURFEX_ALLOC",0,zhook_handle)
83  !
84  CALL diag_options_init(ydsurfex%FM%DFO)
85  CALL diag_init(ydsurfex%FM%DF)
86  CALL diag_init(ydsurfex%FM%DFC)
87  CALL diag_misc_flake_init(ydsurfex%FM%DMF)
88  !
89  CALL grid_init(ydsurfex%FM%G)
90  CALL canopy_init(ydsurfex%FM%SB)
91  CALL ch_flake_init(ydsurfex%FM%CHF)
92  CALL flake_init(ydsurfex%FM%F)
93  !
94  !
95  CALL diag_options_init(ydsurfex%WM%DWO)
96  CALL diag_init(ydsurfex%WM%DW)
97  CALL diag_init(ydsurfex%WM%DWC)
98  !
99  CALL grid_init(ydsurfex%WM%G)
100  CALL canopy_init(ydsurfex%WM%SB)
101  CALL ch_watflux_init(ydsurfex%WM%CHW)
102  CALL watflux_init(ydsurfex%WM%W)
103  !
104  !
105  CALL diag_options_init(ydsurfex%SM%SD%O)
106  CALL diag_init(ydsurfex%SM%SD%D)
107  CALL diag_init(ydsurfex%SM%SD%DC)
108  CALL diag_init(ydsurfex%SM%SD%DI)
109  CALL diag_init(ydsurfex%SM%SD%DIC)
110  CALL diag_ocean_init(ydsurfex%SM%SD%GO)
111  CALL diag_misc_seaice_init(ydsurfex%SM%SD%DMI)
112  !
113  CALL data_seaflux_init(ydsurfex%SM%DTS)
114  CALL grid_init(ydsurfex%SM%G)
115  CALL canopy_init(ydsurfex%SM%SB)
116  CALL ch_seaflux_init(ydsurfex%SM%CHS)
117  CALL seaflux_init(ydsurfex%SM%S)
118  CALL seaflux_init(ydsurfex%SM%S)
119  CALL ocean_init(ydsurfex%SM%O)
120  CALL ocean_rel_init(ydsurfex%SM%OR)
121  !
122  !
123  CALL diag_options_init(ydsurfex%IM%ID%O)
124  CALL diag_init(ydsurfex%IM%ID%D)
125  CALL diag_init(ydsurfex%IM%ID%DC)
126  CALL diag_np_init(ydsurfex%IM%ID%ND,nvegtype_ecosg)
127  CALL diag_np_init(ydsurfex%IM%ID%NDC,nvegtype_ecosg)
128  CALL diag_evap_isba_init(ydsurfex%IM%ID%DE)
129  CALL diag_evap_isba_init(ydsurfex%IM%ID%DEC)
130  CALL diag_evap_isba_np_init(ydsurfex%IM%ID%NDE,nvegtype_ecosg)
131  CALL diag_evap_isba_np_init(ydsurfex%IM%ID%NDEC,nvegtype_ecosg)
132  CALL diag_misc_isba_init(ydsurfex%IM%ID%DM)
133  CALL diag_misc_isba_np_init(ydsurfex%IM%ID%NDM,nvegtype_ecosg)
134  !
135  CALL data_isba_init(ydsurfex%IM%DTV)
136  CALL canopy_init(ydsurfex%IM%SB)
137  CALL isba_options_init(ydsurfex%IM%O)
138  CALL isba_s_init(ydsurfex%IM%S)
139  CALL ch_isba_init(ydsurfex%IM%CHI)
140  CALL ch_isba_np_init(ydsurfex%IM%NCHI,nvegtype_ecosg)
141  CALL gr_biog_init(ydsurfex%IM%GB)
142  CALL gr_biog_np_init(ydsurfex%IM%NGB,nvegtype_ecosg)
143  CALL sso_init(ydsurfex%IM%ISS)
144  CALL sso_np_init(ydsurfex%IM%NISS,nvegtype_ecosg)
145  CALL grid_init(ydsurfex%IM%G)
146  CALL grid_np_init(ydsurfex%IM%NG,nvegtype_ecosg)
147  CALL isba_k_init(ydsurfex%IM%K)
148  CALL isba_nk_init(ydsurfex%IM%NK,nvegtype_ecosg)
149  CALL isba_np_init(ydsurfex%IM%NP,nvegtype_ecosg)
150  CALL isba_npe_init(ydsurfex%IM%NPE,nvegtype_ecosg)
151  CALL agri_np_init(ydsurfex%IM%NAG,nvegtype_ecosg)
152  !
153  !
154  CALL diag_np_init(ydsurfex%GDM%VD%ND,nteb_patch_max)
155  CALL diag_evap_isba_np_init(ydsurfex%GDM%VD%NDE,nteb_patch_max)
156  CALL diag_evap_isba_np_init(ydsurfex%GDM%VD%NDEC,nteb_patch_max)
157  CALL diag_misc_isba_np_init(ydsurfex%GDM%VD%NDM,nteb_patch_max)
158  !
159  CALL data_isba_init(ydsurfex%GDM%DTV)
160  CALL isba_options_init(ydsurfex%GDM%O)
161  CALL isba_s_init(ydsurfex%GDM%S)
162  CALL gr_biog_init(ydsurfex%GDM%GB)
163  CALL isba_k_init(ydsurfex%GDM%K)
164  CALL isba_p_init(ydsurfex%GDM%P)
165  CALL isba_npe_init(ydsurfex%GDM%NPE,nteb_patch_max)
166  !
167  !
168  CALL diag_np_init(ydsurfex%GRM%VD%ND,nteb_patch_max)
169  CALL diag_evap_isba_np_init(ydsurfex%GRM%VD%NDE,nteb_patch_max)
170  CALL diag_evap_isba_np_init(ydsurfex%GRM%VD%NDEC,nteb_patch_max)
171  CALL diag_misc_isba_np_init(ydsurfex%GRM%VD%NDM,nteb_patch_max)
172  !
173  CALL data_isba_init(ydsurfex%GRM%DTV)
174  CALL isba_options_init(ydsurfex%GRM%O)
175  CALL isba_s_init(ydsurfex%GRM%S)
176  CALL gr_biog_init(ydsurfex%GRM%GB)
177  CALL isba_k_init(ydsurfex%GRM%K)
178  CALL isba_p_init(ydsurfex%GRM%P)
179  CALL isba_npe_init(ydsurfex%GRM%NPE,nteb_patch_max)
180  !
181  !
182  CALL diag_options_init(ydsurfex%TM%TD%O)
183  CALL diag_init(ydsurfex%TM%TD%D)
184  CALL diag_misc_teb_options_init(ydsurfex%TM%TD%MTO)
185  CALL diag_misc_teb_np_init(ydsurfex%TM%TD%NDMT,nteb_patch_max)
186  CALL diag_misc_teb_np_init(ydsurfex%TM%TD%NDMTC,nteb_patch_max)
187  CALL diag_utci_teb_init(ydsurfex%TM%TD%DUT)
188  !
189  CALL data_teb_init(ydsurfex%TM%DTT)
190  CALL teb_options_init(ydsurfex%TM%TOP)
191  CALL canopy_init(ydsurfex%TM%SB)
192  CALL grid_init(ydsurfex%TM%G)
193  CALL ch_teb_init(ydsurfex%TM%CHT)
194  CALL teb_panel_init(ydsurfex%TM%TPN)
195  CALL teb_irrig_init(ydsurfex%TM%TIR)
196  CALL teb_np_init(ydsurfex%TM%NT,nteb_patch_max)
197  !
198  CALL data_bem_init(ydsurfex%TM%DTB)
199  CALL bem_options_init(ydsurfex%TM%BOP)
200  CALL bld_desc_init(ydsurfex%TM%BDD)
201  CALL bem_np_init(ydsurfex%TM%NB,nteb_patch_max)
202  !
203  !
204  CALL data_cover_init(ydsurfex%DTCO)
205  CALL data_tsz0_init(ydsurfex%DTZ)
206  CALL dummy_surf_fields_init(ydsurfex%DUU)
207  !
208  CALL grid_conf_proj_init(ydsurfex%GCP)
209  CALL surf_atm_grid_init(ydsurfex%UG)
210  CALL surf_atm_init(ydsurfex%U)
211  CALL diag_options_init(ydsurfex%DUO)
212  CALL diag_init(ydsurfex%DU)
213  CALL diag_init(ydsurfex%DUC)
214  CALL diag_np_init(ydsurfex%DUP,ntilesfc)
215  CALL diag_np_init(ydsurfex%DUPC,ntilesfc)
216  CALL sso_init(ydsurfex%USS)
217  CALL canopy_init(ydsurfex%SB)
218  !
219  CALL diag_init(ydsurfex%DL)
220  CALL diag_init(ydsurfex%DLC)
221  CALL ideal_init(ydsurfex%L)
222  !
223  CALL sv_init(ydsurfex%SV)
224  CALL ch_surf_init(ydsurfex%CHU)
225  CALL ch_emis_field_init(ydsurfex%CHE)
226  CALL ch_emis_snap_init(ydsurfex%CHN)
227  CALL emis_gr_field_init(ydsurfex%EGF)
228  CALL dst_np_init(ydsurfex%NDST,nvegtype_ecosg)
229  CALL slt_init(ydsurfex%SLT)
230  !
231 IF (lhook) CALL dr_hook("SURFEX_ALLOC",1,zhook_handle)
232 !
233 END SUBROUTINE surfex_alloc
subroutine diag_init(D)
Definition: modd_diagn.F90:224
subroutine surfex_alloc(YDSURFEX)
Definition: surfex_alloc.F90:6
subroutine gr_biog_init(YGR_BIOG)
subroutine ch_flake_init(YCH_FLAKE)
subroutine ch_emis_snap_init(YCH_EMIS_SNAP)
subroutine teb_options_init(YTEB_OPTIONS)
subroutine teb_irrig_init(YTEB_IRRIG)
subroutine agri_np_init(YNAG, KPATCH)
Definition: modd_agrin.F90:78
subroutine diag_misc_teb_options_init(YDIAG_MISC_TEB_OPTIONS)
subroutine flake_init(YFLAKE)
subroutine ch_surf_init(YCH_SURF)
subroutine bld_desc_init(YBLD_DESC)
subroutine isba_p_init(YISBA_P)
Definition: modd_isban.F90:611
subroutine diag_evap_isba_np_init(YNDIAG_EVAP_ISBA, KPATCH)
subroutine sv_init(YSV)
Definition: modd_svn.F90:65
subroutine isba_nk_init(YISBA_NK, KPATCH)
Definition: modd_isban.F90:753
subroutine ch_seaflux_init(YCH_SEAFLUX)
subroutine diag_misc_isba_init(DMI)
subroutine isba_npe_init(YISBA_NPE, KPATCH)
Definition: modd_isban.F90:797
subroutine sso_init(YSSO)
Definition: modd_sson.F90:103
subroutine gr_biog_np_init(YGR_BIOG_NP, KPATCH)
subroutine diag_np_init(ND, KPATCH)
Definition: modd_diagn.F90:203
subroutine diag_misc_flake_init(DMF)
subroutine ch_teb_init(YCH_TEB)
subroutine diag_misc_isba_np_init(YNDIAG_MISC_ISBA, KPATCH)
subroutine ideal_init(YIDEAL)
Definition: modd_idealn.F90:64
subroutine emis_gr_field_init(YEMIS_GR_FIELD)
subroutine ch_isba_np_init(YCH_ISBA_NP, KPATCH)
subroutine teb_panel_init(YTEB_PANEL)
integer, parameter nteb_patch_max
subroutine isba_options_init(IO)
integer, parameter jprb
Definition: parkind1.F90:32
subroutine ch_isba_init(YCH_ISBA)
subroutine isba_np_init(YISBA_NP, KPATCH)
Definition: modd_isban.F90:775
subroutine slt_init(YSLT)
Definition: modd_sltn.F90:26
subroutine bem_np_init(YNBEM, KPATCH)
Definition: modd_bemn.F90:216
subroutine bem_options_init(YBEM_OPTIONS)
subroutine data_teb_init(YDATA_TEB)
subroutine isba_s_init(YISBA_S)
Definition: modd_isban.F90:496
subroutine teb_np_init(YNTEB, KPATCH)
Definition: modd_tebn.F90:248
subroutine data_bem_init(YDATA_BEM)
subroutine watflux_init(YWATFLUX)
subroutine ocean_rel_init(YOCEAN_REL)
subroutine dummy_surf_fields_init(YDUMMY_SURF_FIELDS)
subroutine diag_misc_teb_np_init(YNDIAG_MISC_TEB, KPATCH)
subroutine ocean_init(YOCEAN)
Definition: modd_oceann.F90:85
subroutine data_seaflux_init(YDATA_SEAFLUX)
subroutine surf_atm_grid_init(YSURF_ATM_GRID)
logical lhook
Definition: yomhook.F90:15
subroutine ch_emis_field_init(YCH_EMIS_FIELD)
subroutine grid_np_init(GP, KPATCH)
subroutine data_tsz0_init(YDATA_TSZ0)
subroutine data_isba_init(YDATA_ISBA)
subroutine grid_init(G)
subroutine diag_ocean_init(YDIAG_OCEAN)
subroutine isba_k_init(YISBA_K)
Definition: modd_isban.F90:558
subroutine seaflux_init(YSEAFLUX)
subroutine diag_misc_seaice_init(YDIAG_MISC_SEAICE)
subroutine diag_options_init(DGO)
Definition: modd_diagn.F90:176
subroutine data_cover_init(YDATA_COVER)
subroutine ch_watflux_init(YCH_WATFLUX)
subroutine dst_np_init(YDST_NP, KPATCH)
Definition: modd_dstn.F90:60
subroutine grid_conf_proj_init(YGRIDCONF)
subroutine sso_np_init(YSSO_NP, KPATCH)
Definition: modd_sson.F90:137
subroutine canopy_init(SB)
subroutine surf_atm_init(YSURF_ATM)
subroutine diag_utci_teb_init(YDIAG_UTCI_TEB)