SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_eco2_irrig.F90
Go to the documentation of this file.
00001 !     #######################
00002       SUBROUTINE READ_ECO2_IRRIG(HPROGRAM)
00003 !     #######################
00004 !
00005 USE MODI_READ_SURF
00006 !
00007 USE MODD_DATA_COVER,     ONLY : TDATA_SEED, TDATA_REAP, XDATA_WATSUP, XDATA_IRRIG,&
00008                                   LDATA_IRRIG, XDATA_VEGTYPE  
00009 USE MODD_DATA_COVER_PAR, ONLY : JPCOVER, NVT_IRR
00010 !
00011 !
00012 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00013 USE PARKIND1  ,ONLY : JPRB
00014 !
00015 IMPLICIT NONE
00016 !
00017 !* dummy arguments
00018 !  ---------------
00019 !
00020  CHARACTER(LEN=6),     INTENT(IN)    :: HPROGRAM  ! program calling surf. schemes
00021 !
00022 !
00023 !* local variables
00024 !  ---------------
00025 !
00026  CHARACTER(LEN=12) :: YRECFM     ! Name of the article to be read
00027 INTEGER           :: IRESP      ! reading return code
00028 !
00029 INTEGER           :: IVERSION   ! surface version
00030 INTEGER           :: IBUGFIX    ! surface bugfix
00031 !
00032 INTEGER           :: JCOVER     ! loop counter
00033 !
00034 REAL, DIMENSION(6) :: ZWORK
00035 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00036 !------------------------------------------------------------------------------
00037 !
00038 IF (LHOOK) CALL DR_HOOK('READ_ECO2_IRRIG',0,ZHOOK_HANDLE)
00039 YRECFM='VERSION'
00040  CALL READ_SURF(HPROGRAM,YRECFM,IVERSION,IRESP)
00041 YRECFM='BUG'
00042  CALL READ_SURF(HPROGRAM,YRECFM,IBUGFIX,IRESP)
00043 !
00044 IF (IVERSION<4 .OR. IVERSION==4 .AND. IBUGFIX<2) THEN
00045   LDATA_IRRIG  = .FALSE.
00046   IF (LHOOK) CALL DR_HOOK('READ_ECO2_IRRIG',1,ZHOOK_HANDLE)
00047   RETURN
00048 END IF
00049 !
00050 YRECFM='DATA_IRRIG'
00051  CALL READ_SURF(HPROGRAM,YRECFM,LDATA_IRRIG,IRESP)
00052 !
00053 IF (.NOT. LDATA_IRRIG .AND. LHOOK) CALL DR_HOOK('READ_ECO2_IRRIG',1,ZHOOK_HANDLE)
00054 IF (.NOT. LDATA_IRRIG) RETURN
00055 !
00056 DO JCOVER=1,JPCOVER
00057   IF (XDATA_VEGTYPE(JCOVER,NVT_IRR)==0.) CYCLE
00058   WRITE(YRECFM,FMT='(A6,I3.3)') 'IRRIG_',JCOVER
00059   CALL READ_SURF(HPROGRAM,YRECFM,ZWORK,IRESP,HDIR='-')
00060   TDATA_SEED  (JCOVER,NVT_IRR)%TDATE%MONTH = NINT(ZWORK(1))
00061   TDATA_SEED  (JCOVER,NVT_IRR)%TDATE%DAY   = NINT(ZWORK(2))
00062   TDATA_REAP  (JCOVER,NVT_IRR)%TDATE%MONTH = NINT(ZWORK(3))
00063   TDATA_REAP  (JCOVER,NVT_IRR)%TDATE%DAY   = NINT(ZWORK(4))
00064   XDATA_WATSUP(JCOVER,NVT_IRR)             = ZWORK(5)
00065   XDATA_IRRIG (JCOVER,NVT_IRR)             = ZWORK(6)
00066   TDATA_SEED  (JCOVER,NVT_IRR)%TDATE%YEAR  = 9999
00067   TDATA_SEED  (JCOVER,NVT_IRR)%TIME        = 0.
00068   TDATA_REAP  (JCOVER,NVT_IRR)%TDATE%YEAR  = 9999
00069   TDATA_REAP  (JCOVER,NVT_IRR)%TIME        = 0.
00070 END DO
00071 IF (LHOOK) CALL DR_HOOK('READ_ECO2_IRRIG',1,ZHOOK_HANDLE)
00072 !
00073 !------------------------------------------------------------------------------
00074 !
00075 END SUBROUTINE READ_ECO2_IRRIG