SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
prep_surf_atm.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 prep_surf_atm (YSC, &
7  hprogram,hatmfile,hatmfiletype,hpgdfile,hpgdfiletype)
8 ! #################################################################################
9 !
10 !!**** *PREP_SURF_ATM* - driver for surface fields preparation
11 !!
12 !! PURPOSE
13 !! -------
14 !
15 !!** METHOD
16 !! ------
17 !!
18 !! REFERENCE
19 !! ---------
20 !!
21 !!
22 !! AUTHOR
23 !! ------
24 !! V. Masson
25 !!
26 !! MODIFICATIONS
27 !! -------------
28 !! Original 01/2004
29 !! P. Le Moigne 10/2005, Phasage Arome
30 !!------------------------------------------------------------------
31 !
32 
33 !
34 USE modd_surfex_n, ONLY : surfex_t
35 !
36 USE modi_prep_nature
37 USE modi_prep_sea
38 USE modi_prep_inland_water
39 USE modi_prep_town
40 !
42 !
43 USE yomhook ,ONLY : lhook, dr_hook
44 USE parkind1 ,ONLY : jprb
45 !
46 USE modi_surf_version
47 !
48 IMPLICIT NONE
49 !
50 !* 0.1 declarations of arguments
51 !
52 TYPE(surfex_t), INTENT(INOUT) :: ysc
53 !
54  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! program calling surf. schemes
55  CHARACTER(LEN=28), INTENT(IN) :: hatmfile ! name of the Atmospheric file
56  CHARACTER(LEN=6), INTENT(IN) :: hatmfiletype! type of the Atmospheric file
57  CHARACTER(LEN=28), INTENT(IN) :: hpgdfile ! name of the Atmospheric file
58  CHARACTER(LEN=6), INTENT(IN) :: hpgdfiletype! type of the Atmospheric file
59 !
60 !* 0.2 declarations of local variables
61  CHARACTER(LEN=28) :: yatmfile ! name of the Atmospheric file
62  CHARACTER(LEN=6) :: yatmfiletype! type of the Atmospheric file
63  CHARACTER(LEN=28) :: ypgdfile ! name of the Atmospheric file
64  CHARACTER(LEN=6) :: ypgdfiletype! type of the Atmospheric file
65 REAL(KIND=JPRB) :: zhook_handle
66 
67 !
68 !-------------------------------------------------------------------------------------
69 IF (lhook) CALL dr_hook('PREP_SURF_ATM',0,zhook_handle)
70  CALL surf_version
71 !-------------------------------------------------------------------------------------
72 !
73 IF ( len_trim(hatmfile)>0 ) THEN
74  yatmfile=hatmfile
75 ELSE
76  yatmfile=' '
77 ENDIF
78 !
79 IF ( len_trim(hpgdfile)>0 ) THEN
80  ypgdfile=hpgdfile
81 ELSE
82  ypgdfile=' '
83 ENDIF
84 !
85 IF ( len_trim(hatmfiletype)>0 ) THEN
86  yatmfiletype=hatmfiletype
87 ELSE
88  yatmfiletype=' '
89 ENDIF
90 !
91 IF ( len_trim(hpgdfiletype)>0 ) THEN
92  ypgdfiletype=hpgdfiletype
93 ELSE
94  ypgdfiletype=' '
95 ENDIF
96 !
97 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
98 ! SEA Tile calculations:
99 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
100 !
101 IF(ysc%U%NDIM_SEA>0) CALL prep_sea(ysc%DTCO, ysc%UG, ysc%U, ysc%SM, &
102  hprogram,yatmfile,yatmfiletype,ypgdfile,ypgdfiletype)
103 !
104 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
105 ! INLAND WATER Tile calculations:
106 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
107 !
108 IF(ysc%U%NDIM_WATER>0) CALL prep_inland_water(ysc%DTCO, ysc%USS, &
109  ysc%UG, ysc%U, ysc%FM, ysc%WM, &
110  hprogram,yatmfile,yatmfiletype,ypgdfile,ypgdfiletype)
111 !
112 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
113 ! NATURAL SURFACE Tile calculations:
114 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
115 !
116 IF(ysc%U%NDIM_NATURE>0) CALL prep_nature(ysc%DTCO, ysc%IM%ICP, ysc%IM%IG, &
117  ysc%IM%I, ysc%UG, ysc%U, ysc%USS, &
118  hprogram,yatmfile,yatmfiletype,ypgdfile,ypgdfiletype)
119 !
120 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
121 ! URBAN Tile calculations:
122 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
123 !
124 IF(ysc%U%NDIM_TOWN>0) CALL prep_town(ysc%DTCO, ysc%UG, ysc%U, ysc%USS, &
125  ysc%IM%IG, ysc%IM%I, ysc%TM, ysc%GDM, ysc%GRM, &
126  hprogram,yatmfile,yatmfiletype,ypgdfile,ypgdfiletype)
127 !
128  CALL clear_grib_index
129 !
130 IF (lhook) CALL dr_hook('PREP_SURF_ATM',1,zhook_handle)
131 !
132 !-------------------------------------------------------------------------------------
133 !
134 END SUBROUTINE prep_surf_atm
subroutine clear_grib_index
subroutine prep_town(DTCO, UG, U, USS, IG, I, TM, GDM, GRM, HPROGRAM, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE)
Definition: prep_town.F90:6
subroutine prep_nature(DTCO, ICP, IG, I, UG, U, USS, HPROGRAM, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE)
Definition: prep_nature.F90:6
subroutine prep_surf_atm(YSC, HPROGRAM, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE)
subroutine surf_version
Definition: surf_version.F90:6
subroutine prep_inland_water(DTCO, USS, UG, U, FM, WM, HPROGRAM, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE)
subroutine prep_sea(DTCO, UG, U, SM, HPROGRAM, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE)
Definition: prep_sea.F90:6