SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
init_townn.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_town_n (DTCO, DGU, UG, U, CHI, DTI, I, &
7  tm, gdm, grm, dgl, dst, slt, &
8  hprogram,hinit, &
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_TOWN_n* - chooses initialization routine for towns
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 !
57 USE modd_surf_atm_n, ONLY : surf_atm_t
58 USE modd_ch_isba_n, ONLY : ch_isba_t
59 USE modd_data_isba_n, ONLY : data_isba_t
60 USE modd_isba_n, ONLY : isba_t
61 USE modd_surfex_n, ONLY : teb_model_t
65 USE modd_dst_n, ONLY : dst_t
66 USE modd_slt_n, ONLY : slt_t
67 !
68 USE modd_csts, ONLY : xtt
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_teb_n
76 !
77 IMPLICIT NONE
78 !
79 !* 0.1 Declarations of arguments
80 ! -------------------------
81 !
82 !
83 TYPE(data_cover_t), INTENT(INOUT) :: dtco
84 TYPE(diag_surf_atm_t), INTENT(INOUT) :: dgu
85 TYPE(surf_atm_grid_t), INTENT(INOUT) :: ug
86 TYPE(surf_atm_t), INTENT(INOUT) :: u
87 TYPE(ch_isba_t), INTENT(INOUT) :: chi
88 TYPE(data_isba_t), INTENT(INOUT) :: dti
89 TYPE(isba_t), INTENT(INOUT) :: i
90 TYPE(teb_model_t), INTENT(INOUT) :: tm
91 TYPE(teb_garden_model_t), INTENT(INOUT) :: gdm
92 TYPE(teb_greenroof_model_t), INTENT(INOUT) :: grm
93 TYPE(diag_ideal_t), INTENT(INOUT) :: dgl
94 TYPE(dst_t), INTENT(INOUT) :: dst
95 TYPE(slt_t), INTENT(INOUT) :: slt
96 !
97 !
98  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! program calling surf. schemes
99  CHARACTER(LEN=3), INTENT(IN) :: hinit ! choice of fields to initialize
100 INTEGER, INTENT(IN) :: ki ! number of points
101 INTEGER, INTENT(IN) :: ksv ! number of scalars
102 INTEGER, INTENT(IN) :: ksw ! number of short-wave spectral bands
103  CHARACTER(LEN=6), DIMENSION(KSV), INTENT(IN) :: hsv ! name of all scalar variables
104 REAL, DIMENSION(KI), INTENT(IN) :: pco2 ! CO2 concentration (kg/m3)
105 REAL, DIMENSION(KI), INTENT(IN) :: prhoa ! air density
106 REAL, DIMENSION(KI), INTENT(IN) :: pzenith ! solar zenithal angle
107 REAL, DIMENSION(KI), INTENT(IN) :: pazim ! solar azimuthal angle (rad from N, clock)
108 REAL, DIMENSION(KSW), INTENT(IN) :: psw_bands ! middle wavelength of each band
109 REAL, DIMENSION(KI,KSW),INTENT(OUT) :: pdir_alb ! direct albedo for each band
110 REAL, DIMENSION(KI,KSW),INTENT(OUT) :: psca_alb ! diffuse albedo for each band
111 REAL, DIMENSION(KI), INTENT(OUT) :: pemis ! emissivity
112 REAL, DIMENSION(KI), INTENT(OUT) :: ptsrad ! radiative temperature
113 REAL, DIMENSION(KI), INTENT(OUT) :: ptsurf ! surface effective temperature (K)
114 INTEGER, INTENT(IN) :: kyear ! current year (UTC)
115 INTEGER, INTENT(IN) :: kmonth ! current month (UTC)
116 INTEGER, INTENT(IN) :: kday ! current day (UTC)
117 REAL, INTENT(IN) :: ptime ! current time since
118  ! midnight (UTC, s)
119 !
120  CHARACTER(LEN=28), INTENT(IN) :: hatmfile ! atmospheric file name
121  CHARACTER(LEN=6), INTENT(IN) :: hatmfiletype! atmospheric file type
122  CHARACTER(LEN=2), INTENT(IN) :: htest ! must be equal to 'OK'
123 REAL(KIND=JPRB) :: zhook_handle
124 !
125 !
126 !
127 !* 0.2 Declarations of local variables
128 ! -------------------------------
129 !
130 !-------------------------------------------------------------------------------
131 !
132 !* 2. Selection of surface scheme
133 ! ---------------------------
134 !
135 IF (lhook) CALL dr_hook('INIT_TOWN_N',0,zhook_handle)
136 IF (u%CTOWN=='NONE ') THEN
137  pdir_alb=0.
138  psca_alb=0.
139  pemis =1.
140  ptsrad =xtt
141  ptsurf =xtt
142 ELSE IF (u%CTOWN=='FLUX ') THEN
143  CALL init_ideal_flux(dgl, dgu%LREAD_BUDGETC, &
144  hprogram,hinit,ki,ksv,ksw,hsv,pco2,prhoa, &
145  pzenith,pazim,psw_bands,pdir_alb,psca_alb, &
146  pemis,ptsrad,ptsurf,'OK' )
147 ELSE IF (u%CTOWN=='TEB ') THEN
148  CALL init_teb_n(dtco, dgu, ug, u, chi, dti, i, &
149  tm, gdm, grm, dst, slt, &
150  hprogram,hinit, &
151  ki,ksv,ksw,hsv,pco2,prhoa, &
152  pzenith,pazim,psw_bands,pdir_alb,psca_alb, &
153  pemis,ptsrad,ptsurf, &
154  kyear,kmonth,kday,ptime,hatmfile,hatmfiletype,&
155  'OK' )
156 END IF
157 IF (lhook) CALL dr_hook('INIT_TOWN_N',1,zhook_handle)
158 !
159 !-------------------------------------------------------------------------------
160 END SUBROUTINE init_town_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_town_n(DTCO, DGU, UG, U, CHI, DTI, I, TM, GDM, GRM, DGL, DST, SLT, HPROGRAM, HINIT, 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_townn.F90:6
subroutine init_teb_n(DTCO, DGU, UG, U, CHI, DTI, I, TM, GDM, GRM, DST, SLT, HPROGRAM, HINIT, 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_tebn.F90:6