SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_pgd_teb_gardenn.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE READ_PGD_TEB_GARDEN_n(HPROGRAM,KVERSION,KBUGFIX)
00003 !     #########################################
00004 !
00005 !!****  *READ_PGD_TEB_GARDEN_n* - routine to initialise ISBA physiographic variables 
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !!
00010 !!**  METHOD
00011 !!    ------
00012 !!
00013 !!    EXTERNAL
00014 !!    --------
00015 !!
00016 !!
00017 !!    IMPLICIT ARGUMENTS
00018 !!    ------------------
00019 !!
00020 !!    REFERENCE
00021 !!    ---------
00022 !!
00023 !!
00024 !!    AUTHOR
00025 !!    ------
00026 !!      V. Masson   *Meteo France*      
00027 !!
00028 !!    MODIFICATIONS
00029 !!    -------------
00030 !!      Original    01/2003 
00031 !!      P. Le Moigne  12/2004 : add type of photosynthesis
00032 !!      B. Decharme      2008 : add XWDRAIN
00033 !-------------------------------------------------------------------------------
00034 !
00035 !*       0.    DECLARATIONS
00036 !              ------------
00037 !
00038 USE MODD_SURF_PAR,        ONLY : XUNDEF
00039 USE MODD_TEB_n,           ONLY : LECOCLIMAP
00040 USE MODD_TEB_GARDEN_n,    ONLY :  XCLAY, XSAND, NGROUND_LAYER,    &
00041                                   XRUNOFFB, XWDRAIN, LPAR_GARDEN                           
00042 USE MODD_GR_BIOG_GARDEN_n,ONLY : XISOPOT, XMONOPOT
00043 USE MODD_CH_TEB_n,        ONLY : LCH_BIO_FLUX
00044 USE MODD_TEB_GRID_n,      ONLY : NDIM
00045 USE MODD_ISBA_PAR,        ONLY : XOPTIMGRID
00046 !
00047 USE MODI_READ_PGD_TEB_GARDEN_PAR_n
00048 USE MODI_READ_SURF
00049 !
00050 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00051 USE PARKIND1  ,ONLY : JPRB
00052 !
00053 USE MODI_GET_TYPE_DIM_n
00054 !
00055 IMPLICIT NONE
00056 !
00057 !*       0.1   Declarations of arguments
00058 !              -------------------------
00059 !
00060  CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! calling program
00061 INTEGER,           INTENT(IN)  :: KVERSION ! version of SURFEX of the file being read
00062 INTEGER,           INTENT(IN)  :: KBUGFIX
00063 !
00064 !*       0.2   Declarations of local variables
00065 !              -------------------------------
00066 !
00067 INTEGER           :: IRESP          ! Error code after redding
00068 !
00069  CHARACTER(LEN=12) :: YRECFM         ! Name of the article to be read
00070 !
00071 INTEGER           :: JLAYER         ! loop counter on layers
00072 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00073 !
00074 !-------------------------------------------------------------------------------
00075 !
00076 !* 1D physical dimension
00077 !
00078 IF (LHOOK) CALL DR_HOOK('READ_PGD_TEB_GARDEN_N',0,ZHOOK_HANDLE)
00079 YRECFM='SIZE_TOWN'
00080  CALL GET_TYPE_DIM_n('TOWN  ',NDIM)
00081 !
00082 !
00083 !* clay fraction : attention, seul un niveau est present dans le fichier
00084 !* on rempli tout les niveaux de  XCLAY avec les valeurs du fichiers
00085 !
00086 ALLOCATE(XCLAY(NDIM,NGROUND_LAYER))
00087 YRECFM='TWN_CLAY'
00088 IF (KVERSION>7 .OR. KVERSION==7 .AND. KBUGFIX>=3) YRECFM='GD_CLAY'
00089  CALL READ_SURF(HPROGRAM,YRECFM,XCLAY(:,1),IRESP)
00090 DO JLAYER=2,NGROUND_LAYER
00091   XCLAY(:,JLAYER)=XCLAY(:,1)
00092 END DO
00093 !
00094 !* sand fraction
00095 !
00096 ALLOCATE(XSAND(NDIM,NGROUND_LAYER))
00097 YRECFM='TWN_SAND'
00098 IF (KVERSION>7 .OR. KVERSION==7 .AND. KBUGFIX>=3) YRECFM='GD_SAND'
00099  CALL READ_SURF(HPROGRAM,YRECFM,XSAND(:,1),IRESP)
00100 DO JLAYER=2,NGROUND_LAYER
00101   XSAND(:,JLAYER)=XSAND(:,1)
00102 END DO
00103 !
00104 !* orographic runoff coefficient
00105 !
00106 ALLOCATE(XRUNOFFB(NDIM))
00107 YRECFM='TWN_RUNOFFB'
00108 IF (KVERSION>7 .OR. KVERSION==7 .AND. KBUGFIX>=3) YRECFM='GD_RUNOFFB'
00109  CALL READ_SURF(HPROGRAM,YRECFM,XRUNOFFB,IRESP)
00110 !
00111 !* subgrid drainage coefficient
00112 !
00113 ALLOCATE(XWDRAIN(NDIM))
00114 IF (KVERSION<=3) THEN
00115   XWDRAIN = 0.
00116 ELSE
00117   YRECFM='TWN_WDRAIN'
00118   IF (KVERSION>7 .OR. KVERSION==7 .AND. KBUGFIX>=3) YRECFM='GD_WDRAIN'
00119   CALL READ_SURF(HPROGRAM,YRECFM,XWDRAIN,IRESP)
00120 ENDIF
00121 !
00122 !-------------------------------------------------------------------------------
00123 !
00124 !* biogenic chemical emissions
00125 !
00126 IF (LCH_BIO_FLUX) THEN
00127   ALLOCATE(XISOPOT(NDIM))
00128   YRECFM='EMIS_ISOPOT'
00129   CALL READ_SURF(HPROGRAM,YRECFM,XISOPOT,IRESP)
00130   !
00131   ALLOCATE(XMONOPOT(NDIM))
00132   YRECFM='EMIS_MONOPOT'
00133   CALL READ_SURF(HPROGRAM,YRECFM,XMONOPOT,IRESP)
00134 ELSE
00135   ALLOCATE(XISOPOT (0))
00136   ALLOCATE(XMONOPOT(0))
00137 END IF
00138 !
00139 !-------------------------------------------------------------------------------
00140 !
00141 !*       4.     Physiographic data fields not to be computed by ecoclimap
00142 !               ---------------------------------------------------------
00143 !
00144 IF (KVERSION>=7) THEN
00145   YRECFM='PAR_GARDEN'
00146   CALL READ_SURF(HPROGRAM,YRECFM,LPAR_GARDEN,IRESP)
00147 ELSEIF (.NOT.LECOCLIMAP) THEN
00148   LPAR_GARDEN = .TRUE.
00149 ELSE
00150   LPAR_GARDEN = .FALSE.
00151 ENDIF
00152 !
00153 IF (LPAR_GARDEN) CALL READ_PGD_TEB_GARDEN_PAR_n(HPROGRAM)
00154 IF (LHOOK) CALL DR_HOOK('READ_PGD_TEB_GARDEN_N',1,ZHOOK_HANDLE)
00155 !
00156 !
00157 !-------------------------------------------------------------------------------
00158 !
00159 END SUBROUTINE READ_PGD_TEB_GARDEN_n