SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE READ_PGD_TEB_GREENROOF_n(HPROGRAM,KVERSION) 00003 ! ######################################### 00004 ! 00005 !!**** *READ_PGD_TEB_GREENROOF_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 !! based on read_pgd_teb_gardenn 00023 !! 00024 !! AUTHOR 00025 !! ------ 00026 !! C. de Munck & A. Lemonsu *Meteo France* 00027 !! 00028 !! MODIFICATIONS 00029 !! ------------- 00030 !! Original 07/2011 00031 !------------------------------------------------------------------------------- 00032 ! 00033 !* 0. DECLARATIONS 00034 ! ------------ 00035 ! 00036 USE MODD_TEB_VEG_n, ONLY : CPEDOTF, CPHOTO, NNBIOMASS 00037 USE MODD_TEB_GREENROOF_n, ONLY : CISBA_GR, CSCOND_GR, CRUNOFF_GR, & 00038 XRUNOFFB_GR, XWDRAIN_GR, & 00039 LPAR_GREENROOF 00040 USE MODD_GR_BIOG_GREENROOF_n,ONLY : XISOPOT, XMONOPOT 00041 USE MODD_CH_TEB_n, ONLY : LCH_BIO_FLUX 00042 USE MODD_TEB_GRID_n, ONLY : NDIM 00043 USE MODD_ISBA_PAR, ONLY : XOPTIMGRID 00044 ! 00045 USE MODI_READ_SURF 00046 USE MODI_READ_PGD_TEB_GREENROOF_PAR_n 00047 ! 00048 ! 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 ! 00063 !* 0.2 Declarations of local variables 00064 ! ------------------------------- 00065 ! 00066 INTEGER :: IRESP ! Error code after redding 00067 ! 00068 CHARACTER(LEN=12) :: YRECFM ! Name of the article to be read 00069 ! 00070 ! 00071 INTEGER :: JLAYER ! loop counter on layers ! not used 00072 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00073 ! 00074 !------------------------------------------------------------------------------- 00075 ! 00076 !* 1D physical dimension 00077 ! 00078 IF (LHOOK) CALL DR_HOOK('READ_PGD_TEB_GREENROOF_N',0,ZHOOK_HANDLE) 00079 YRECFM='SIZE_TOWN' 00080 CALL GET_TYPE_DIM_n('TOWN ',NDIM) 00081 ! 00082 ! 00083 !* 2. Initialisation of ISBA options for greenroofs 00084 ! --------------------------------------------- 00085 ! 00086 ! 00087 YRECFM='GR_ISBA' 00088 CALL READ_SURF(HPROGRAM,YRECFM,CISBA_GR,IRESP) 00089 ! 00090 YRECFM='GR_SCOND' 00091 CALL READ_SURF(HPROGRAM,YRECFM,CSCOND_GR,IRESP) 00092 ! 00093 !* 3. Physiographic data fields: 00094 ! ------------------------- 00095 ! 00096 !* orographic runoff coefficient 00097 ! 00098 ALLOCATE(XRUNOFFB_GR(NDIM)) 00099 YRECFM='GR_RUNOFFB' 00100 CALL READ_SURF(HPROGRAM,YRECFM,XRUNOFFB_GR,IRESP) 00101 ! 00102 !* subgrid drainage coefficient 00103 ! 00104 ALLOCATE(XWDRAIN_GR(NDIM)) 00105 IF (KVERSION<=6) THEN 00106 XWDRAIN_GR = 0. 00107 ELSE 00108 YRECFM='GR_WDRAIN' 00109 CALL READ_SURF(HPROGRAM,YRECFM,XWDRAIN_GR,IRESP) 00110 ENDIF 00111 ! 00112 !------------------------------------------------------------------------------- 00113 !* biogenic chemical emissions 00114 ! 00115 IF (LCH_BIO_FLUX) THEN 00116 ALLOCATE(XISOPOT(NDIM)) 00117 YRECFM='EMIS_ISOPOT' 00118 CALL READ_SURF(HPROGRAM,YRECFM,XISOPOT,IRESP) 00119 ! 00120 ALLOCATE(XMONOPOT(NDIM)) 00121 YRECFM='EMIS_MONOPOT' 00122 CALL READ_SURF(HPROGRAM,YRECFM,XMONOPOT,IRESP) 00123 ELSE 00124 ALLOCATE(XISOPOT (0)) 00125 ALLOCATE(XMONOPOT(0)) 00126 END IF 00127 ! 00128 !------------------------------------------------------------------------------- 00129 ! 00130 !* 4. Physiographic data fields not to be computed by ecoclimap 00131 ! --------------------------------------------------------- 00132 ! 00133 ! 00134 !LPAR_GREENROOF = .FALSE. 00135 !IF (KVERSION>=7) THEN 00136 ! YRECFM='PAR_GREENROOF' 00137 ! CALL READ_SURF(HPROGRAM,YRECFM,LPAR_GREENROOF,IRESP) 00138 !END IF 00139 ! 00140 !IF (LPAR_GREENROOF) CALL READ_PGD_TEB_GREENROOF_PAR_n(HPROGRAM) 00141 ! 00142 CALL READ_PGD_TEB_GREENROOF_PAR_n(HPROGRAM) 00143 ! 00144 IF (LHOOK) CALL DR_HOOK('READ_PGD_TEB_GREENROOF_N',1,ZHOOK_HANDLE) 00145 ! 00146 ! 00147 !------------------------------------------------------------------------------- 00148 ! 00149 END SUBROUTINE READ_PGD_TEB_GREENROOF_n