SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE PREP_TEB_GREENROOF_ASCLLV(HPROGRAM,HSURF,KLUOUT,PFIELD) 00003 ! ################################################################################# 00004 ! 00005 !!**** *PREP_TEB_GREENROOF_ASCLLV* - prepares ISBA field from prescribed values 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 ! 00010 !!** METHOD 00011 !! ------ 00012 !! 00013 !! Based on "prep_teb_garden_ASCLLV" 00014 !! 00015 !! REFERENCE 00016 !! --------- 00017 !! 00018 !! 00019 !! AUTHOR 00020 !! ------ 00021 !! A. Lemonsu & C. de Munck 00022 !! 00023 !! MODIFICATIONS 00024 !! ------------- 00025 !! Original 07/2011 00026 !!------------------------------------------------------------------ 00027 ! 00028 ! 00029 USE MODD_PREP, ONLY : CINTERP_TYPE 00030 USE MODD_PGD_GRID, ONLY : NL,LLATLONMASK,CGRID,XGRID_PAR,NGRID_PAR 00031 USE MODD_PGDWORK, ONLY : CATYPE 00032 USE MODD_DATA_COVER_PAR, ONLY : NVEGTYPE 00033 USE MODD_SURF_PAR, ONLY : XUNDEF 00034 USE MODD_PREP_TEB_GREENROOF,ONLY : CTYPE_HUG , CTYPE_TG , & 00035 CFILE_HUG_SURF, CFILE_TG_SURF, & 00036 CFILE_HUG_ROOT, CFILE_TG_ROOT, & 00037 CFILE_HUG_DEEP, CFILE_TG_DEEP 00038 USE MODI_PGD_FIELD 00039 USE MODI_GET_LATLONMASK_n 00040 ! 00041 ! 00042 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00043 USE PARKIND1 ,ONLY : JPRB 00044 ! 00045 USE MODI_GET_TYPE_DIM_n 00046 ! 00047 IMPLICIT NONE 00048 ! 00049 !* 0.1 declarations of arguments 00050 ! 00051 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling surf. schemes 00052 CHARACTER(LEN=7), INTENT(IN) :: HSURF ! type of field 00053 INTEGER, INTENT(IN) :: KLUOUT ! logical unit of output listing 00054 REAL, POINTER, DIMENSION(:,:,:) :: PFIELD ! field to interpolate horizontally 00055 ! 00056 !* 0.2 declarations of local variables 00057 ! 00058 INTEGER :: JV ! loop counter 00059 INTEGER :: JLAYER 00060 INTEGER :: IL 00061 ! 00062 REAL, ALLOCATABLE, DIMENSION(:,:) :: ZFIELD 00063 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00064 ! 00065 !------------------------------------------------------------------------------------- 00066 ! 00067 IF (LHOOK) CALL DR_HOOK('PREP_TEB_GREENROOF_ASCLLV',0,ZHOOK_HANDLE) 00068 CATYPE = 'ARI' 00069 ! 00070 !* 1. get full dimension of grid 00071 ! 00072 CALL GET_TYPE_DIM_n('FULL ',NL) 00073 ! 00074 !* 2. get nature dimension 00075 ! 00076 CALL GET_TYPE_DIM_n('TOWN ',IL) 00077 ! 00078 ALLOCATE(ZFIELD(IL,2)) 00079 ! 00080 !* 3. get grid informations known over full grid 00081 ! 00082 CALL GET_LATLONMASK_n(LLATLONMASK,CGRID,XGRID_PAR,NGRID_PAR) 00083 ! 00084 ! 00085 SELECT CASE(HSURF) 00086 ! 00087 ! 00088 !* 4. Profile of soil relative humidity 00089 ! 00090 CASE('WG ') 00091 00092 CALL PGD_FIELD(HPROGRAM,'HUG_SURF: relative humidity','TWN',CFILE_HUG_SURF, & 00093 CTYPE_HUG,XUNDEF,ZFIELD(:,1)) 00094 CALL PGD_FIELD(HPROGRAM,'HUG_ROOT: relative humidity','TWN',CFILE_HUG_ROOT, & 00095 CTYPE_HUG,XUNDEF,ZFIELD(:,2)) 00096 CALL PGD_FIELD(HPROGRAM,'HUG_DEEP: relative humidity','TWN',CFILE_HUG_DEEP, & 00097 CTYPE_HUG,XUNDEF,ZFIELD(:,3)) 00098 00099 ALLOCATE(PFIELD(IL,3,NVEGTYPE)) 00100 DO JV=1,NVEGTYPE 00101 PFIELD(:,1,JV) = ZFIELD(:,1) 00102 PFIELD(:,2,JV) = ZFIELD(:,2) 00103 PFIELD(:,3,JV) = ZFIELD(:,3) 00104 END DO 00105 00106 !* 5. Profile of temperatures 00107 00108 CASE('TG ') 00109 00110 CALL PGD_FIELD(HPROGRAM,'TG_SURF: temperature','TWN',CFILE_TG_SURF, & 00111 CTYPE_TG,XUNDEF,ZFIELD(:,1)) 00112 CALL PGD_FIELD(HPROGRAM,'TG_ROOT: temperature','TWN',CFILE_TG_ROOT, & 00113 CTYPE_TG,XUNDEF,ZFIELD(:,2)) 00114 CALL PGD_FIELD(HPROGRAM,'TG_DEEP: temperature','TWN',CFILE_TG_DEEP, & 00115 CTYPE_TG,XUNDEF,ZFIELD(:,3)) 00116 00117 ALLOCATE(PFIELD(IL,3,NVEGTYPE)) 00118 DO JV=1,NVEGTYPE 00119 PFIELD(:,1,JV) = ZFIELD(:,1) 00120 PFIELD(:,2,JV) = ZFIELD(:,2) 00121 PFIELD(:,3,JV) = ZFIELD(:,3) 00122 END DO 00123 00124 END SELECT 00125 ! 00126 !* 6. Interpolation method 00127 ! -------------------- 00128 ! 00129 CINTERP_TYPE='NONE ' 00130 DEALLOCATE(ZFIELD) 00131 IF (LHOOK) CALL DR_HOOK('PREP_TEB_GREENROOF_ASCLLV',1,ZHOOK_HANDLE) 00132 ! 00133 !------------------------------------------------------------------------------------- 00134 END SUBROUTINE PREP_TEB_GREENROOF_ASCLLV