SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
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, DGU, UG, U, IM, DTZ, DGL, &
7  dst, slt, sv, &
8  hprogram,hinit,oland_use, &
9  ki,ksv,ksw, &
10  hsv,pco2,prhoa, &
11  pzenith,pazim,psw_bands,pdir_alb,psca_alb, &
12  pemis,ptsrad,ptsurf, &
13  kyear, kmonth,kday, ptime, &
14  hatmfile,hatmfiletype, &
15  htest )
16 ! #############################################################
17 !
18 !!**** *INIT_NATURE_n* - routine to choose initialization of vegetation scheme
19 !!
20 !! PURPOSE
21 !! -------
22 !!
23 !!** METHOD
24 !! ------
25 !!
26 !! EXTERNAL
27 !! --------
28 !!
29 !!
30 !! IMPLICIT ARGUMENTS
31 !! ------------------
32 !!
33 !! REFERENCE
34 !! ---------
35 !!
36 !!
37 !! AUTHOR
38 !! ------
39 !! V. Masson *Meteo France*
40 !!
41 !! MODIFICATIONS
42 !! -------------
43 !! Original 27/09/96
44 !! V.Masson 18/08/97 call to fmread directly with dates and strings
45 !! V.Masson 15/03/99 new PGD treatment with COVER types
46 ! F.Solmon 06/00 adaptation for patch approach
47 !! B. Decharme 04/2013 new coupling variables
48 !-------------------------------------------------------------------------------
49 !
50 !* 0. DECLARATIONS
51 ! ------------
52 !
53 !
54 USE modd_surfex_n, ONLY : isba_model_t
55 !
59 USE modd_surf_atm_n, ONLY : surf_atm_t
60 USE modd_data_tsz0_n, ONLY : data_tsz0_t
62 USE modd_dst_n, ONLY : dst_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 !
69 !
70 USE yomhook ,ONLY : lhook, dr_hook
71 USE parkind1 ,ONLY : jprb
72 !
73 USE modi_init_ideal_flux
74 !
75 USE modi_init_isba_n
76 !
77 IMPLICIT NONE
78 !
79 !* 0.1 Declarations of arguments
80 ! -------------------------
81 !
82 !
83 !
84 TYPE(isba_model_t), INTENT(INOUT) :: im
85 TYPE(data_cover_t), INTENT(INOUT) :: dtco
86 TYPE(diag_surf_atm_t), INTENT(INOUT) :: dgu
87 TYPE(surf_atm_grid_t), INTENT(INOUT) :: ug
88 TYPE(surf_atm_t), INTENT(INOUT) :: u
89 TYPE(data_tsz0_t), INTENT(INOUT) :: dtz
90 TYPE(diag_ideal_t), INTENT(INOUT) :: dgl
91 TYPE(dst_t), INTENT(INOUT) :: dst
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 !
118  CHARACTER(LEN=28), INTENT(IN) :: hatmfile ! atmospheric file name
119  CHARACTER(LEN=6), INTENT(IN) :: hatmfiletype! atmospheric file type
120  CHARACTER(LEN=2), INTENT(IN) :: htest ! must be equal to 'OK'
121 REAL(KIND=JPRB) :: zhook_handle
122 !
123 !
124 !* 0.2 Declarations of local variables
125 ! -------------------------------
126 !
127 !-------------------------------------------------------------------------------
128 !
129 !* 2. Selection of surface scheme
130 ! ---------------------------
131 !
132 IF (lhook) CALL dr_hook('INIT_NATURE_N',0,zhook_handle)
133 IF (u%CNATURE=='NONE ') THEN
134  pdir_alb=0.
135  psca_alb=0.
136  pemis =1.
137  ptsrad =xtt
138  ptsurf =xtt
139 ELSE IF (u%CNATURE=='FLUX ') THEN
140  CALL init_ideal_flux(dgl, dgu%LREAD_BUDGETC, &
141  hprogram,hinit,ki,ksv,ksw,hsv,pco2,prhoa, &
142  pzenith,pazim,psw_bands,pdir_alb,psca_alb, &
143  pemis,ptsrad,ptsurf,'OK' )
144 ELSE IF (u%CNATURE=='ISBA ' .OR. u%CNATURE=='TSZ0') THEN
145  CALL init_isba_n(dtco, dgu, ug, u, im, dtz, dst, slt, sv, &
146  hprogram,hinit,oland_use,ki,ksv,ksw,hsv,pco2,prhoa, &
147  pzenith,pazim,psw_bands,pdir_alb,psca_alb, &
148  pemis,ptsrad,ptsurf, &
149  kyear,kmonth,kday,ptime,hatmfile,hatmfiletype,&
150  'OK' )
151 END IF
152 IF (lhook) CALL dr_hook('INIT_NATURE_N',1,zhook_handle)
153 !
154 !-------------------------------------------------------------------------------
155 !
156 END SUBROUTINE init_nature_n
subroutine init_ideal_flux(DGL, OREAD_BUDGETC, HPROGRAM, HINIT, KI, KSV, KSW, HSV, PCO2, PRHOA, PZENITH, PAZIM, PSW_BANDS, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD, PTSURF, HTEST)
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 init_nature_n(DTCO, DGU, UG, U, IM, DTZ, DGL, 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_naturen.F90:6