SURFEX v8.1
General documentation of Surfex
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 (HPROGRAM,HFILE,HFILETYPE,TPTIME,KLUOUT)
7 ! #################################################################################
8 !
9 !!**** *READ_PREP_FILE_DATE* - reads the date for the surface
10 !!
11 !! PURPOSE
12 !! -------
13 !
14 !!** METHOD
15 !! ------
16 !!
17 !! REFERENCE
18 !! ---------
19 !!
20 !!
21 !! AUTHOR
22 !! ------
23 !! S. Malardel
24 !!
25 !! MODIFICATIONS
26 !! -------------
27 !! Original 01/2004
28 !! P. Le Moigne 10/2005, Phasage Arome
29 !!------------------------------------------------------------------
30 !
31 !
32 USE modd_io_buff, ONLY : crec, nrec
33 !
35 !
36 USE modi_prep_grib_grid
38 USE modi_open_aux_io_surf
40 USE modi_close_aux_io_surf
41 USE modi_abor1_sfx
42 !
43 !
44 USE yomhook ,ONLY : lhook, dr_hook
45 USE parkind1 ,ONLY : jprb
46 !
47 IMPLICIT NONE
48 !
49 !* 0.1 declarations of arguments
50 !
51 !
52 !
53  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling surf. schemes
54  CHARACTER(LEN=28), INTENT(IN) :: HFILE ! name of file
55  CHARACTER(LEN=6), INTENT(IN) :: HFILETYPE ! file type
56 type(date_time), INTENT(OUT) :: tptime ! grib date and time
57 INTEGER, INTENT(IN) :: KLUOUT ! logical unit of output listing
58 !
59 !* 0.2 declarations of local variables
60 !
61  CHARACTER(LEN=12), DIMENSION(SIZE(CREC)) :: HREC ! list of records already read/written
62 INTEGER :: IREC
63  CHARACTER(LEN=6) :: YINMODEL ! model from which GRIB file originates
64  CHARACTER(LEN=6) :: YINTERPTYPE
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,yinterptype,tptime)
78 !
79 ELSE IF(hfiletype=='MESONH' .OR. hfiletype=='LFI ' .OR. hfiletype=='ASCII '.OR. hfiletype=='FA '.OR.&
80  hfiletype=='NC ') THEN
81 !
82  hrec = crec
83  irec = nrec
84  CALL open_aux_io_surf(hfile,hfiletype,'FULL ')
85  CALL read_surf(hfiletype,'DTCUR ',tptime,iresp)
86  CALL close_aux_io_surf(hfile,hfiletype)
87  crec = hrec
88  nrec = irec
89 !
90 ELSE IF(hfiletype=='BUFFER') THEN
91 !
92  CALL read_buffer('YEAR ',tptime%TDATE%YEAR,iresp)
93  CALL read_buffer('MONTH ',tptime%TDATE%MONTH,iresp)
94  CALL read_buffer('DAY ',tptime%TDATE%DAY,iresp)
95  CALL read_buffer('TIME ',tptime%TIME,iresp)
96 !
97 ELSE
98 !
99  WRITE(unit=kluout, fmt=*) 'STOP IN READ_PREP_FILE_DATE'
100  WRITE(unit=kluout, fmt='("FILETYPE =",A6,"NOT SUPPORTED")') hfiletype
101  CALL abor1_sfx("READ_PREP_FILE_DATE: FILETYPE NOT SUPPORTED")
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 prep_grib_grid(HGRIB, KLUOUT, HINMODEL, HGRIDTYPE, HINTERP_
character(len=12), dimension(50000) crec
subroutine close_aux_io_surf(HFILE, HFILETYPE)
subroutine read_prep_file_date(HPROGRAM, HFILE, HFILETYPE, TPTIME, KLUOUT)
subroutine abor1_sfx(YTEXT)
Definition: abor1_sfx.F90:7
integer, parameter jprb
Definition: parkind1.F90:32
logical lhook
Definition: yomhook.F90:15
subroutine open_aux_io_surf(HFILE, HFILETYPE, HMASK, HDIR)