SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
read_pgd_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_pgd_flake_n (DTCO, U, FG, F, &
7  hprogram)
8 ! #########################################
9 !
10 !!**** *READ_PGD_FLAKE_n* - read FLAKE physiographic fields
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 !
47 USE modd_flake_n, ONLY : flake_t
48 USE modd_surf_atm_n, ONLY : surf_atm_t
49 !
51 !
52 USE modd_data_cover_par, ONLY : jpcover
53 
54 
55 !
57 !
59 USE modi_read_grid
60 USE modi_read_lcover
61 !
62 !
63 USE yomhook ,ONLY : lhook, dr_hook
64 USE parkind1 ,ONLY : jprb
65 !
66 USE modi_get_type_dim_n
67 !
68 IMPLICIT NONE
69 !
70 !* 0.1 Declarations of arguments
71 ! -------------------------
72 !
73 !
74 TYPE(data_cover_t), INTENT(INOUT) :: dtco
75 TYPE(flake_grid_t), INTENT(INOUT) :: fg
76 TYPE(flake_t), INTENT(INOUT) :: f
77 TYPE(surf_atm_t), INTENT(INOUT) :: u
78 !
79  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! calling program
80 !
81 !* 0.2 Declarations of local variables
82 ! -------------------------------
83 !
84 INTEGER :: iresp ! Error code after redding
85 !
86  CHARACTER(LEN=12) :: yrecfm ! Name of the article to be read
87 !
88 REAL(KIND=JPRB) :: zhook_handle
89 !-------------------------------------------------------------------------------
90 !
91 !* 1D physical dimension
92 !
93 IF (lhook) CALL dr_hook('READ_PGD_FLAKE_N',0,zhook_handle)
94 yrecfm='SIZE_WATER'
95  CALL get_type_dim_n(dtco, u, &
96  'WATER ',fg%NDIM)
97 !
98 !
99 !
100 !* 2. Physiographic data fields:
101 ! -------------------------
102 !
103 !* cover classes
104 !
105 ALLOCATE(f%LCOVER(jpcover))
106  CALL read_lcover(&
107  hprogram,f%LCOVER)
108 !
109 ALLOCATE(f%XCOVER(fg%NDIM,jpcover))
110  CALL read_surf_cov(&
111  hprogram,'COVER',f%XCOVER(:,:),f%LCOVER,iresp)
112 !
113 !* orography
114 !
115 ALLOCATE(f%XZS(fg%NDIM))
116 yrecfm='ZS'
117  CALL read_surf(&
118  hprogram,yrecfm,f%XZS(:),iresp)
119 !
120 !* latitude, longitude
121 !
122 ALLOCATE(fg%XLAT (fg%NDIM))
123 ALLOCATE(fg%XLON (fg%NDIM))
124 ALLOCATE(fg%XMESH_SIZE(fg%NDIM))
125  CALL read_grid(&
126  hprogram,fg%CGRID,fg%XGRID_PAR,fg%XLAT,fg%XLON,fg%XMESH_SIZE,iresp)
127 !
128 !* FLake parameters
129 !
130 ALLOCATE(f%XWATER_DEPTH (fg%NDIM))
131 yrecfm='WATER_DEPTH'
132  CALL read_surf(&
133  hprogram,yrecfm,f%XWATER_DEPTH(:),iresp)
134 !
135 ALLOCATE(f%XWATER_FETCH (fg%NDIM))
136 yrecfm='WATER_FETCH'
137  CALL read_surf(&
138  hprogram,yrecfm,f%XWATER_FETCH(:),iresp)
139 !
140 ALLOCATE(f%XT_BS (fg%NDIM))
141 yrecfm='T_BS'
142  CALL read_surf(&
143  hprogram,yrecfm,f%XT_BS(:),iresp)
144 !
145 ALLOCATE(f%XDEPTH_BS (fg%NDIM))
146 yrecfm='DEPTH_BS'
147  CALL read_surf(&
148  hprogram,yrecfm,f%XDEPTH_BS(:),iresp)
149 !
150 ALLOCATE(f%XEXTCOEF_WATER (fg%NDIM))
151 yrecfm='EXTCOEF_WAT'
152  CALL read_surf(&
153  hprogram,yrecfm,f%XEXTCOEF_WATER(:),iresp)
154 !
155 IF (lhook) CALL dr_hook('READ_PGD_FLAKE_N',1,zhook_handle)
156 !-------------------------------------------------------------------------------
157 !
158 END SUBROUTINE read_pgd_flake_n
subroutine get_type_dim_n(DTCO, U, HTYPE, KDIM)
subroutine read_grid(HPROGRAM, HGRID, PGRID_PAR, PLAT, PLON, PMESH_SIZE, KRESP, PDIR)
Definition: read_grid.F90:6
subroutine, public read_surf_cov(HPROGRAM, HREC, PFIELD, OFLAG, KRESP, HCOMMENT, HDIR)
subroutine read_pgd_flake_n(DTCO, U, FG, F, HPROGRAM)
subroutine read_lcover(HPROGRAM, OCOVER)
Definition: read_lcover.F90:6