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