SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
pgd_dummy.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 pgd_dummy (DTCO, DUU, UG, U, USS, &
7  hprogram)
8 ! ##############################################################
9 !
10 !!**** *PGD_DUMMY* monitor for averaging and interpolations of physiographic fields
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 !! V. Masson Meteo-France
32 !!
33 !! MODIFICATION
34 !! ------------
35 !!
36 !! Original 10/12/97
37 !!
38 !----------------------------------------------------------------------------
39 !
40 !* 0. DECLARATION
41 ! -----------
42 !
43 !
44 !
48 USE modd_surf_atm_n, ONLY : surf_atm_t
50 !
51 USE modd_pgd_grid, ONLY : nl
52 USE modd_pgdwork, ONLY : catype
53 USE modd_surf_par, ONLY : xundef
54 !
55 USE modi_get_luout
56 USE modi_pgd_field
57 USE modi_read_nam_pgd_dummy
58 !
59 !
60 USE yomhook ,ONLY : lhook, dr_hook
61 USE parkind1 ,ONLY : jprb
62 !
63 IMPLICIT NONE
64 !
65 !* 0.1 Declaration of arguments
66 ! ------------------------
67 !
68 !
69 TYPE(data_cover_t), INTENT(INOUT) :: dtco
70 TYPE(dummy_surf_fields_t), INTENT(INOUT) :: duu
71 TYPE(surf_atm_grid_t), INTENT(INOUT) :: ug
72 TYPE(surf_atm_t), INTENT(INOUT) :: u
73 TYPE(surf_atm_sso_t), INTENT(INOUT) :: uss
74 !
75  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! Type of program
76 !
77 !
78 !* 0.2 Declaration of local variables
79 ! ------------------------------
80 !
81 INTEGER :: iluout ! output listing logical unit
82 INTEGER :: jnbr ! loop counter on dummy fields
83 !
84 !* 0.3 Declaration of namelists
85 ! ------------------------
86 !
87 INTEGER :: idummy_nbr
88  CHARACTER(LEN=20), DIMENSION(1000) :: ydummy_name
89  CHARACTER(LEN=3), DIMENSION(1000) :: ydummy_area
90  CHARACTER(LEN=3), DIMENSION(1000) :: cdummy_atype ! avg type for dummy pgd fields
91 ! ! 'ARI' , 'INV'
92  CHARACTER(LEN=28), DIMENSION(1000) :: cdummy_file ! data files
93  CHARACTER(LEN=6), DIMENSION(1000) :: cdummy_filetype ! type of these files
94 REAL(KIND=JPRB) :: zhook_handle
95 !
96 !-------------------------------------------------------------------------------
97 !
98 !* 1. Initializations of defaults
99 ! ---------------------------
100 !
101 IF (lhook) CALL dr_hook('PGD_DUMMY',0,zhook_handle)
102  CALL get_luout(hprogram,iluout)
103 !
104 !-------------------------------------------------------------------------------
105 !
106 !* 2. Reading of namelist
107 ! -------------------
108 !
109  CALL read_nam_pgd_dummy(hprogram, idummy_nbr, ydummy_name, ydummy_area, &
110  cdummy_atype, cdummy_file, cdummy_filetype )
111 !
112 duu%NDUMMY_NBR = idummy_nbr
113 ALLOCATE(duu%CDUMMY_NAME(duu%NDUMMY_NBR))
114 ALLOCATE(duu%CDUMMY_AREA(duu%NDUMMY_NBR))
115 duu%CDUMMY_NAME(:) = ydummy_name(1:duu%NDUMMY_NBR)
116 duu%CDUMMY_AREA(:) = ydummy_area(1:duu%NDUMMY_NBR)
117 !
118 !-------------------------------------------------------------------------------
119 !
120 !* 3. Allocation
121 ! ----------
122 !
123 ALLOCATE(duu%XDUMMY_FIELDS(nl,duu%NDUMMY_NBR))
124 !
125 !-------------------------------------------------------------------------------
126 !
127 !* 4. Computations
128 ! ------------
129 !
130 DO jnbr=1,duu%NDUMMY_NBR
131  catype = cdummy_atype(jnbr)
132  CALL pgd_field(dtco, ug, u, uss, &
133  hprogram,duu%CDUMMY_NAME(jnbr),duu%CDUMMY_AREA(jnbr),cdummy_file(jnbr), &
134  cdummy_filetype(jnbr),xundef,duu%XDUMMY_FIELDS(:,jnbr) )
135  catype = 'ARI'
136 END DO
137 IF (lhook) CALL dr_hook('PGD_DUMMY',1,zhook_handle)
138 !
139 !-------------------------------------------------------------------------------
140 !
141 END SUBROUTINE pgd_dummy
subroutine pgd_field(DTCO, UG, U, USS, HPROGRAM, HFIELD, HAREA, HFILE, HFILETYPE, PUNIF, PFIELD, OPRESENT)
Definition: pgd_field.F90:6
subroutine read_nam_pgd_dummy(HPROGRAM, KDUMMY_NBR, HDUMMY_NAME, HDUMMY_AREA, HDUMMY_ATYPE, HDUMMY_FILE, HDUMMY_FILETYPE)
subroutine pgd_dummy(DTCO, DUU, UG, U, USS, HPROGRAM)
Definition: pgd_dummy.F90:6
subroutine get_luout(HPROGRAM, KLUOUT)
Definition: get_luout.F90:6