SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
ol_read_atm_conf.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 ol_read_atm_conf (YSC, &
7  hsurf_filetype, hforcing_filetype, &
8  pduration, &
9  ptstep_forc, kni, kyear,kmonth, &
10  kday, ptime, plat, plon, &
11  pzs, pzref, puref )
12 !
13 !==================================================================
14 !!**** *OL_READ_ATM_CONF* - Initialization routine
15 !!
16 !! PURPOSE
17 !! -------
18 !!
19 !!** METHOD
20 !! ------
21 !!
22 !! EXTERNAL
23 !! --------
24 !!
25 !!
26 !! IMPLICIT ARGUMENTS
27 !! ------------------
28 !!
29 !! REFERENCE
30 !! ---------
31 !!
32 !!
33 !! AUTHOR
34 !! ------
35 !! F. Habets *Meteo France*
36 !!
37 !! MODIFICATIONS
38 !! -------------
39 !! Original 01/2004
40 !! Modified by P. Le Moigne (04/2005): cleaning and checking
41 !! Modified by P. Le Moigne (04/2006): init_io_surf for nature
42 !! with GTMSK to read dimensions.
43 !==================================================================
44 !
45 !
46 USE modd_surfex_n, ONLY : surfex_t
47 !
48 USE modi_ol_read_atm_conf_netcdf
49 USE modi_ol_read_atm_conf_ascii
50 USE modd_surf_conf, ONLY : cprogname
51 !==================================================================
52 !
53 USE yomhook ,ONLY : lhook, dr_hook
54 USE parkind1 ,ONLY : jprb
55 !
56 IMPLICIT NONE
57 !
58 TYPE(surfex_t), INTENT(INOUT) :: ysc
59 !
60  CHARACTER(LEN=6), INTENT(IN) :: hsurf_filetype
61  CHARACTER(LEN=6), INTENT(IN) :: hforcing_filetype
62 INTEGER, INTENT(OUT) :: kni
63 INTEGER, INTENT(OUT) :: kyear, kmonth, kday
64 REAL, INTENT(OUT) :: pduration,ptstep_forc
65 REAL, INTENT(OUT) :: ptime
66 REAL, DIMENSION(:), POINTER :: plat, plon
67 REAL, DIMENSION(:), POINTER :: pzs
68 REAL, DIMENSION(:), POINTER :: pzref, puref
69 REAL(KIND=JPRB) :: zhook_handle
70 !
71 !==================================================================
72 !
73 IF (lhook) CALL dr_hook('OL_READ_ATM_CONF',0,zhook_handle)
74  cprogname = hsurf_filetype
75 !
76 IF (hforcing_filetype == 'NETCDF') THEN
77 !
78  CALL ol_read_atm_conf_netcdf(ysc, &
79  hsurf_filetype, &
80  pduration, &
81  ptstep_forc, kni, kyear,kmonth, &
82  kday, ptime, plat, plon, &
83  pzs, pzref, puref )
84 !
85 ELSE IF (hforcing_filetype == 'ASCII ' .OR. hforcing_filetype == 'BINARY') THEN
86 !
87  CALL ol_read_atm_conf_ascii(ysc, &
88  hsurf_filetype,hforcing_filetype, &
89  pduration, &
90  ptstep_forc, kni, kyear,kmonth, &
91  kday, ptime, plat, plon, &
92  pzs, pzref, puref )
93 !
94 ENDIF
95 IF (lhook) CALL dr_hook('OL_READ_ATM_CONF',1,zhook_handle)
96 !
97 !==================================================================
98 !
99 END SUBROUTINE ol_read_atm_conf
subroutine ol_read_atm_conf_ascii(YSC, HSURF_FILETYPE, HFORCING_FILETYPE, PDURATION, PTSTEP_FORC, KNI, KYEAR, KMONTH, KDAY, PTIME, PLAT, PLON, PZS, PZREF, PUREF)
subroutine ol_read_atm_conf(YSC, HSURF_FILETYPE, HFORCING_FILETYPE, PDURATION, PTSTEP_FORC, KNI, KYEAR, KMONTH, KDAY, PTIME, PLAT, PLON, PZS, PZREF, PUREF)
subroutine ol_read_atm_conf_netcdf(YSC, HSURF_FILETYPE, PDURATION, PTSTEP_FORC, KNI, KYEAR, KMONTH, KDAY, PTIME, PLAT, PLON, PZS, PZREF, PUREF)