SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
read_prep_file_date.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 read_prep_file_date (&
7  hprogram,hfile,hfiletype,tptime,kluout)
8 ! #################################################################################
9 !
10 !!**** *READ_PREP_FILE_DATE* - reads the date for the surface
11 !!
12 !! PURPOSE
13 !! -------
14 !
15 !!** METHOD
16 !! ------
17 !!
18 !! REFERENCE
19 !! ---------
20 !!
21 !!
22 !! AUTHOR
23 !! ------
24 !! S. Malardel
25 !!
26 !! MODIFICATIONS
27 !! -------------
28 !! Original 01/2004
29 !! P. Le Moigne 10/2005, Phasage Arome
30 !!------------------------------------------------------------------
31 !
32 !
33 USE modd_io_buff, ONLY : crec, nrec
34 !
36 !
37 USE modi_prep_grib_grid
39 USE modi_open_aux_io_surf
41 USE modi_close_aux_io_surf
42 !
43 !
44 !
45 USE yomhook ,ONLY : lhook, dr_hook
46 USE parkind1 ,ONLY : jprb
47 !
48 IMPLICIT NONE
49 !
50 !* 0.1 declarations of arguments
51 !
52 !
53 !
54  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! program calling surf. schemes
55  CHARACTER(LEN=28), INTENT(IN) :: hfile ! name of file
56  CHARACTER(LEN=6), INTENT(IN) :: hfiletype ! file type
57 TYPE (date_time), INTENT(OUT) :: tptime ! grib date and time
58 INTEGER, INTENT(IN) :: kluout ! logical unit of output listing
59 !
60 !* 0.2 declarations of local variables
61 !
62  CHARACTER(LEN=12), DIMENSION(3000) :: hrec ! list of records already read/written
63 INTEGER :: irec
64  CHARACTER(LEN=6) :: yinmodel ! model from which GRIB file originates
65  CHARACTER(LEN=10) :: ygridtype ! Grid type
66 INTEGER :: iresp ! Error code after redding
67 REAL(KIND=JPRB) :: zhook_handle
68 !
69 !-------------------------------------------------------------------------------------
70 !
71 !* 1. Reading date in a grib file
72 ! --------------------------
73 !
74 IF (lhook) CALL dr_hook('READ_PREP_FILE_DATE',0,zhook_handle)
75 IF(hfiletype=='GRIB ') THEN
76 !
77  CALL prep_grib_grid(hfile,kluout,yinmodel,ygridtype,tptime)
78 !
79 ELSE IF(hfiletype=='MESONH' .OR. hfiletype=='LFI ' .OR. hfiletype=='ASCII '.OR. hfiletype=='FA ') THEN
80 !
81  hrec = crec
82  irec = nrec
83  CALL open_aux_io_surf(&
84  hfile,hfiletype,'FULL ')
85  CALL read_surf(&
86  hfiletype,'DTCUR ',tptime,iresp)
87  CALL close_aux_io_surf(hfile,hfiletype)
88  crec = hrec
89  nrec = irec
90 !
91 ELSE IF(hfiletype=='BUFFER') THEN
92 !
93  CALL read_buffer('YEAR ',tptime%TDATE%YEAR,iresp)
94  CALL read_buffer('MONTH ',tptime%TDATE%MONTH,iresp)
95  CALL read_buffer('DAY ',tptime%TDATE%DAY,iresp)
96  CALL read_buffer('TIME ',tptime%TIME,iresp)
97 !
98 ELSE
99 !
100  WRITE(unit=kluout, fmt=*) 'STOP IN READ_PREP_FILE_DATE'
101  WRITE(unit=kluout, fmt='("FILETYPE =",A6,"NOT SUPPORTED")') hfiletype
102 !
103 ENDIF
104 IF (lhook) CALL dr_hook('READ_PREP_FILE_DATE',1,zhook_handle)
105 !
106 !-------------------------------------------------------------------------------------
107 END SUBROUTINE read_prep_file_date
subroutine close_aux_io_surf(HFILE, HFILETYPE)
subroutine read_prep_file_date(HPROGRAM, HFILE, HFILETYPE, TPTIME, KLUOUT)
subroutine open_aux_io_surf(HFILE, HFILETYPE, HMASK)
subroutine prep_grib_grid(HGRIB, KLUOUT, HINMODEL, HGRIDTYPE, TPTIME_GRIB)