SURFEX v8.1
General documentation of Surfex
init_naturen.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_nature_n (DTCO, OREAD_BUDGETC, UG, U, USS, GCP, IM, &
7  DTZ, DGO, DL, DLC, NDST, SLT, SV, &
8  HPROGRAM,HINIT,OLAND_USE, KI,KSV,KSW, &
9  HSV,PCO2,PRHOA,PZENITH,PAZIM,PSW_BANDS, &
10  PDIR_ALB,PSCA_ALB,PEMIS,PTSRAD,PTSURF, &
11  KYEAR, KMONTH,KDAY, PTIME, TPDATE_END, &
12  HATMFILE,HATMFILETYPE,HTEST )
13 ! #############################################################
14 !
15 !!**** *INIT_NATURE_n* - routine to choose initialization of vegetation scheme
16 !!
17 !! PURPOSE
18 !! -------
19 !!
20 !!** METHOD
21 !! ------
22 !!
23 !! EXTERNAL
24 !! --------
25 !!
26 !!
27 !! IMPLICIT ARGUMENTS
28 !! ------------------
29 !!
30 !! REFERENCE
31 !! ---------
32 !!
33 !!
34 !! AUTHOR
35 !! ------
36 !! V. Masson *Meteo France*
37 !!
38 !! MODIFICATIONS
39 !! -------------
40 !! Original 27/09/96
41 !! V.Masson 18/08/97 call to fmread directly with dates and strings
42 !! V.Masson 15/03/99 new PGD treatment with COVER types
43 ! F.Solmon 06/00 adaptation for patch approach
44 !! B. Decharme 04/2013 new coupling variables
45 !-------------------------------------------------------------------------------
46 !
47 !* 0. DECLARATIONS
48 ! ------------
49 !
50 !
51 USE modd_surfex_n, ONLY : isba_model_t
52 !
53 USE modd_type_date_surf, ONLY : date
54 !
58 USE modd_surf_atm_n, ONLY : surf_atm_t
59 USE modd_sso_n, ONLY : sso_t
61 USE modd_data_tsz0_n, ONLY : data_tsz0_t
62 USE modd_dst_n, ONLY : dst_np_t
63 USE modd_slt_n, ONLY : slt_t
64 USE modd_sv_n, ONLY : sv_t
65 !
66 USE modd_csts, ONLY : xtt
67 !
68 USE yomhook ,ONLY : lhook, dr_hook
69 USE parkind1 ,ONLY : jprb
70 !
71 USE modi_init_ideal_flux
72 !
73 USE modi_init_isba_n
74 !
75 IMPLICIT NONE
76 !
77 !* 0.1 Declarations of arguments
78 ! -------------------------
79 !
80 TYPE(isba_model_t), INTENT(INOUT) :: IM
81 TYPE(data_cover_t), INTENT(INOUT) :: DTCO
82 LOGICAL, INTENT(IN) :: OREAD_BUDGETC
83 TYPE(surf_atm_grid_t), INTENT(INOUT) :: UG
84 TYPE(surf_atm_t), INTENT(INOUT) :: U
85 TYPE(sso_t), INTENT(INOUT) :: USS
86 TYPE(grid_conf_proj_t),INTENT(INOUT) :: GCP
87 TYPE(data_tsz0_t), INTENT(INOUT) :: DTZ
88 TYPE(diag_options_t), INTENT(INOUT) :: DGO
89 TYPE(diag_t), INTENT(INOUT) :: DL
90 TYPE(diag_t), INTENT(INOUT) :: DLC
91 TYPE(dst_np_t), INTENT(INOUT) :: NDST
92 TYPE(slt_t), INTENT(INOUT) :: SLT
93 TYPE(sv_t), INTENT(INOUT) :: SV
94 !
95  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling surf. schemes
96  CHARACTER(LEN=3), INTENT(IN) :: HINIT ! choice of fields to initialize
97 LOGICAL, INTENT(IN) :: OLAND_USE !
98 INTEGER, INTENT(IN) :: KI ! number of points
99 INTEGER, INTENT(IN) :: KSV ! number of scalars
100 INTEGER, INTENT(IN) :: KSW ! number of short-wave spectral bands
101  CHARACTER(LEN=6), DIMENSION(KSV), INTENT(IN) :: HSV ! name of all scalar variables
102 REAL, DIMENSION(KI), INTENT(IN) :: PCO2 ! CO2 concentration (kg/m3)
103 REAL, DIMENSION(KI), INTENT(IN) :: PRHOA ! air density
104 REAL, DIMENSION(KI), INTENT(IN) :: PZENITH ! solar zenithal angle
105 REAL, DIMENSION(KI), INTENT(IN) :: PAZIM ! solar azimuthal angle (rad from N, clock)
106 REAL, DIMENSION(KSW), INTENT(IN) :: PSW_BANDS ! middle wavelength of each band
107 REAL, DIMENSION(KI,KSW),INTENT(OUT) :: PDIR_ALB ! direct albedo for each band
108 REAL, DIMENSION(KI,KSW),INTENT(OUT) :: PSCA_ALB ! diffuse albedo for each band
109 REAL, DIMENSION(KI), INTENT(OUT) :: PEMIS ! emissivity
110 REAL, DIMENSION(KI), INTENT(OUT) :: PTSRAD ! radiative temperature
111 REAL, DIMENSION(KI), INTENT(OUT) :: PTSURF ! surface effective temperature (K)
112 INTEGER, INTENT(IN) :: KYEAR ! current year (UTC)
113 INTEGER, INTENT(IN) :: KMONTH ! current month (UTC)
114 INTEGER, INTENT(IN) :: KDAY ! current day (UTC)
115 REAL, INTENT(IN) :: PTIME ! current time since
116  ! midnight (UTC, s)
117 TYPE(date), INTENT(INOUT) :: TPDATE_END
118 !
119  CHARACTER(LEN=28), INTENT(IN) :: HATMFILE ! atmospheric file name
120  CHARACTER(LEN=6), INTENT(IN) :: HATMFILETYPE! atmospheric file type
121  CHARACTER(LEN=2), INTENT(IN) :: HTEST ! must be equal to 'OK'
122 REAL(KIND=JPRB) :: ZHOOK_HANDLE
123 !
124 !
125 !* 0.2 Declarations of local variables
126 ! -------------------------------
127 !
128 !-------------------------------------------------------------------------------
129 !
130 !* 2. Selection of surface scheme
131 ! ---------------------------
132 !
133 IF (lhook) CALL dr_hook('INIT_NATURE_N',0,zhook_handle)
134 IF (u%CNATURE=='NONE ') THEN
135  pdir_alb=0.
136  psca_alb=0.
137  pemis =1.
138  ptsrad =xtt
139  ptsurf =xtt
140 ELSE IF (u%CNATURE=='FLUX ') THEN
141  CALL init_ideal_flux(dgo, dl, dlc, oread_budgetc, hprogram, hinit, &
142  ki, ksv, ksw, hsv, pdir_alb, psca_alb, pemis, &
143  ptsrad, ptsurf, 'OK' )
144 ELSE IF (u%CNATURE=='ISBA ' .OR. u%CNATURE=='TSZ0') THEN
145  CALL init_isba_n(dtco, oread_budgetc, ug, u, uss, gcp, &
146  im, dtz, ndst, slt, sv, &
147  hprogram, hinit, oland_use, ki, ksv, ksw, hsv, &
148  pco2, prhoa, pzenith, pazim, psw_bands, &
149  pdir_alb, psca_alb, pemis, ptsrad, ptsurf, &
150  kyear, kmonth, kday, ptime, tpdate_end, &
151  hatmfile, hatmfiletype, 'OK' )
152 END IF
153 IF (lhook) CALL dr_hook('INIT_NATURE_N',1,zhook_handle)
154 !
155 !-------------------------------------------------------------------------------
156 !
157 END SUBROUTINE init_nature_n
subroutine init_ideal_flux(DGO, D, DC, OREAD_BUDGETC, HPROGRAM, HINIT, KI, KSV, KSW, HSV, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD, PTSURF, HTEST)
integer, parameter jprb
Definition: parkind1.F90:32
logical lhook
Definition: yomhook.F90:15
subroutine init_isba_n(DTCO, OREAD_BUDGETC, UG, U, USS, GCP, IM, DTZ, NDST, 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, TPDATE_END, HATMFILE, HATMFILETYPE, HTEST)
Definition: init_isban.F90:12
real, save xtt
Definition: modd_csts.F90:66
subroutine init_nature_n(DTCO, OREAD_BUDGETC, UG, U, USS, GCP, IM
Definition: init_naturen.F90:7