readuntouch.f90 15.35 KiB
! ######################################
SUBROUTINE READUNTOUCH(HFMFILE,HLUOUT)
! ######################################
!
!! add LTHINSHELL, XXHAT, XYHAT, XZHAT, CMY_NAME,
!! CDAD_NAME and CSTORAGE_TYPE (V. Masson) 31/01/97
!! update FMREAD calls, add MASDEV (I. Mallet) 19/04/02
!!---------------------------------------------------------------------------
!
!
!USE MODD_TYPE_DATE
! en attendant une surcouche officielle...
!USE MODE_FMREAD
USE MODI_FMREAD
USE MODE_GRIDPROJ
!
!IMPLICIT NONE
!
!* 0.1 Declarations of arguments
!
CHARACTER(LEN=*),INTENT(IN) :: HFMFILE,HLUOUT
!
!* 0.2 Declarations of local variables
!
INTEGER :: IGRID,ILENCH,IRESP,NIMAX,NJMAX,NKMAX,IXOR,IYOR
INTEGER :: ILENG ! en attendant une surcouche officielle...
INTEGER :: NMASDEV,NBUGFIX,NVERSION_SURFEX,NBUGFIX_SURFEX
CHARACTER(LEN=100) :: YCOMMENT
CHARACTER(LEN=16) :: YRECFM
CHARACTER(LEN=10) :: CBIBUSER
CHARACTER(LEN=6) :: CPROGRAM
CHARACTER(LEN=4) :: CSURF
CHARACTER(LEN=40) :: CPHOTO
CHARACTER(LEN=28) :: CDAD_NAME, CMY_NAME
CHARACTER(LEN=2) :: CSTORAGE_TYPE
LOGICAL :: LCARTESIAN, LTHINSHELL, L1D, L2D, LPACK, LSLEVE, LECOCLIMAP
REAL :: XLON0,XRPK,XLAT0,XBETA,XLATORI,XLONORI,XLEN1,XLEN2
REAL, DIMENSION(:), ALLOCATABLE :: XXHAT,XYHAT,XZHAT
INTEGER :: JLOOP
!
INTEGER, DIMENSION(3) :: ITDATE ! date array
REAL :: ZTDATE ! seconds
! evite le USE MODD_TYPE_DATE
!TYPE (DATE_TIME) :: TDTEXP ! Time and Date of Experiment beginning
!TYPE (DATE_TIME) :: TDTSEG ! Time and Date of the segment beginning
!TYPE (DATE_TIME) :: TDTMOD ! Time and Date of the model beginning
!TYPE (DATE_TIME) :: TDTCUR ! Current Time and Date in the model
!
!---------------------------------------------------------------------------
!
!* 1.0 Header
!
WRITE(6,*) '################################################################'
WRITE(6,*) '################ COMMENTS ##########################'
WRITE(6,*) '################################################################'
WRITE(6,*) '################################################################'
!
YRECFM='MASDEV'
! en attendant une surcouche officielle...
!CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',NMASDEV,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,NMASDEV,IGRID,ILENCH,YCOMMENT,IRESP)
IF (IRESP.EQ.0) THEN
WRITE(6,*) '#### MASDEV = ',NMASDEV
WRITE(6,*) '####'
END IF
!
YRECFM='BUGFIX'
! en attendant une surcouche officielle...
!CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',NBUGFIX,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,NBUGFIX,IGRID,ILENCH,YCOMMENT,IRESP)
IF (IRESP.EQ.0) THEN
WRITE(6,*) '#### BUGFIX = ',NBUGFIX
WRITE(6,*) '####'
END IF
!
YRECFM='BIBUSER'
! en attendant une surcouche officielle...
!CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',CBIBUSER,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,CBIBUSER,IGRID,ILENCH,YCOMMENT,IRESP)
IF (IRESP.EQ.0) THEN
WRITE(6,*) '#### BIBUSER = ',CBIBUSER
WRITE(6,*) '####'
END IF
!
YRECFM='PROGRAM'
! en attendant une surcouche officielle...
!CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',CPROGRAM,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,CPROGRAM,IGRID,ILENCH,YCOMMENT,IRESP)
IF (IRESP.EQ.0) THEN
WRITE(6,*) '#### PROGRAM = ',CPROGRAM
WRITE(6,*) '####'
END IF
!
YRECFM='STORAGE_TYPE'
! en attendant une surcouche officielle...
!CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',CSTORAGE_TYPE,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,CSTORAGE_TYPE,IGRID,ILENCH,YCOMMENT,IRESP)
IF (IRESP.EQ.0) THEN
WRITE(6,*) '#### STORAGE_TYPE = ',CSTORAGE_TYPE
WRITE(6,*) '####'
END IF
!
YRECFM='SURF'
IF (NMASDEV>=46) THEN
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,CSURF,IGRID,ILENCH,YCOMMENT,IRESP)
IF (IRESP.EQ.0) THEN
WRITE(6,*) '#### SURF = ',CSURF
WRITE(6,*) '####'
END IF
CALL FMREAD(HFMFILE,'DIM_FULL',HLUOUT,ILENG,IXOR,IGRID,ILENCH,YCOMMENT,IRESP)
YRECFM='VERSION'
! en attendant une surcouche officielle...
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,NVERSION_SURFEX,IGRID,ILENCH,YCOMMENT,IRESP)
IF (IRESP.EQ.0) THEN
WRITE(6,*) '#### SURFEX VERSION = ',NVERSION_SURFEX
WRITE(6,*) '####'
END IF
YRECFM='BUG'
! en attendant une surcouche officielle...
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,NBUGFIX_SURFEX,IGRID,ILENCH,YCOMMENT,IRESP)
IF (IRESP.EQ.0) THEN
WRITE(6,*) '#### SURFEX BUGFIX = ',NBUGFIX_SURFEX
WRITE(6,*) '####'
END IF
IF (IRESP.EQ.0) THEN
WRITE(6,*) '#### DIM_FULL = ',IXOR
END IF
CALL FMREAD(HFMFILE,'DIM_NATURE',HLUOUT,ILENG,IXOR,IGRID,ILENCH,YCOMMENT,IRESP)
IF (IRESP.EQ.0) THEN
WRITE(6,*) '#### DIM_NATURE = ',IXOR
END IF
CALL FMREAD(HFMFILE,'DIM_SEA',HLUOUT,ILENG,IXOR,IGRID,ILENCH,YCOMMENT,IRESP)
IF (IRESP.EQ.0) THEN
WRITE(6,*) '#### DIM_SEA = ',IXOR
END IF
CALL FMREAD(HFMFILE,'DIM_TOWN',HLUOUT,ILENG,IXOR,IGRID,ILENCH,YCOMMENT,IRESP)
IF (IRESP.EQ.0) THEN
WRITE(6,*) '#### DIM_TOWN = ',IXOR
END IF
CALL FMREAD(HFMFILE,'DIM_WATER',HLUOUT,ILENG,IXOR,IGRID,ILENCH,YCOMMENT,IRESP)
IF (IRESP.EQ.0) THEN
WRITE(6,*) '#### DIM_WATER = ',IXOR
WRITE(6,*) '####'
END IF
CALL FMREAD(HFMFILE,'ECOCLIMAP',HLUOUT,ILENG,LECOCLIMAP,IGRID,ILENCH,YCOMMENT,IRESP)
IF (IRESP.EQ.0) THEN
WRITE(6,*) '#### ECOCLIMAP = ',LECOCLIMAP
WRITE(6,*) '####'
END IF
END IF
!
IF (NMASDEV>=46) THEN
YRECFM='L1D'
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,L1D,IGRID,ILENCH,YCOMMENT,IRESP)
!
YRECFM='L2D'
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,L2D,IGRID,ILENCH,YCOMMENT,IRESP)
!
YRECFM='PACK'
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,LPACK,IGRID,ILENCH,YCOMMENT,IRESP)
IF (IRESP.EQ.0) THEN
WRITE(6,*) '#### L1D = ',L1D,' L2D = ',L2D,' PACK = ',LPACK
WRITE(6,*) '####'
END IF
END IF
!
YRECFM='MY_NAME'
! en attendant une surcouche officielle...
!CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',CMY_NAME,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,CMY_NAME,IGRID,ILENCH,YCOMMENT,IRESP)
IF (IRESP.EQ.0) THEN
WRITE(6,*) '#### MY_NAME = ',CMY_NAME
WRITE(6,*) '####'
END IF
!
YRECFM='DAD_NAME'
! en attendant une surcouche officielle...
!CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',CDAD_NAME,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,CDAD_NAME,IGRID,ILENCH,YCOMMENT,IRESP)
IF (IRESP.EQ.0) THEN
WRITE(6,*) '#### DAD_NAME= ',CDAD_NAME
WRITE(6,*) '####'
END IF
!
!* 1.1 Dimensions :
!
YRECFM='IMAX'
! en attendant une surcouche officielle...
!CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',NIMAX,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,NIMAX,IGRID,ILENCH,YCOMMENT,IRESP)
!
YRECFM='JMAX'
! en attendant une surcouche officielle...
!CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',NJMAX,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,NJMAX,IGRID,ILENCH,YCOMMENT,IRESP)
!
YRECFM='KMAX'
IF (CSTORAGE_TYPE /='PG' .AND. CSTORAGE_TYPE/='SU') &
! en attendant une surcouche officielle...
!CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',NKMAX,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,NKMAX,IGRID,ILENCH,YCOMMENT,IRESP)
!
IF (CSTORAGE_TYPE /='PG' .AND. CSTORAGE_TYPE/='SU') THEN
WRITE(6,*) '#### NIMAX = ',NIMAX,' NJMAX = ',NJMAX,' NKMAX = ',NKMAX
WRITE(6,*) '####'
ELSE
WRITE(6,*) '#### NIMAX = ',NIMAX,' NJMAX = ',NJMAX
WRITE(6,*) '####'
END IF
!
! gridnesting case
IF (LEN_TRIM(CDAD_NAME)>0) THEN
! en attendant une surcouche officielle...
! CALL FMREAD(HFMFILE,'DXRATIO',HLUOUT,'--',IXOR,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,'DXRATIO',HLUOUT,ILENG,IXOR,IGRID,ILENCH,YCOMMENT,IRESP)
WRITE(6,*) '#### DXRATIO= ',IXOR
! en attendant une surcouche officielle...
! CALL FMREAD(HFMFILE,'DYRATIO',HLUOUT,'--',IYOR,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,'DYRATIO',HLUOUT,ILENG,IYOR,IGRID,ILENCH,YCOMMENT,IRESP)
WRITE(6,*) '#### DYRATIO= ',IYOR
WRITE(6,*) '####'
! en attendant une surcouche officielle...
! CALL FMREAD(HFMFILE,'XOR',HLUOUT,'--',IXOR,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,'XOR',HLUOUT,ILENG,IXOR,IGRID,ILENCH,YCOMMENT,IRESP)
WRITE(6,*) '#### XOR= ',IXOR
! en attendant une surcouche officielle...
! CALL FMREAD(HFMFILE,'YOR',HLUOUT,'--',IYOR,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,'YOR',HLUOUT,ILENG,IYOR,IGRID,ILENCH,YCOMMENT,IRESP)
WRITE(6,*) '#### YOR= ',IYOR
WRITE(6,*) '####'
END IF
!
!* 1.2 Configuration variables :
!
YRECFM='CARTESIAN'
! en attendant une surcouche officielle...
!CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',LCARTESIAN,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,LCARTESIAN,IGRID,ILENCH,YCOMMENT,IRESP)
WRITE(6,*) '#### LCARTESIAN = ',LCARTESIAN
!
YRECFM='THINSHELL'
IF (CSTORAGE_TYPE /='PG' .AND. CSTORAGE_TYPE/='SU') THEN
! en attendant une surcouche officielle...
! CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',LTHINSHELL,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,LTHINSHELL,IGRID,ILENCH,YCOMMENT,IRESP)
WRITE(6,*) '#### LTHINSHELL = ',LTHINSHELL
END IF
!
!* 1.3 Grid variables :
!
YRECFM='BETA'
! en attendant une surcouche officielle...
!CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',XBETA,IGRID,ILENCH,YCOMMENT,IRESP)
ILENG=1
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,XBETA,IGRID,ILENCH,YCOMMENT,IRESP)
WRITE(6,*) '#### XBETA = ',XBETA
!
YRECFM='LAT0'
! en attendant une surcouche officielle...
!CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',XLAT0,IGRID,ILENCH,YCOMMENT,IRESP)
ILENG=1
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,XLAT0,IGRID,ILENCH,YCOMMENT,IRESP)
WRITE(6,*) '#### XLAT0 = ',XLAT0
!
YRECFM='LON0'
! en attendant une surcouche officielle...
! CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',XLON0,IGRID,ILENCH,YCOMMENT,IRESP)
ILENG=1
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,XLON0,IGRID,ILENCH,YCOMMENT,IRESP)
WRITE(6,*) '#### XLON0 = ',XLON0
!
IF (.NOT.LCARTESIAN) THEN
YRECFM='RPK'
! en attendant une surcouche officielle...
! CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',XRPK,IGRID,ILENCH,YCOMMENT,IRESP)
ILENG=1
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,XRPK,IGRID,ILENCH,YCOMMENT,IRESP)
WRITE(6,*) '#### XRPK = ',XRPK
!
YRECFM='LONORI'
XLONORI=999.
! en attendant une surcouche officielle...
! CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',XLONOR,IGRID,ILENCH,YCOMMENT,IRESP)
ILENG=1
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,XLONORI,IGRID,ILENCH,YCOMMENT,IRESP)
IF (IRESP==0) WRITE(6,*) '#### XLONORI = ',XLONORI
!
YRECFM='LATORI'
XLATORI=999.
! en attendant une surcouche officielle...
! CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',XLATOR,IGRID,ILENCH,YCOMMENT,IRESP)
ILENG=1
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,XLATORI,IGRID,ILENCH,YCOMMENT,IRESP)
IF (IRESP==0) WRITE(6,*) '#### XLATORI = ',XLATORI
!
WRITE(6,*) '####'
!
END IF
!
YRECFM='XHAT'
ALLOCATE(XXHAT(NIMAX+2))
! en attendant une surcouche officielle...
!CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',XXHAT,IGRID,ILENCH,YCOMMENT,IRESP)
ILENG=SIZE(XXHAT)
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,XXHAT,IGRID,ILENCH,YCOMMENT,IRESP)
WRITE(6,*) '#### X mesh = ',XXHAT(2)-XXHAT(1)
WRITE(6,*) '#### XHAT(1:2) = ',XXHAT(1),XXHAT(2)
!
YRECFM='YHAT'
ALLOCATE(XYHAT(NJMAX+2))
! en attendant une surcouche officielle...
!CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',XYHAT,IGRID,ILENCH,YCOMMENT,IRESP)
ILENG=SIZE(XYHAT)
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,XYHAT,IGRID,ILENCH,YCOMMENT,IRESP)
WRITE(6,*) '#### Y mesh = ',XYHAT(2)-XYHAT(1)
WRITE(6,*) '#### YHAT(1:2) = ',XYHAT(1),XYHAT(2)
!
IF (.NOT.LCARTESIAN) THEN
IF (XLONORI == 999. .AND. XRPK/=0.) THEN
ILENG=1
! CALL FMREAD(HFMFILE,'LATOR',HLUOUT,'--',XLATORI,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,'LATOR',HLUOUT,ILENG,XLATORI,IGRID,ILENCH,YCOMMENT,IRESP)
! CALL FMREAD(HFMFILE,'LONOR',HLUOUT,'--',XLONORI,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,'LONOR',HLUOUT,ILENG,XLONORI,IGRID,ILENCH,YCOMMENT,IRESP)
ZXHATM = - 0.5 * (XXHAT(1)+XXHAT(2))
ZYHATM = - 0.5 * (XYHAT(1)+XYHAT(2))
ZPI= 2.*ASIN(1.) ; ZRADIUS= 6371229.
CALL SM_LATLON(XLATORI,XLONORI,ZXHATM,ZYHATM,ZLATOR,ZLONOR)
XLATORI = ZLATOR
XLONORI = ZLONOR
END IF
END IF
IF (CSTORAGE_TYPE /='PG' .AND. CSTORAGE_TYPE/='SU') THEN
YRECFM='ZHAT'
ALLOCATE(XZHAT(NKMAX+2))
! en attendant une surcouche officielle...
! CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',XZHAT,IGRID,ILENCH,YCOMMENT,IRESP)
ILENG=SIZE(XZHAT)
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,XZHAT,IGRID,ILENCH,YCOMMENT,IRESP)
DO JLOOP=1,NKMAX+2
WRITE(6,'(A13,I3,A4,F12.5)') ' #### XZHAT(',JLOOP,') = ',XZHAT(JLOOP)
END DO
WRITE(6,*) '####'
!
IF (NMASDEV<=46) THEN
LSLEVE = .FALSE.
ELSE
YRECFM='SLEVE'
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,LSLEVE,IGRID,ILENCH,YCOMMENT,IRESP)
WRITE(6,*) '#### LSLEVE = ',LSLEVE
END IF
!
IF (LSLEVE) THEN
YRECFM='LEN1'
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,XLEN1,IGRID,ILENCH,YCOMMENT,IRESP)
WRITE(6,*) '#### XLEN1 = ',XLEN1
!
YRECFM='LEN2'
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,XLEN2,IGRID,ILENCH,YCOMMENT,IRESP)
WRITE(6,*) '#### XLEN2 = ',XLEN2
WRITE(6,*) '####'
END IF
END IF
!
YRECFM='CH_EMIS'
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,LSLEVE,IGRID,ILENCH,YCOMMENT,IRESP)
WRITE(6,*) '#### LCH_EMIS = ',LSLEVE
IF (CSTORAGE_TYPE /='PG' .AND. CSTORAGE_TYPE/='SU') THEN
!
!YRECFM='DTEXP'
YRECFM='DTEXP%TDATE'
! en attendant une surcouche officielle...
!CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',TDTEXP,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,ITDATE,IGRID,ILENCH,YCOMMENT,IRESP)
YRECFM='DTEXP%TIME'
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,ZTDATE,IGRID,ILENCH,YCOMMENT,IRESP)
!WRITE(6,*) '#### DTEXP = ',TDTEXP%TDATE%YEAR,TDTEXP%TDATE%MONTH, &
! TDTEXP%TDATE%DAY, TDTEXP%TIME
WRITE(6,*) '#### DTEXP = ',ITDATE(1),ITDATE(2),ITDATE(3),ZTDATE
!
!YRECFM='DTMOD'
YRECFM='DTMOD%TDATE'
! en attendant une surcouche officielle...
!CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',TDTMOD,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,ITDATE,IGRID,ILENCH,YCOMMENT,IRESP)
YRECFM='DTMOD%TIME'
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,ZTDATE,IGRID,ILENCH,YCOMMENT,IRESP)
!WRITE(6,*) '#### DTMOD = ',TDTMOD%TDATE%YEAR,TDTMOD%TDATE%MONTH, &
! TDTMOD%TDATE%DAY, TDTMOD%TIME
WRITE(6,*) '#### DTMOD = ',ITDATE(1),ITDATE(2),ITDATE(3),ZTDATE
!
!YRECFM='DTSEG'
YRECFM='DTSEG%TDATE'
! en attendant une surcouche officielle...
!CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',TDTSEG,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,ITDATE,IGRID,ILENCH,YCOMMENT,IRESP)
YRECFM='DTSEG%TIME'
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,ZTDATE,IGRID,ILENCH,YCOMMENT,IRESP)
!WRITE(6,*) '#### DTSEG = ',TDTSEG%TDATE%YEAR,TDTSEG%TDATE%MONTH, &
! TDTSEG%TDATE%DAY, TDTSEG%TIME
WRITE(6,*) '#### DTSEG = ',ITDATE(1),ITDATE(2),ITDATE(3),ZTDATE
END IF
!
!
IF (CSTORAGE_TYPE /='PG') THEN
!YRECFM='DTCUR'
YRECFM='DTCUR%TDATE'
! en attendant une surcouche officielle...
!CALL FMREAD(HFMFILE,YRECFM,HLUOUT,'--',TDTCUR,IGRID,ILENCH,YCOMMENT,IRESP)
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,ITDATE,IGRID,ILENCH,YCOMMENT,IRESP)
YRECFM='DTCUR%TIME'
CALL FMREAD(HFMFILE,YRECFM,HLUOUT,ILENG,ZTDATE,IGRID,ILENCH,YCOMMENT,IRESP)
!WRITE(6,*) '#### DTCUR = ',TDTCUR%TDATE%YEAR,TDTCUR%TDATE%MONTH, &
! TDTCUR%TDATE%DAY, TDTCUR%TIME
WRITE(6,*) '#### DTCUR = ',ITDATE(1),ITDATE(2),ITDATE(3),ZTDATE
END IF
!
!---------------------------------------------------------------------------
END SUBROUTINE READUNTOUCH