SURFEX v8.1
General documentation of Surfex
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, HPROGRAM)
7 ! ##############################################################
8 !
9 !!**** *PGD_DUMMY* monitor for averaging and interpolations of physiographic fields
10 !!
11 !! PURPOSE
12 !! -------
13 !!
14 !! METHOD
15 !! ------
16 !!
17 !
18 !! EXTERNAL
19 !! --------
20 !!
21 !! IMPLICIT ARGUMENTS
22 !! ------------------
23 !!
24 !! REFERENCE
25 !! ---------
26 !!
27 !! AUTHOR
28 !! ------
29 !!
30 !! V. Masson Meteo-France
31 !!
32 !! MODIFICATION
33 !! ------------
34 !!
35 !! Original 10/12/97
36 !!
37 !----------------------------------------------------------------------------
38 !
39 !* 0. DECLARATION
40 ! -----------
41 !
42 !
43 !
47 USE modd_surf_atm_n, ONLY : surf_atm_t
48 USE modd_sso_n, ONLY : sso_t
49 !
50 USE modd_pgd_grid, ONLY : nl
51 USE modd_pgdwork, ONLY : catype
52 USE modd_surf_par, ONLY : xundef
53 !
54 USE modi_get_luout
56 USE modi_read_nam_pgd_dummy
57 !
58 !
59 USE yomhook ,ONLY : lhook, dr_hook
60 USE parkind1 ,ONLY : jprb
61 !
62 IMPLICIT NONE
63 !
64 !* 0.1 Declaration of arguments
65 ! ------------------------
66 !
67 !
68 TYPE(data_cover_t), INTENT(INOUT) :: DTCO
69 TYPE(dummy_surf_fields_t), INTENT(INOUT) :: DUU
70 TYPE(surf_atm_grid_t), INTENT(INOUT) :: UG
71 TYPE(surf_atm_t), INTENT(INOUT) :: U
72 TYPE(sso_t), INTENT(INOUT) :: USS
73 !
74  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! Type of program
75 !
76 !
77 !* 0.2 Declaration of local variables
78 ! ------------------------------
79 !
80 INTEGER :: ILUOUT ! output listing logical unit
81 INTEGER :: JNBR ! loop counter on dummy fields
82 !
83 !* 0.3 Declaration of namelists
84 ! ------------------------
85 !
86 INTEGER :: IDUMMY_NBR
87  CHARACTER(LEN=20), DIMENSION(1000) :: YDUMMY_NAME
88  CHARACTER(LEN=3), DIMENSION(1000) :: YDUMMY_AREA
89  CHARACTER(LEN=3), DIMENSION(1000) :: CDUMMY_ATYPE ! avg type for dummy pgd fields
90 ! ! 'ARI' , 'INV'
91  CHARACTER(LEN=28), DIMENSION(1000) :: CDUMMY_FILE ! data files
92  CHARACTER(LEN=6), DIMENSION(1000) :: CDUMMY_FILETYPE ! type of these files
93 REAL(KIND=JPRB) :: ZHOOK_HANDLE
94 !
95 !-------------------------------------------------------------------------------
96 !
97 !* 1. Initializations of defaults
98 ! ---------------------------
99 !
100 IF (lhook) CALL dr_hook('PGD_DUMMY',0,zhook_handle)
101  CALL get_luout(hprogram,iluout)
102 !
103 !-------------------------------------------------------------------------------
104 !
105 !* 2. Reading of namelist
106 ! -------------------
107 !
108  CALL read_nam_pgd_dummy(hprogram, idummy_nbr, ydummy_name, ydummy_area, &
109  cdummy_atype, cdummy_file, cdummy_filetype )
110 !
111 duu%NDUMMY_NBR = idummy_nbr
112 ALLOCATE(duu%CDUMMY_NAME(duu%NDUMMY_NBR))
113 ALLOCATE(duu%CDUMMY_AREA(duu%NDUMMY_NBR))
114 duu%CDUMMY_NAME(:) = ydummy_name(1:duu%NDUMMY_NBR)
115 duu%CDUMMY_AREA(:) = ydummy_area(1:duu%NDUMMY_NBR)
116 !
117 !-------------------------------------------------------------------------------
118 !
119 !* 3. Allocation
120 ! ----------
121 !
122 ALLOCATE(duu%XDUMMY_FIELDS(nl,duu%NDUMMY_NBR))
123 !
124 !-------------------------------------------------------------------------------
125 !
126 !* 4. Computations
127 ! ------------
128 !
129 DO jnbr=1,duu%NDUMMY_NBR
130  catype = cdummy_atype(jnbr)
131  CALL pgd_field(dtco, ug, u, uss, &
132  hprogram,duu%CDUMMY_NAME(jnbr),duu%CDUMMY_AREA(jnbr),cdummy_file(jnbr), &
133  cdummy_filetype(jnbr),xundef,duu%XDUMMY_FIELDS(:,jnbr) )
134  catype = 'ARI'
135 END DO
136 IF (lhook) CALL dr_hook('PGD_DUMMY',1,zhook_handle)
137 !
138 !-------------------------------------------------------------------------------
139 !
140 END SUBROUTINE pgd_dummy
character(len=3) catype
subroutine read_nam_pgd_dummy(HPROGRAM, KDUMMY_NBR, HDUMMY_NAME, H
subroutine pgd_dummy(DTCO, DUU, UG, U, USS, HPROGRAM)
Definition: pgd_dummy.F90:7
real, parameter xundef
integer, parameter jprb
Definition: parkind1.F90:32
subroutine get_luout(HPROGRAM, KLUOUT)
Definition: get_luout.F90:7
logical lhook
Definition: yomhook.F90:15