SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_prep_file_date.F90
Go to the documentation of this file.
00001 !     #########
00002 SUBROUTINE READ_PREP_FILE_DATE(HPROGRAM,HFILE,HFILETYPE,TPTIME,KLUOUT)
00003 !     #################################################################################
00004 !
00005 !!****  *READ_PREP_FILE_DATE* - reads the date for the surface
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !
00010 !!**  METHOD
00011 !!    ------
00012 !!
00013 !!    REFERENCE
00014 !!    ---------
00015 !!      
00016 !!
00017 !!    AUTHOR
00018 !!    ------
00019 !!     S. Malardel
00020 !!
00021 !!    MODIFICATIONS
00022 !!    -------------
00023 !!      Original    01/2004
00024 !!      P. Le Moigne 10/2005, Phasage Arome
00025 !!------------------------------------------------------------------
00026 !
00027 !
00028 USE MODD_TYPE_DATE_SURF
00029 USE MODD_IO_BUFF_n, ONLY : CREC, NREC
00030 !
00031 USE MODI_PREP_GRIB_GRID
00032 USE MODI_READ_BUFFER
00033 USE MODI_OPEN_AUX_IO_SURF
00034 USE MODI_READ_SURF
00035 USE MODI_CLOSE_AUX_IO_SURF
00036 !
00037 !
00038 !
00039 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00040 USE PARKIND1  ,ONLY : JPRB
00041 !
00042 IMPLICIT NONE
00043 !
00044 !*      0.1    declarations of arguments
00045 !
00046  CHARACTER(LEN=6),   INTENT(IN)  :: HPROGRAM  ! program calling surf. schemes
00047  CHARACTER(LEN=28),  INTENT(IN)  :: HFILE     ! name of file
00048  CHARACTER(LEN=6),   INTENT(IN)  :: HFILETYPE ! file type
00049 TYPE (DATE_TIME),   INTENT(OUT) :: TPTIME    ! grib date and time
00050 INTEGER,            INTENT(IN)  :: KLUOUT    ! logical unit of output listing
00051 !
00052 !*      0.2    declarations of local variables
00053 !
00054  CHARACTER(LEN=12), DIMENSION(3000) :: HREC   ! list of records already read/written
00055 INTEGER                            :: IREC
00056  CHARACTER(LEN=6)              :: YINMODEL  ! model from which GRIB file originates
00057  CHARACTER(LEN=10)             :: YGRIDTYPE ! Grid type
00058 INTEGER                       :: IRESP     ! Error code after redding
00059 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00060 !
00061 !-------------------------------------------------------------------------------------
00062 !
00063 !*      1.     Reading date in a grib file
00064 !              --------------------------
00065 !
00066 IF (LHOOK) CALL DR_HOOK('READ_PREP_FILE_DATE',0,ZHOOK_HANDLE)
00067 IF(HFILETYPE=='GRIB  ') THEN
00068 !
00069   CALL PREP_GRIB_GRID(HFILE,KLUOUT,YINMODEL,YGRIDTYPE,TPTIME)
00070 !
00071 ELSE IF(HFILETYPE=='MESONH' .OR. HFILETYPE=='LFI   ' .OR. HFILETYPE=='ASCII ') THEN
00072 !
00073   HREC = CREC
00074   IREC = NREC
00075   CALL OPEN_AUX_IO_SURF(HFILE,HFILETYPE,'FULL  ')
00076   CALL READ_SURF(HFILETYPE,'DTCUR           ',TPTIME,IRESP)
00077   CALL CLOSE_AUX_IO_SURF(HFILE,HFILETYPE)
00078   CREC = HREC
00079   NREC = IREC
00080 !
00081 ELSE IF(HFILETYPE=='BUFFER') THEN
00082 !
00083  CALL READ_BUFFER('YEAR  ',TPTIME%TDATE%YEAR,IRESP)
00084  CALL READ_BUFFER('MONTH ',TPTIME%TDATE%MONTH,IRESP)
00085  CALL READ_BUFFER('DAY   ',TPTIME%TDATE%DAY,IRESP)
00086  CALL READ_BUFFER('TIME  ',TPTIME%TIME,IRESP)
00087 !
00088 ELSE
00089 !
00090   WRITE(UNIT=KLUOUT, FMT=*) 'STOP IN READ_PREP_FILE_DATE'
00091   WRITE(UNIT=KLUOUT,  FMT='("FILETYPE =",A6,"NOT SUPPORTED")') HFILETYPE 
00092 !
00093 ENDIF
00094 IF (LHOOK) CALL DR_HOOK('READ_PREP_FILE_DATE',1,ZHOOK_HANDLE)
00095 !
00096 !-------------------------------------------------------------------------------------
00097 END SUBROUTINE READ_PREP_FILE_DATE