SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
ini_var_from_data_0d.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 ini_var_from_data_0d (DTCO, DGU, UG, U, USS, &
7  hprogram, hatype, hname, htype, hfnam, &
8  hftyp, punif, pfield, opresent)
9 ! ##############################################################
10 !
11 !!
12 !! PURPOSE
13 !! -------
14 !!
15 !! METHOD
16 !! ------
17 !!
18 !
19 !! EXTERNAL
20 !! --------
21 !!
22 !! IMPLICIT ARGUMENTS
23 !! ------------------
24 !!
25 !! REFERENCE
26 !! ---------
27 !!
28 !! AUTHOR
29 !! ------
30 !!
31 !! S. Faroux Meteo-France
32 !!
33 !! MODIFICATION
34 !! ------------
35 !!
36 !! Original 16/11/10
37 !!
38 !----------------------------------------------------------------------------
39 !
40 !* 0. DECLARATION
41 ! -----------
42 !
43 !
44 !
48 USE modd_surf_atm_n, ONLY : surf_atm_t
50 !
51 USE modd_surf_par, ONLY : xundef
52 !
53 USE modd_pgdwork, ONLY : catype
54 !
55 USE modi_pgd_field
56 USE modi_read_from_surfex_file
57 !
58 USE yomhook ,ONLY : lhook, dr_hook
59 USE parkind1 ,ONLY : jprb
60 !
61 IMPLICIT NONE
62 !
63 !* 0.1 Declaration of arguments
64 ! ------------------------
65 !
66 !
67 TYPE(data_cover_t), INTENT(INOUT) :: dtco
68 TYPE(diag_surf_atm_t), INTENT(INOUT) :: dgu
69 TYPE(surf_atm_grid_t), INTENT(INOUT) :: ug
70 TYPE(surf_atm_t), INTENT(INOUT) :: u
71 TYPE(surf_atm_sso_t), INTENT(INOUT) :: uss
72 !
73 !
74  CHARACTER(LEN=6), INTENT(IN) :: hprogram
75  CHARACTER(LEN=3), INTENT(IN) :: hatype
76  CHARACTER(LEN=*), INTENT(IN) :: hname
77  CHARACTER(LEN=3), INTENT(IN) :: htype
78  CHARACTER(LEN=28), INTENT(IN) :: hfnam
79  CHARACTER(LEN=6), INTENT(IN) :: hftyp
80 REAL, INTENT(IN) :: punif
81 REAL, DIMENSION(:), INTENT(OUT) :: pfield
82 LOGICAL, INTENT(OUT) :: opresent
83 !
84 !
85 !* 0.2 Declaration of local variables
86 ! ------------------------------
87 !
88 REAL(KIND=JPRB) :: zhook_handle
89 !
90 
91 !-------------------------------------------------------------------------------
92 !
93 !* 1. Initializations
94 ! ---------------
95 !
96 IF (lhook) CALL dr_hook('INI_VAR_FROM_DATA_0D',0,zhook_handle)
97 !
98 pfield(:)=xundef
99 opresent=.false.
100 !
101 IF (hftyp.EQ.'FA ' .OR. hftyp.EQ.'ASCII ' .OR. hftyp.EQ.'LFI ') THEN
102 
103  opresent=.true.
104  SELECT CASE (htype)
105  CASE ('LAN')
106  CALL read_from_surfex_file(dtco, dgu, u, &
107  hftyp,hfnam,'SURF ',' ',pfield)
108  CASE ('TWN')
109  CALL read_from_surfex_file(dtco, dgu, u, &
110  hftyp,hfnam,'TOWN ',' ',pfield)
111  CASE ('NAT')
112  CALL read_from_surfex_file(dtco, dgu, u, &
113  hftyp,hfnam,'NATURE',' ',pfield)
114  CASE ('SEA')
115  CALL read_from_surfex_file(dtco, dgu, u, &
116  hftyp,hfnam,'SEA ',' ',pfield)
117  CASE ('WAT')
118  CALL read_from_surfex_file(dtco, dgu, u, &
119  hftyp,hfnam,'WATER ',' ',pfield)
120  END SELECT
121 
122 ELSE
123 
124  catype = hatype
125  CALL pgd_field(dtco, ug, u, uss, &
126  hprogram,hname,htype,hfnam,hftyp,punif,pfield(:),opresent=opresent)
127 
128 ENDIF
129 !
130 IF (lhook) CALL dr_hook('INI_VAR_FROM_DATA_0D',1,zhook_handle)
131 !
132 !-------------------------------------------------------------------------------
133 !
134 END SUBROUTINE ini_var_from_data_0d
135 
subroutine pgd_field(DTCO, UG, U, USS, HPROGRAM, HFIELD, HAREA, HFILE, HFILETYPE, PUNIF, PFIELD, OPRESENT)
Definition: pgd_field.F90:6
subroutine ini_var_from_data_0d(DTCO, DGU, UG, U, USS, HPROGRAM, HATYPE, HNAME, HTYPE, HFNAM, HFTYP, PUNIF, PFIELD, OPRESENT)
subroutine read_from_surfex_file(DTCO, DGU, U, HFTYP, HFNAM, HMASK, HSCHEME, PFIELD, HNAM)