SURFEX v8.1
General documentation of Surfex
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 (DTCO, U, HGRID, HSURF_FILETYPE, HFORCING_FILETYPE, ODELAYEDSTART_NC, &
7  KDATESTOP, PDURATION, PTSTEP_FORC, KNI, KYEAR, KMONTH, KDAY, &
8  PTIME, PLAT, PLON, PZS, PZREF, PUREF, KTIMESTARTINDEX )
9 !
10 !==================================================================
11 !!**** *OL_READ_ATM_CONF* - Initialization routine
12 !!
13 !! PURPOSE
14 !! -------
15 !!
16 !!** METHOD
17 !! ------
18 !!
19 !! EXTERNAL
20 !! --------
21 !!
22 !!
23 !! IMPLICIT ARGUMENTS
24 !! ------------------
25 !!
26 !! REFERENCE
27 !! ---------
28 !!
29 !!
30 !! AUTHOR
31 !! ------
32 !! F. Habets *Meteo France*
33 !!
34 !! MODIFICATIONS
35 !! -------------
36 !! Original 01/2004
37 !! Modified by P. Le Moigne (04/2005): cleaning and checking
38 !! Modified by P. Le Moigne (04/2006): init_io_surf for nature
39 !! with GTMSK to read dimensions.
40 !! Modified by M. Lafaysse 04/2015 : option ODELAYEDSTART_NC
41 !==================================================================
42 !
43 !
45 USE modd_surf_atm_n, ONLY : surf_atm_t
46 !
47 USE modi_ol_read_atm_conf_netcdf
48 USE modi_ol_read_atm_conf_ascii
49 USE modd_surf_conf, ONLY : cprogname
50 !==================================================================
51 !
52 USE yomhook ,ONLY : lhook, dr_hook
53 USE parkind1 ,ONLY : jprb
54 !
55 IMPLICIT NONE
56 !
57 TYPE(data_cover_t), INTENT(INOUT) :: DTCO
58 TYPE(surf_atm_t), INTENT(INOUT) :: U
59 !
60  CHARACTER(LEN=*), INTENT(IN) :: HGRID
61  CHARACTER(LEN=6), INTENT(IN) :: HSURF_FILETYPE
62  CHARACTER(LEN=6), INTENT(IN) :: HFORCING_FILETYPE
63 LOGICAL, INTENT(IN) :: ODELAYEDSTART_NC !Allow the simulation to start from a different time step than the first record of a netcdf file
64 INTEGER,DIMENSION(4),INTENT(IN) :: KDATESTOP !Allow the simulation to end at a different time step than the last record of a netcdf file
65 INTEGER, INTENT(OUT) :: KNI
66 INTEGER, INTENT(OUT) :: KYEAR, KMONTH, KDAY
67 REAL, INTENT(OUT) :: PDURATION,PTSTEP_FORC
68 REAL, INTENT(OUT) :: PTIME
69 REAL, DIMENSION(:), POINTER :: PLAT, PLON
70 REAL, DIMENSION(:), POINTER :: PZS
71 REAL, DIMENSION(:), POINTER :: PZREF, PUREF
72 INTEGER, INTENT(OUT) :: KTIMESTARTINDEX ! index from which we start reading FORCING.nc
73 REAL(KIND=JPRB) :: ZHOOK_HANDLE
74 !
75 !==================================================================
76 !
77 IF (lhook) CALL dr_hook('OL_READ_ATM_CONF',0,zhook_handle)
78 cprogname = hsurf_filetype
79 !
80 IF (hforcing_filetype == 'NETCDF') THEN
81 !
82  CALL ol_read_atm_conf_netcdf(dtco, u, hgrid, hsurf_filetype, odelayedstart_nc, kdatestop, &
83  pduration, ptstep_forc, kni, kyear, kmonth, kday, ptime, &
84  plat, plon, pzs, pzref, puref, ktimestartindex )
85 !
86 ELSE IF (hforcing_filetype == 'ASCII ' .OR. hforcing_filetype == 'BINARY') THEN
87 !
88  CALL ol_read_atm_conf_ascii(dtco, u, hsurf_filetype, &
89  hforcing_filetype, pduration, &
90  ptstep_forc, kni, kyear,kmonth, &
91  kday, ptime, plat, plon, &
92  pzs, pzref, puref )
93 !
94  ktimestartindex = 1
95 !
96 ENDIF
97 IF (lhook) CALL dr_hook('OL_READ_ATM_CONF',1,zhook_handle)
98 !
99 !==================================================================
100 !
101 END SUBROUTINE ol_read_atm_conf
subroutine ol_read_atm_conf_ascii(DTCO, U, HSURF_FILETYPE, HFORCING_FILETYPE, PDURATION, PTSTEP_FORC, KNI, KYEAR, KMONTH, KDAY, PTIME, PLAT, PLON, PZS, PZREF, PUREF)
integer, parameter jprb
Definition: parkind1.F90:32
character(len=6) cprogname
logical lhook
Definition: yomhook.F90:15
subroutine ol_read_atm_conf(DTCO, U, HGRID, HSURF_FILETYPE, HFORCING_FILETYPE, ODELAYEDSTART_NC, KDATESTOP, PDURATION, PTSTEP_FORC, KNI, KYEAR, KMONTH, KDAY, PTIME, PLAT, PLON, PZS, PZREF, PUREF, KTIMESTARTINDEX)
subroutine ol_read_atm_conf_netcdf(DTCO, U, HGRID, HSURF_FILETYPE, ODELAYEDSTART_NC, KDATESTOP, PDURATION, PTSTEP_FORC, KNI, KYEAR, KMONTH, KDAY, PTIME, PLAT, PLON, PZS, PZREF, PUREF, KTIMESTARTINDEX)