SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
read_flaken.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 read_flake_n (DTCO, U, F, &
7  hprogram)
8 ! #########################################
9 !
10 !!**** *READ_FLAKE_n* - reads FLAKE variables
11 !!
12 !!
13 !! PURPOSE
14 !! -------
15 !!
16 !!** METHOD
17 !! ------
18 !!
19 !! EXTERNAL
20 !! --------
21 !!
22 !!
23 !! IMPLICIT ARGUMENTS
24 !! ------------------
25 !!
26 !! REFERENCE
27 !! ---------
28 !!
29 !!
30 !! AUTHOR
31 !! ------
32 !! V. Masson *Meteo France*
33 !!
34 !! MODIFICATIONS
35 !! -------------
36 !! Original 01/2003
37 !-------------------------------------------------------------------------------
38 !
39 !* 0. DECLARATIONS
40 ! ------------
41 !
42 !
43 !
44 
45 
46 !
47 !
49 USE modd_flake_n, ONLY : flake_t
50 USE modd_surf_atm_n, ONLY : surf_atm_t
51 !
53 !
54 !
55 USE yomhook ,ONLY : lhook, dr_hook
56 USE parkind1 ,ONLY : jprb
57 !
58 USE modi_get_type_dim_n
59 !
60 IMPLICIT NONE
61 !
62 !* 0.1 Declarations of arguments
63 ! -------------------------
64 !
65 !
66 TYPE(data_cover_t), INTENT(INOUT) :: dtco
67 TYPE(flake_t), INTENT(INOUT) :: f
68 TYPE(surf_atm_t), INTENT(INOUT) :: u
69 !
70  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! calling program
71 !
72 !
73 !* 0.2 Declarations of local variables
74 ! -------------------------------
75 INTEGER :: ilu ! 1D physical dimension
76 !
77 INTEGER :: iresp ! Error code after redding
78 !
79  CHARACTER(LEN=12) :: yrecfm ! Name of the article to be read
80 REAL(KIND=JPRB) :: zhook_handle
81 !
82 !-------------------------------------------------------------------------------
83 !
84 !* 1D physical dimension
85 !
86 IF (lhook) CALL dr_hook('READ_FLAKE_N',0,zhook_handle)
87 yrecfm='SIZE_WATER'
88  CALL get_type_dim_n(dtco, u, &
89  'WATER ',ilu)
90 !
91 !* 3. Prognostic fields:
92 ! -----------------
93 !
94 !* water temperature
95 !
96 ALLOCATE(f%XTS(ilu))
97 !
98 ALLOCATE(f%XT_SNOW (ilu))
99 ALLOCATE(f%XT_ICE (ilu))
100 ALLOCATE(f%XT_MNW (ilu))
101 ALLOCATE(f%XT_WML (ilu))
102 ALLOCATE(f%XT_BOT (ilu))
103 ALLOCATE(f%XT_B1 (ilu))
104 ALLOCATE(f%XCT (ilu))
105 ALLOCATE(f%XH_SNOW (ilu))
106 ALLOCATE(f%XH_ICE (ilu))
107 ALLOCATE(f%XH_ML (ilu))
108 ALLOCATE(f%XH_B1 (ilu))
109 
110 yrecfm='TS_WATER'
111  CALL read_surf(&
112  hprogram,yrecfm,f%XTS(:),iresp)
113 yrecfm='T_SNOW'
114  CALL read_surf(&
115  hprogram,yrecfm,f%XT_SNOW(:),iresp)
116 yrecfm='T_ICE'
117  CALL read_surf(&
118  hprogram,yrecfm,f%XT_ICE(:),iresp)
119 yrecfm='T_MNW'
120  CALL read_surf(&
121  hprogram,yrecfm,f%XT_MNW(:),iresp)
122 yrecfm='T_WML'
123  CALL read_surf(&
124  hprogram,yrecfm,f%XT_WML(:),iresp)
125 yrecfm='T_BOT'
126  CALL read_surf(&
127  hprogram,yrecfm,f%XT_BOT(:),iresp)
128 yrecfm='T_B1'
129  CALL read_surf(&
130  hprogram,yrecfm,f%XT_B1(:),iresp)
131 yrecfm='CT'
132  CALL read_surf(&
133  hprogram,yrecfm,f%XCT(:),iresp)
134 yrecfm='H_SNOW'
135  CALL read_surf(&
136  hprogram,yrecfm,f%XH_SNOW(:),iresp)
137 yrecfm='H_ICE'
138  CALL read_surf(&
139  hprogram,yrecfm,f%XH_ICE(:),iresp)
140 yrecfm='H_ML'
141  CALL read_surf(&
142  hprogram,yrecfm,f%XH_ML(:),iresp)
143 yrecfm='H_B1'
144  CALL read_surf(&
145  hprogram,yrecfm,f%XH_B1(:),iresp)
146 !
147 !-------------------------------------------------------------------------------
148 !
149 !* 4. Semi-prognostic fields:
150 ! ----------------------
151 !
152 !* roughness length
153 !
154  ALLOCATE(f%XZ0(ilu))
155  yrecfm='Z0WATER'
156  f%XZ0(:) = 0.001
157  CALL read_surf(&
158  hprogram,yrecfm,f%XZ0(:),iresp)
159 !
160 !
161 !* friction velocity
162 !
163  ALLOCATE(f%XUSTAR(ilu))
164  yrecfm='USTAR_WATER'
165  f%XUSTAR(:) = 0.
166  CALL read_surf(&
167  hprogram,yrecfm,f%XUSTAR(:),iresp)
168 IF (lhook) CALL dr_hook('READ_FLAKE_N',1,zhook_handle)
169 !
170 !-------------------------------------------------------------------------------
171 
172 !
173 END SUBROUTINE read_flake_n
subroutine get_type_dim_n(DTCO, U, HTYPE, KDIM)
subroutine read_flake_n(DTCO, U, F, HPROGRAM)
Definition: read_flaken.F90:6