Juan 8/12/2016: add management of LEN_HREC in MNH & SURFEX
[MNH-git_open_source-lfs.git] / src / SURFEX / read_eco2_irrig.F90
1 !SURFEX_LIC Copyright 1994-2014 Meteo-France 
2 !SURFEX_LIC This is part of the SURFEX software governed by the CeCILL-C  licence
3 !SURFEX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SURFEX_LIC for details. version 1.
5 !     #######################
6       SUBROUTINE READ_ECO2_IRRIG(HPROGRAM)
7 !     #######################
8 !
9 USE MODI_READ_SURF
10 !
11 USE MODD_DATA_COVER,     ONLY : TDATA_SEED, TDATA_REAP, XDATA_WATSUP, XDATA_IRRIG,&
12                                   LDATA_IRRIG 
13 USE MODD_DATA_COVER_n,   ONLY : XDATA_VEGTYPE
14 USE MODD_DATA_COVER_PAR, ONLY : JPCOVER, NVT_IRR
15 !
16 !
17 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
18 USE PARKIND1  ,ONLY : JPRB
19 !
20 IMPLICIT NONE
21 !
22 !* dummy arguments
23 !  ---------------
24 !
25  CHARACTER(LEN=6),     INTENT(IN)    :: HPROGRAM  ! program calling surf. schemes
26 !
27 !
28 !* local variables
29 !  ---------------
30 !
31  CHARACTER(LEN=LEN_HREC) :: YRECFM     ! Name of the article to be read
32 INTEGER           :: IRESP      ! reading return code
33 !
34 INTEGER           :: IVERSION   ! surface version
35 INTEGER           :: IBUGFIX    ! surface bugfix
36 !
37 INTEGER           :: JCOVER     ! loop counter
38 !
39 REAL, DIMENSION(6) :: ZWORK
40 REAL(KIND=JPRB) :: ZHOOK_HANDLE
41 !------------------------------------------------------------------------------
42 !
43 IF (LHOOK) CALL DR_HOOK('READ_ECO2_IRRIG',0,ZHOOK_HANDLE)
44 YRECFM='VERSION'
45  CALL READ_SURF(HPROGRAM,YRECFM,IVERSION,IRESP)
46 YRECFM='BUG'
47  CALL READ_SURF(HPROGRAM,YRECFM,IBUGFIX,IRESP)
48 !
49 IF (IVERSION<4 .OR. IVERSION==4 .AND. IBUGFIX<2) THEN
50   LDATA_IRRIG  = .FALSE.
51   IF (LHOOK) CALL DR_HOOK('READ_ECO2_IRRIG',1,ZHOOK_HANDLE)
52   RETURN
53 END IF
54 !
55 YRECFM='DATA_IRRIG'
56  CALL READ_SURF(HPROGRAM,YRECFM,LDATA_IRRIG,IRESP)
57 !
58 IF (.NOT. LDATA_IRRIG .AND. LHOOK) CALL DR_HOOK('READ_ECO2_IRRIG',1,ZHOOK_HANDLE)
59 IF (.NOT. LDATA_IRRIG) RETURN
60 !
61 DO JCOVER=1,JPCOVER
62   IF (XDATA_VEGTYPE(JCOVER,NVT_IRR)==0.) CYCLE
63   WRITE(YRECFM,FMT='(A6,I3.3)') 'IRRIG_',JCOVER
64   CALL READ_SURF(HPROGRAM,YRECFM,ZWORK,IRESP,HDIR='-')
65   TDATA_SEED  (JCOVER,NVT_IRR)%TDATE%MONTH = NINT(ZWORK(1))
66   TDATA_SEED  (JCOVER,NVT_IRR)%TDATE%DAY   = NINT(ZWORK(2))
67   TDATA_REAP  (JCOVER,NVT_IRR)%TDATE%MONTH = NINT(ZWORK(3))
68   TDATA_REAP  (JCOVER,NVT_IRR)%TDATE%DAY   = NINT(ZWORK(4))
69   XDATA_WATSUP(JCOVER,NVT_IRR)             = ZWORK(5)
70   XDATA_IRRIG (JCOVER,NVT_IRR)             = ZWORK(6)
71   TDATA_SEED  (JCOVER,NVT_IRR)%TDATE%YEAR  = 9999
72   TDATA_SEED  (JCOVER,NVT_IRR)%TIME        = 0.
73   TDATA_REAP  (JCOVER,NVT_IRR)%TDATE%YEAR  = 9999
74   TDATA_REAP  (JCOVER,NVT_IRR)%TIME        = 0.
75 END DO
76 IF (LHOOK) CALL DR_HOOK('READ_ECO2_IRRIG',1,ZHOOK_HANDLE)
77 !
78 !------------------------------------------------------------------------------
79 !
80 END SUBROUTINE READ_ECO2_IRRIG