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