SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
init_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 init_isba_n (DTCO, DGU, UG, U, IM, DTZ, DST, SLT, SV, &
7  hprogram,hinit,oland_use, &
8  ki,ksv,ksw, &
9  hsv,pco2,prhoa, &
10  pzenith,pazim,psw_bands,pdir_alb,psca_alb, &
11  pemis,ptsrad, ptsurf, &
12  kyear, kmonth,kday, ptime, &
13  hatmfile,hatmfiletype, &
14  htest )
15 !#############################################################
16 !
17 !!**** *INIT_ISBA_n* - routine to initialize ISBA
18 !!
19 !! PURPOSE
20 !! -------
21 !!
22 !!** METHOD
23 !! ------
24 !!
25 !! EXTERNAL
26 !! --------
27 !!
28 !!
29 !! IMPLICIT ARGUMENTS
30 !! ------------------
31 !!
32 !! REFERENCE
33 !! ---------
34 !!
35 !!
36 !! AUTHOR
37 !! ------
38 !! V. Masson *Meteo France*
39 !!
40 !! MODIFICATIONS
41 !! -------------
42 !! Original 01/2004
43 !! Modified by P. Le Moigne (11/2004): miscellaneous diagnostics
44 !! Modified by P. Le Moigne (06/2006): seeding and irrigation
45 !! Modified by B. Decharme (2008) : SGH and Flooding scheme
46 !! Modified by B. Decharme (01/2009): optional deep soil temperature as in Arpege
47 !! Modified by R. Hamdi (01/2009): Cp and L
48 !! Modified by B. Decharme (06/2009): read topographic index statistics
49 !! Modified by P. Le Moigne (01/2009): Beljaars sso
50 !! Modified by B. Decharme (08/2009): Active Trip coupling variable if Earth System Model
51 !! A.L. Gibelin 04/09 : change BSLAI_NITRO initialisation
52 !! A.L. Gibelin 04/09 : modifications for CENTURY model
53 !! A.L. Gibelin 06/09 : soil carbon initialisation
54 !! B. Decharme 07/11 : read pgd+prep
55 !! R. Alkama 05/12 : new carbon spinup
56 !! J.Escobar 11/13 : add USE MODI_DEFAULT_CROCUS
57 !! B. Decharme 04/2013 new coupling variables
58 !! P. Samuelsson 10/14 : MEB
59 !!
60 !-------------------------------------------------------------------------------
61 !
62 !* 0. DECLARATIONS
63 ! ------------
64 !
65 USE modd_surfex_n, ONLY : isba_model_t
66 !
70 USE modd_surf_atm_n, ONLY : surf_atm_t
71 USE modd_data_tsz0_n, ONLY : data_tsz0_t
72 USE modd_dst_n, ONLY : dst_t
73 USE modd_slt_n, ONLY : slt_t
74 USE modd_sv_n, ONLY : sv_t
75 !
76 !
77 USE modd_data_cover, ONLY : xdata_lai, xdata_h_tree, &
78  xdata_albnir_veg, xdata_albvis_veg, &
79  xdata_albuv_veg, xdata_rsmin, &
80  xdata_root_extinction,xdata_root_lin, &
81  xdata_rgl, xdata_cv, xdata_gamma, xdata_gmes, &
82  xdata_gc, xdata_bslai, xdata_sefold, xdata_laimin,&
83  xdata_dmax, xdata_stress, xdata_f2i, &
84  xdata_veg, xdata_green, xdata_z0, xdata_z0_o_z0h, &
85  xdata_emis_eco, xdata_wrmax_cf, &
86  xdata_ce_nitro,xdata_cf_nitro,xdata_cna_nitro, &
87  xdata_soilrc_so2, xdata_soilrc_o3, xdata_re25, &
88  xdata_gmes_st, xdata_bslai_st, xdata_sefold_st, &
89  xdata_gc_st, xdata_dmax_st
90 !
91 USE modd_surf_atm, ONLY : lcpl_gcm
92 !
93 USE modd_surf_par, ONLY : xundef, nundef
94 USE modd_agri, ONLY : lagrip
95 !
96 USE mode_tartes, ONLY : init_tartes
98 !
99 USE modd_read_namelist, ONLY : lnam_read
100 !
101 USE modd_co2v_par, ONLY : xmco2, xspin_co2
102 USE modd_csts, ONLY : xmd
103 !
104 USE modi_init_io_surf_n
105 !
106 USE modi_get_luout
107 USE modi_abor1_sfx
108 USE modi_default_isba
109 USE modi_default_ch_dep
110 USE modi_default_ch_bio_flux
111 USE modi_default_diag_isba
112 USE modi_default_crocus
113 USE modi_read_default_isba_n
114 USE modi_read_isba_conf_n
115 USE modi_read_prep_isba_snow
116 USE modi_read_prep_isba_carbon
117 USE modi_read_surf
118 USE modi_prep_ctrl_isba
119 USE modi_read_isba_date
120 USE modi_read_pgd_isba_n
121 USE modi_compute_isba_parameters
122 USE modi_read_nam_prep_isba_n
123 USE modi_ini_data_param
124 !
125 USE modi_set_surfex_filein
126 !
127 USE modi_end_io_surf_n
128 !
129 USE yomhook ,ONLY : lhook, dr_hook
130 USE parkind1 ,ONLY : jprb
131 !
132 IMPLICIT NONE
133 !
134 !* 0.1 Declarations of arguments
135 ! -------------------------
136 !
137 !
138 TYPE(isba_model_t), INTENT(INOUT) :: im
139 TYPE(data_cover_t), INTENT(INOUT) :: dtco
140 TYPE(diag_surf_atm_t), INTENT(INOUT) :: dgu
141 TYPE(surf_atm_grid_t), INTENT(INOUT) :: ug
142 TYPE(surf_atm_t), INTENT(INOUT) :: u
143 TYPE(data_tsz0_t), INTENT(INOUT) :: dtz
144 TYPE(dst_t), INTENT(INOUT) :: dst
145 TYPE(slt_t), INTENT(INOUT) :: slt
146 TYPE(sv_t), INTENT(INOUT) :: sv
147 !
148  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! program calling surf. schemes
149  CHARACTER(LEN=3), INTENT(IN) :: hinit ! choice of fields to initialize
150 LOGICAL, INTENT(IN) :: oland_use !
151 INTEGER, INTENT(IN) :: ki ! number of points
152 INTEGER, INTENT(IN) :: ksv ! number of scalars
153 INTEGER, INTENT(IN) :: ksw ! number of short-wave spectral bands
154  CHARACTER(LEN=6), DIMENSION(KSV), INTENT(IN) :: hsv ! name of all scalar variables
155 REAL, DIMENSION(KI), INTENT(IN) :: pco2 ! CO2 concentration (kg/m3)
156 REAL, DIMENSION(KI), INTENT(IN) :: prhoa ! air density
157 REAL, DIMENSION(KI), INTENT(IN) :: pzenith ! solar zenithal angle
158 REAL, DIMENSION(KI), INTENT(IN) :: pazim ! solar azimuthal angle (rad from N, clock)
159 REAL, DIMENSION(KSW), INTENT(IN) :: psw_bands ! middle wavelength of each band
160 REAL, DIMENSION(KI,KSW),INTENT(OUT) :: pdir_alb ! direct albedo for each band
161 REAL, DIMENSION(KI,KSW),INTENT(OUT) :: psca_alb ! diffuse albedo for each band
162 REAL, DIMENSION(KI), INTENT(OUT) :: pemis ! emissivity
163 REAL, DIMENSION(KI), INTENT(OUT) :: ptsrad ! radiative temperature
164 REAL, DIMENSION(KI), INTENT(OUT) :: ptsurf ! surface effective temperature (K)
165 !
166 INTEGER, INTENT(IN) :: kyear ! current year (UTC)
167 INTEGER, INTENT(IN) :: kmonth ! current month (UTC)
168 INTEGER, INTENT(IN) :: kday ! current day (UTC)
169 REAL, INTENT(IN) :: ptime ! current time since
170  ! midnight (UTC, s)
171 !
172  CHARACTER(LEN=28), INTENT(IN) :: hatmfile ! atmospheric file name
173  CHARACTER(LEN=6), INTENT(IN) :: hatmfiletype! atmospheric file type
174  CHARACTER(LEN=2), INTENT(IN) :: htest ! must be equal to 'OK'
175 !
176 !
177 !* 0.2 Declarations of local variables
178 ! -------------------------------
179 !
180 REAL, DIMENSION(KI) :: zco2 ! CO2 concentration (kg/m3)
181 REAL :: zspinco2
182 INTEGER :: ispinend
183 !
184 INTEGER :: iluout ! unit of output listing file
185 INTEGER :: iversion ! surface version
186 INTEGER :: iresp ! return code
187 INTEGER :: isize_lmeb_patch ! Number of patches where multi-energy balance should be applied
188 !
189 REAL(KIND=JPRB) :: zhook_handle
190 !
191 !-------------------------------------------------------------------------------
192 !
193 ! Initialisation for IO
194 !
195 !
196 IF (lhook) CALL dr_hook('INIT_ISBA_N',0,zhook_handle)
197  CALL get_luout(hprogram,iluout)
198 !
199 IF (htest/='OK') THEN
200  CALL abor1_sfx('INIT_ISBAN: FATAL ERROR DURING ARGUMENT TRANSFER')
201 END IF
202 !
203 ! Other little things
204 !
205 IF (lnam_read) THEN
206  !
207  !* 0. Defaults
208 ! --------
209 
210  ! 0.1. Hard defaults
211  !
212  CALL default_isba(im%I%XTSTEP, im%I%XOUT_TSTEP, &
213  im%I%CROUGH,im%I%CRUNOFF,im%I%CALBEDO,im%I%CSCOND, &
214  im%I%CC1DRY, im%I%CSOILFRZ, im%I%CDIFSFCOND, im%I%CSNOWRES, &
215  im%I%CCPSURF, im%I%XCGMAX, im%I%XCDRAG, im%I%CKSAT, im%I%LSOC, &
216  im%I%CRAIN, im%I%CHORT, im%I%LGLACIER, im%I%LCANOPY_DRAG, &
217  im%I%LVEGUPD, im%I%LSPINUPCARBS, im%I%LSPINUPCARBW, &
218  im%I%XSPINMAXS, im%I%XSPINMAXW, im%I%XCO2_START, im%I%XCO2_END, &
219  im%I%NNBYEARSPINS, im%I%NNBYEARSPINW, im%I%LNITRO_DILU )
220  !
221  CALL default_ch_dep(im%CHI%CCH_DRY_DEP)
222  CALL default_ch_bio_flux(im%CHI%LCH_BIO_FLUX)
223  CALL default_diag_isba(im%DGI%N2M,im%DGI%LSURF_BUDGET,im%DGI%L2M_MIN_ZS,im%DGI%LRAD_BUDGET, &
224  im%DGI%LCOEF,im%DGI%LSURF_VARS,im%DGEI%LSURF_EVAP_BUDGET, &
225  im%DGMI%LSURF_MISC_BUDGET,im%DGMI%LSURF_DIAG_ALBEDO, &
226  im%DGEI%LSURF_BUDGETC,im%DGMI%LSURF_MISC_DIF,im%DGI%LPATCH_BUDGET,&
227  im%DGI%LPGD,im%DGEI%LRESET_BUDGETC,im%DGEI%LWATER_BUDGET, &
228  im%DGI%XDIAG_TSTEP )
229  !
230  CALL default_crocus(im%I%LSNOWDRIFT,im%I%LSNOWDRIFT_SUBLIM,im%I%LSNOW_ABS_ZENITH,&
231  im%I%CSNOWMETAMO,im%I%CSNOWRAD)
232  !
233 ENDIF
234 !
235 ! 0.2. Defaults from file header
236 !
237  CALL read_default_isba_n(im%CHI, im%DGEI, im%DGI, im%DGMI, im%I, &
238  hprogram)
239 !
240  CALL read_isba_conf_n(im%CHI, im%DGEI, im%DGI, im%DGMI, im%I, &
241  hprogram)
242 !
243  CALL init_io_surf_n(dtco, dgu, u, &
244  hprogram,'FULL ','ISBA ','READ ')
245  CALL read_surf(&
246  hprogram,'VERSION',iversion,iresp)
247  CALL end_io_surf_n(hprogram)
248 !
249 !* 1. Reading of configuration:
250 ! -------------------------
251 !
252 !* initialization of snow and carbon schemes
253 !
254 im%I%NNBYEARSOLD = 1
255 im%I%NSPINS = 1
256 im%I%NSPINW = 1
257 !
258 IF (hinit=='PRE') THEN
259  CALL read_prep_isba_snow(hprogram,im%I%TSNOW%SCHEME,im%I%TSNOW%NLAYER)
260 !
261 !* initialization of soil carbon scheme
262 !
263  CALL read_prep_isba_carbon(hprogram,im%I%CRESPSL)
264 !
265  IF (im%I%CRESPSL=='CNT') THEN
266  im%I%NNLITTER = 2
267  im%I%NNLITTLEVS = 2
268  im%I%NNSOILCARB = 3
269  ELSE
270  im%I%NNLITTER = 0
271  im%I%NNLITTLEVS = 0
272  im%I%NNSOILCARB = 0
273  ENDIF
274 
275 ELSEIF (hinit=='ALL') THEN
276 !
277  CALL init_io_surf_n(dtco, dgu, u, &
278  hprogram,'NATURE','ISBA ','READ ')
279 !
280  IF (iversion<6) THEN
281  im%I%CRESPSL='DEF'
282  ELSE
283  CALL read_surf(&
284  hprogram,'RESPSL',im%I%CRESPSL,iresp)
285  CALL read_surf(&
286  hprogram,'NLITTER',im%I%NNLITTER,iresp)
287  CALL read_surf(&
288  hprogram,'NLITTLEVS',im%I%NNLITTLEVS,iresp)
289  CALL read_surf(&
290  hprogram,'NSOILCARB',im%I%NNSOILCARB,iresp)
291  IF(iversion>=7.AND.(im%I%LSPINUPCARBS.OR.im%I%LSPINUPCARBW))THEN
292  CALL read_surf(&
293  hprogram,'NBYEARSOLD',im%I%NNBYEARSOLD,iresp)
294  ELSE
295  im%I%NNBYEARSOLD=nundef
296  ENDIF
297  ENDIF
298 !
299  CALL end_io_surf_n(hprogram)
300 !
301 ENDIF
302 !
303 !-------------------------------------------------------------------------------
304 !
305 !* 2. Physiographic fields
306 ! --------------------
307 !
308 !
309 !* date
310 !
311 SELECT CASE (hinit)
312  CASE ('PGD')
313  im%I%TTIME%TDATE%YEAR = nundef
314  im%I%TTIME%TDATE%MONTH= nundef
315  im%I%TTIME%TDATE%DAY = nundef
316  im%I%TTIME%TIME = xundef
317 
318  CASE ('PRE')
319  CALL prep_ctrl_isba(im%DGI%N2M,im%DGI%LSURF_BUDGET,im%DGI%L2M_MIN_ZS,im%DGI%LRAD_BUDGET,&
320  im%DGI%LCOEF,im%DGI%LSURF_VARS,&
321  im%DGEI%LSURF_EVAP_BUDGET,im%DGMI%LSURF_MISC_BUDGET,im%DGEI%LSURF_BUDGETC, &
322  im%DGI%LPATCH_BUDGET,im%DGMI%LSURF_MISC_DIF,iluout )
323  IF (lnam_read) CALL read_nam_prep_isba_n(hprogram)
324  CALL read_isba_date(&
325  hprogram,hinit,iluout,hatmfile,hatmfiletype,kyear,kmonth,kday,ptime,im%I%TTIME)
326 
327  CASE default
328  CALL init_io_surf_n(dtco, dgu, u, &
329  hprogram,'NATURE','ISBA ','READ ')
330  CALL read_surf(&
331  hprogram,'DTCUR',im%I%TTIME,iresp)
332  CALL end_io_surf_n(hprogram)
333 END SELECT
334 !
335 !-----------------------------------------------------------------------------------------------------
336 ! READ PGD FILE
337 !-----------------------------------------------------------------------------------------------------
338 !
339 ! initialization for I/O
340 !
341  CALL set_surfex_filein(hprogram,'PGD ') ! change input file name to pgd name
342  CALL init_io_surf_n(dtco, dgu, u, &
343  hprogram,'NATURE','ISBA ','READ ')
344 !
345 !
346 !* 2.1 Cover, soil and orographic fields:
347 ! ---------------------------------
348 !
349  CALL read_pgd_isba_n(im%CHI, dtco, im%DTI, dtz, dgu, im%GB, im%IG, im%I, &
350  ug, u, sv, &
351  hprogram,oland_use)
352 !
353 isize_lmeb_patch=count(im%I%LMEB_PATCH(:))
354 !
355 !
356 !* 2.2 Check:
357 ! ------
358 !
359 IF ( im%I%CPHOTO/='NON' .AND. im%I%NPATCH/=12 .AND. im%I%NPATCH/=19 )THEN
360  CALL abor1_sfx('INIT_ISBAN: INCONSISTENCY BETWEEN CPHOTO AND NPATCH')
361 ENDIF
362 !
363 IF (hinit=='PRE' .AND. im%I%TSNOW%SCHEME.NE.'3-L' .AND. im%I%TSNOW%SCHEME.NE.'CRO' .AND. im%I%CISBA=='DIF') THEN
364  CALL abor1_sfx("INIT_ISBAN: WITH CISBA = DIF, CSNOW MUST BE 3-L OR CRO")
365 ENDIF
366 IF ( im%I%CPHOTO/='LAI' .AND. im%I%CPHOTO/='LST' .AND. im%I%CPHOTO/='NIT' .AND. im%I%CPHOTO/='NCB' .AND. lagrip) THEN
367  CALL abor1_sfx('INIT_ISBAN: INCONSISTENCY BETWEEN CPHOTO AND LAGRIP')
368 ENDIF
369 IF ( im%I%CPHOTO/='NCB' .AND. im%I%CRESPSL=='CNT') THEN
370  CALL abor1_sfx('INIT_ISBAN: INCONSISTENCY BETWEEN CPHOTO AND CRESPSL')
371 ENDIF
372 IF (hinit=='PRE' .AND. isize_lmeb_patch>0 .AND. im%I%TSNOW%SCHEME.NE.'3-L' .AND. im%I%TSNOW%SCHEME.NE.'CRO') THEN
373  CALL abor1_sfx("INIT_ISBAN: WITH LMEB_PATCH = TRUE, CSNOW MUST BE 3-L OR CRO")
374 ENDIF
375 IF(im%I%CPHOTO/='NCB'.AND.im%I%LSPINUPCARBW)THEN
376  CALL abor1_sfx('INIT_ISBAN: INCONSISTENCY BETWEEN CPHOTO AND LSPINUPCARBW (if not NCB must be false)')
377 ENDIF
378 IF(im%I%CRESPSL/='CNT'.AND.im%I%LSPINUPCARBS)THEN
379  CALL abor1_sfx('INIT_ISBAN: INCONSISTENCY BETWEEN CRESPSL AND LSPINUPCARBS (if not CNT must be false)')
380 ENDIF
381 IF(im%I%LSPINUPCARBW.AND.REAL(im%i%nnbyearspinw)>REAL(im%i%nnbyearspins)*0.5)then
382  WRITE(iluout,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
383  WRITE(iluout,*)'INIT_ISBAN: INCONSISTENCY BETWEEN NNBYEARSPINW AND NNBYEARSPINS'
384  WRITE(iluout,*)'NNBYEARSPINW MUST BE < TO 0.5 * NNBYEARSPINS'
385  WRITE(iluout,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
386  CALL abor1_sfx('INIT_ISBAN: INCONSISTENCY BETWEEN NNBYEARSPINW AND NNBYEARSPINS')
387 ENDIF
388 IF(im%I%LSPINUPCARBS.AND.(im%I%XCO2_START==xundef.OR.im%I%XCO2_END==xundef))THEN
389  WRITE(iluout,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
390  WRITE(iluout,*)'INIT_ISBAN: INCONSISTENCY BETWEEN LSPINUPCARBS AND XCO2_START OR XCO2_END'
391  WRITE(iluout,*)'FOR ISBA-CC SPINUP XCO2_START AND XCO2_END MUST BE DEFINED'
392  WRITE(iluout,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
393  CALL abor1_sfx('INIT_ISBAN: INCONSISTENCY BETWEEN LSPINUPCARBS AND XCO2_START OR XCO2_END')
394 ENDIF
395 !
396  CALL end_io_surf_n(hprogram)
397  CALL set_surfex_filein(hprogram,'PREP') ! restore input file name
398 !
399 !-------------------------------------------------------------------------------
400 !
401 ! During soil carbon spinup with ISBA-CC:
402 ! (1) grass parameters are attributed to all agricultural PFT with atmospheric CO2 concentration
403 ! fixed to Pre-industrial CO2 consentration XCO2_START
404 ! (2) Atmospheric CO2 concentration rampin up from XCO2_START to XCO2_END
405 !
406 ispinend=im%I%NNBYEARSPINS-nint(im%I%NNBYEARSPINS*xspin_co2)
407 !
408 im%I%LAGRI_TO_GRASS = .false.
409 !
410 IF ( im%I%LSPINUPCARBS .AND. (im%I%NNBYEARSOLD <= ispinend) ) THEN
411 !
412  im%I%LAGRI_TO_GRASS = .true.
413 !
414  CALL ini_data_param(dtco%XDATA_VEGTYPE, psurf=dtco%XDATA_NATURE, ph_tree=xdata_h_tree,plai=xdata_lai, &
415  palbnir_veg=xdata_albnir_veg, palbvis_veg=xdata_albvis_veg, &
416  palbuv_veg=xdata_albuv_veg, prsmin=xdata_rsmin, &
417  prgl=xdata_rgl, pcv=xdata_cv, pgamma=xdata_gamma, &
418  pgmes=xdata_gmes, pgc=xdata_gc, pbslai=xdata_bslai, &
419  psefold=xdata_sefold, plaimin_out=xdata_laimin, pdmax=xdata_dmax, &
420  pstress=xdata_stress, pf2i=xdata_f2i, pveg_out=xdata_veg, &
421  pgreen=xdata_green, pz0=xdata_z0, pz0_o_z0h=xdata_z0_o_z0h, &
422  pemis_eco=xdata_emis_eco, pwrmax_cf=xdata_wrmax_cf, &
423  proot_lin=xdata_root_lin, proot_extinction=xdata_root_extinction, &
424  psoilrc_so2=xdata_soilrc_so2, psoilrc_o3=xdata_soilrc_o3, pre25=xdata_re25, &
425  pce_nitro=xdata_ce_nitro,pcf_nitro=xdata_cf_nitro,pcna_nitro=xdata_cna_nitro, &
426  pgmes_st=xdata_gmes_st, pgc_st=xdata_gc_st, pbslai_st=xdata_bslai_st, &
427  psefold_st=xdata_sefold_st, pdmax_st=xdata_dmax_st, oagri_to_grass=im%I%LAGRI_TO_GRASS)
428 !
429  zco2(:) = prhoa(:) * im%I%XCO2_START * 1.e-6 * xmco2 / xmd
430 !
431 ELSEIF(im%I%LSPINUPCARBS .AND. (im%I%NNBYEARSOLD > ispinend) .AND. (im%I%NNBYEARSOLD <= im%I%NNBYEARSPINS) )THEN
432 !
433  zspinco2 = im%I%XCO2_START + (im%I%XCO2_END-im%I%XCO2_START) * REAL(IM%I%NNBYEARSOLD - ISPINEND) / &
434  REAL(im%i%nnbyearspins - ispinend)
435 !
436  zco2(:) = prhoa(:) * zspinco2 * 1.e-6 * xmco2 / xmd
437 !
438 ELSE
439 !
440  zco2(:) = pco2(:)
441 !
442 ENDIF
443 !
444 !-----------------------------------------------------------------------------------------------------
445 ! END READ PGD FILE
446 !-----------------------------------------------------------------------------------------------------
447 !
448 !-----------------------------------------------------------------------------------------------------
449 ! Make sure some diags are conputed when coupled with atmosphere
450 !-----------------------------------------------------------------------------------------------------
451 !
452 IF(lcpl_gcm.AND.im%DGI%LSURF_BUDGET)THEN
453  im%DGEI%LSURF_EVAP_BUDGET=.true.
454 ENDIF
455 !
456 !-----------------------------------------------------------------------------------------------------
457 !
458 IF (oland_use .OR. hinit=='PGD') THEN
459  IF (lhook) CALL dr_hook('INIT_ISBA_N',1,zhook_handle)
460  RETURN
461 END IF
462 !
463  CALL compute_isba_parameters(dtco, dgu, ug, u, im, dst, slt, sv, &
464  hprogram,hinit,oland_use, &
465  ki,ksv,ksw, &
466  hsv,zco2,prhoa, &
467  pzenith,psw_bands,pdir_alb,psca_alb, &
468  pemis,ptsrad,ptsurf, &
469  htest )
470 !
471 IF ( im%I%CSNOWMETAMO/="B92" ) THEN
472  CALL read_fz06('drdt_bst_fit_60.nc')
473 ENDIF
474 !
475 IF ( im%I%CSNOWRAD=="TAR" .OR. im%I%CSNOWRAD=="TA1" .OR. im%I%CSNOWRAD=="TA2" ) THEN
476  CALL init_tartes()
477 END IF
478 !
479 IF (lhook) CALL dr_hook('INIT_ISBA_N',1,zhook_handle)
480 !
481 END SUBROUTINE init_isba_n
subroutine init_io_surf_n(DTCO, DGU, U, HPROGRAM, HMASK, HSCHEME, HACTION)
subroutine read_isba_date(HPROGRAM, HINIT, KLUOUT, HATMFILE, HATMFILETYPE, KYEAR, KMONTH, KDAY, PTIME, TPTIME)
subroutine default_isba(PTSTEP, POUT_TSTEP, HROUGH, HRUNOFF, HALBEDO, HSCOND, HC1DRY, HSOILFRZ, HDIFSFCOND, HSNOWRES, HCPSURF, PCGMAX, PCDRAG, HKSAT, OSOC, HRAIN, HHORT, OGLACIER, OCANOPY_DRAG, OVEGUPD, OSPINUPCARBS, OSPINUPCARBW, PSPINMAXS, PSPINMAXW, PCO2_START, PCO2_END, KNBYEARSPINS, KNBYEARSPINW, ONITRO_DILU)
Definition: default_isba.F90:6
subroutine set_surfex_filein(HPROGRAM, HMASK)
subroutine init_tartes()
subroutine read_prep_isba_carbon(HPROGRAM, HRESPSL)
subroutine default_diag_isba(K2M, OSURF_BUDGET, O2M_MIN_ZS, ORAD_BUDGET, OCOEF, OSURF_VARS, OSURF_EVAP_BUDGET, OSURF_MISC_BUDGET, OSURF_DIAG_ALBEDO, OSURF_BUDGETC, OSURF_MISC_DIF, OPATCH_BUDGET, OPGD, ORESET_BUDGETC, OWATER_BUDGET, PDIAG_TSTEP)
subroutine read_isba_conf_n(CHI, DGEI, DGI, DGMI, I, HPROGRAM)
subroutine abor1_sfx(YTEXT)
Definition: abor1_sfx.F90:6
subroutine read_nam_prep_isba_n(HPROGRAM)
subroutine ini_data_param(PTYPE, PSURF, PSURF2, PLAI, PH_TREE, PALBNIR_VEG, PALBVIS_VEG, PALBUV_VEG, PRSMIN, PRGL, PCV, PGAMMA, PGMES, PGC, PBSLAI, PSEFOLD, PLAIMIN_IN, PLAIMIN_OUT, PDMAX, PSTRESS, PF2I, PVEG_IN, PVEG_OUT, PGREEN, PZ0, PZ0_O_Z0H, PEMIS_ECO, PWRMAX_CF, PROOT_LIN, PROOT_EXTINCTION, PSOILRC_SO2, PSOILRC_O3, PRE25, PCE_NITRO, PCF_NITRO, PCNA_NITRO, PGMES_ST, PGC_ST, PBSLAI_ST, PSEFOLD_ST, PDMAX_ST, PGNDLITTER, PZF_TALLVEG, PRGLGV, PGAMMAGV, PRSMINGV, PROOT_EXTINCTIONGV, PWRMAX_CFGV, PH_VEG, PLAIGV_IN, PLAIGV_OUT, PZ0LITTER, OAGRI_TO_GRASS)
subroutine read_default_isba_n(CHI, DGEI, DGI, DGMI, I, HPROGRAM)
subroutine read_pgd_isba_n(CHI, DTCO, DTI, DTZ, DGU, GB, IG, I, UG, U, SV, HPROGRAM, OLAND_USE)
subroutine default_ch_dep(HCH_DRY_DEP)
subroutine end_io_surf_n(HPROGRAM)
Definition: end_io_surfn.F90:6
subroutine get_luout(HPROGRAM, KLUOUT)
Definition: get_luout.F90:6
subroutine read_prep_isba_snow(HPROGRAM, HSNOW, KSNOW_LAYER, HFILE, HFILETYPE, HFILEPGD, HFILEPGDTYPE, OUNIF)
subroutine default_crocus(OSNOWDRIFT, OSNOWDRIFT_SUBLIM, OSNOW_ABS_ZENITH, HSNOWMETAMO, HSNOWRAD)
subroutine read_fz06(HFILE)
subroutine init_isba_n(DTCO, DGU, UG, U, IM, DTZ, DST, SLT, SV, HPROGRAM, HINIT, OLAND_USE, KI, KSV, KSW, HSV, PCO2, PRHOA, PZENITH, PAZIM, PSW_BANDS, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD, PTSURF, KYEAR, KMONTH, KDAY, PTIME, HATMFILE, HATMFILETYPE, HTEST)
Definition: init_isban.F90:6
subroutine prep_ctrl_isba(K2M, OSURF_BUDGET, O2M_MIN_ZS, ORAD_BUDGET, OCOEF, OSURF_VARS, OSURF_EVAP_BUDGET, OSURF_MISC_BUDGET, OSURF_BUDGETC, OPATCH_BUDGET, OSURF_MISC_DIF, KLUOUT)
subroutine compute_isba_parameters(DTCO, DGU, UG, U, IM, DST, SLT, SV, HPROGRAM, HINIT, OLAND_USE, KI, KSV, KSW, HSV, PCO2, PRHOA, PZENITH, PSW_BANDS, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD, PTSURF, HTEST)
subroutine default_ch_bio_flux(OCH_BIO_FLUX)