SURFEX v7.3
General documentation of Surfex
|
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