SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE PREP_TEB_GREENROOF_UNIF(KLUOUT,HSURF,PFIELD) 00003 ! ################################################################################# 00004 ! 00005 !!**** *PREP_TEB_GREENROOF_UNIF* - prepares ISBA field from prescribed values 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 ! 00010 !!** METHOD 00011 !! ------ 00012 !! 00013 !! Based on "prep_teb_garden_unif" 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_DATA_COVER_PAR, ONLY : NVEGTYPE 00031 USE MODD_SURF_PAR, ONLY : XUNDEF 00032 USE MODD_PREP_TEB_GREENROOF,ONLY : XHUG_SURF, XHUG_ROOT, XHUG_DEEP, & 00033 XHUGI_SURF, XHUGI_ROOT, XHUGI_DEEP, & 00034 XTG_SURF, XTG_ROOT, XTG_DEEP, & 00035 XWR_DEF 00036 ! 00037 ! 00038 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00039 USE PARKIND1 ,ONLY : JPRB 00040 ! 00041 IMPLICIT NONE 00042 ! 00043 !* 0.1 declarations of arguments 00044 ! 00045 INTEGER, INTENT(IN) :: KLUOUT ! output listing logical unit 00046 CHARACTER(LEN=7), INTENT(IN) :: HSURF ! type of field 00047 REAL, POINTER, DIMENSION(:,:,:) :: PFIELD ! field to interpolate horizontally 00048 ! 00049 !* 0.2 declarations of local variables 00050 ! 00051 INTEGER :: JV ! loop counter 00052 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00053 ! 00054 !------------------------------------------------------------------------------------- 00055 ! 00056 IF (LHOOK) CALL DR_HOOK('PREP_TEB_GREENROOF_UNIF',0,ZHOOK_HANDLE) 00057 SELECT CASE(HSURF) 00058 ! 00059 !* 3.0 Orography 00060 ! 00061 CASE('ZS ') 00062 ALLOCATE(PFIELD(1,1,1)) 00063 PFIELD = 0. 00064 00065 ! 00066 !* 3.1 Profile of soil relative humidity 00067 ! 00068 CASE('WG ') 00069 ALLOCATE(PFIELD(1,3,NVEGTYPE)) 00070 DO JV=1,NVEGTYPE 00071 PFIELD(:,1,JV) = XHUG_SURF 00072 PFIELD(:,2,JV) = XHUG_ROOT 00073 PFIELD(:,3,JV) = XHUG_DEEP 00074 END DO 00075 00076 !* 3.2 Profile of soil humidity for ice 00077 00078 CASE('WGI ') 00079 ALLOCATE(PFIELD(1,3,NVEGTYPE)) 00080 DO JV=1,NVEGTYPE 00081 PFIELD(:,1,JV) = XHUGI_SURF 00082 PFIELD(:,2,JV) = XHUGI_ROOT 00083 PFIELD(:,3,JV) = XHUGI_DEEP 00084 END DO 00085 00086 !* 3.3 Profile of temperatures 00087 00088 CASE('TG ') 00089 ALLOCATE(PFIELD(1,3,NVEGTYPE)) 00090 DO JV=1,NVEGTYPE 00091 PFIELD(:,1,JV) = XTG_SURF 00092 PFIELD(:,2,JV) = XTG_ROOT 00093 PFIELD(:,3,JV) = XTG_DEEP 00094 END DO 00095 00096 !* 3.4 Other quantities 00097 00098 CASE('WR ') 00099 ALLOCATE(PFIELD(1,1,NVEGTYPE)) 00100 PFIELD = XWR_DEF 00101 00102 CASE('LAI ') 00103 ALLOCATE(PFIELD(1,1,NVEGTYPE)) 00104 PFIELD = XUNDEF 00105 00106 END SELECT 00107 ! 00108 !* 4. Interpolation method 00109 ! -------------------- 00110 ! 00111 CINTERP_TYPE='UNIF ' 00112 IF (LHOOK) CALL DR_HOOK('PREP_TEB_GREENROOF_UNIF',1,ZHOOK_HANDLE) 00113 ! 00114 !------------------------------------------------------------------------------------- 00115 END SUBROUTINE PREP_TEB_GREENROOF_UNIF