SURFEX v8.1
General documentation of Surfex
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, UG, FG, F, HPROGRAM)
7 ! #########################################
8 !
9 !!**** *READ_PGD_FLAKE_n* - read FLAKE physiographic fields
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 !
45 USE modd_sfx_grid_n, ONLY : grid_t
46 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_pack_init
60 !
61 !
62 USE yomhook ,ONLY : lhook, dr_hook
63 USE parkind1 ,ONLY : jprb
64 !
65 USE modi_get_type_dim_n
66 !
67 IMPLICIT NONE
68 !
69 !* 0.1 Declarations of arguments
70 ! -------------------------
71 !
72 !
73 TYPE(data_cover_t), INTENT(INOUT) :: DTCO
74 TYPE(grid_t), INTENT(INOUT) :: FG
75 TYPE(flake_t), INTENT(INOUT) :: F
76 TYPE(surf_atm_t), INTENT(INOUT) :: U
77 TYPE(surf_atm_grid_t), INTENT(INOUT) :: UG
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, 'WATER ',fg%NDIM)
96 !
97 !
98 !* 2. Physiographic data fields:
99 ! -------------------------
100 !
101 !* cover classes
102 !
103 ALLOCATE(f%LCOVER(jpcover))
104 ALLOCATE(f%XZS(fg%NDIM))
105 ALLOCATE(fg%XLAT (fg%NDIM))
106 ALLOCATE(fg%XLON (fg%NDIM))
107 !
108 ALLOCATE(fg%XMESH_SIZE (fg%NDIM))
109  CALL pack_init(dtco, u, ug,hprogram,'WATER ',fg, f%LCOVER,f%XCOVER,f%XZS)
110 !
111 !* FLake parameters
112 !
113 ALLOCATE(f%XWATER_DEPTH (fg%NDIM))
114 yrecfm='WATER_DEPTH'
115  CALL read_surf(hprogram,yrecfm,f%XWATER_DEPTH(:),iresp)
116 !
117 ALLOCATE(f%XWATER_FETCH (fg%NDIM))
118 yrecfm='WATER_FETCH'
119  CALL read_surf(hprogram,yrecfm,f%XWATER_FETCH(:),iresp)
120 !
121 ALLOCATE(f%XT_BS (fg%NDIM))
122 yrecfm='T_BS'
123  CALL read_surf(hprogram,yrecfm,f%XT_BS(:),iresp)
124 !
125 ALLOCATE(f%XDEPTH_BS (fg%NDIM))
126 yrecfm='DEPTH_BS'
127  CALL read_surf(hprogram,yrecfm,f%XDEPTH_BS(:),iresp)
128 !
129 ALLOCATE(f%XEXTCOEF_WATER (fg%NDIM))
130 yrecfm='EXTCOEF_WAT'
131  CALL read_surf(hprogram,yrecfm,f%XEXTCOEF_WATER(:),iresp)
132 !
133 IF (lhook) CALL dr_hook('READ_PGD_FLAKE_N',1,zhook_handle)
134 !-------------------------------------------------------------------------------
135 !
136 END SUBROUTINE read_pgd_flake_n
subroutine get_type_dim_n(DTCO, U, HTYPE, KDIM)
subroutine pack_init(DTCO, U, UG, HPROGRAM, HSURF, G, OCOVER, PCOV
Definition: pack_init.F90:7
subroutine read_surf_cov(HPROGRAM, HREC, PFIELD, OFLAG, KRESP, HCOMMENT, HDIR)
integer, parameter jprb
Definition: parkind1.F90:32
logical lhook
Definition: yomhook.F90:15
subroutine read_pgd_flake_n(DTCO, U, UG, FG, F, HPROGRAM)