SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE GARDEN_SOIL_DEPTH(HNVEG,HLVEG,HHVEG,PNVEG,PLVEG,PHVEG,PDG) 00003 ! ######################################### 00004 ! 00005 !!**** *GARDEN_SOIL_DEPTH* - routine to initialise garden soil depth from data 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 10/2011 00031 !------------------------------------------------------------------------------- 00032 ! 00033 !* 0. DECLARATIONS 00034 ! ------------ 00035 ! 00036 ! 00037 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00038 USE PARKIND1 ,ONLY : JPRB 00039 ! 00040 IMPLICIT NONE 00041 ! 00042 !* 0.1 Declarations of arguments 00043 ! ------------------------- 00044 ! 00045 CHARACTER(LEN=3) :: HNVEG ! type of no vegetation 00046 CHARACTER(LEN=3) :: HLVEG ! type of low vegetation 00047 CHARACTER(LEN=3) :: HHVEG ! type of high vegetation 00048 REAL, DIMENSION(:), INTENT(IN) :: PNVEG ! fraction of no vegetation 00049 REAL, DIMENSION(:), INTENT(IN) :: PLVEG ! fraction of low vegetation 00050 REAL, DIMENSION(:), INTENT(IN) :: PHVEG ! fraction of high vegetation 00051 REAL, DIMENSION(:,:,:), INTENT(OUT):: PDG ! soil depth 00052 ! 00053 !* 0.2 Declarations of local variables 00054 ! ------------------------------- 00055 ! 00056 REAL, DIMENSION(SIZE(PDG,1),3,3) :: ZDATA_DG 00057 INTEGER :: JL 00058 ! 00059 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00060 ! 00061 !------------------------------------------------------------------------------- 00062 ! 00063 IF (LHOOK) CALL DR_HOOK('GARDEN_SOIL_DEPTH',0,ZHOOK_HANDLE) 00064 00065 ZDATA_DG(:,1,:) = 0.01 00066 ZDATA_DG(:,2,:) = 1.50 00067 ZDATA_DG(:,3,:) = 2.00 00068 IF(HHVEG=='TREE') ZDATA_DG(:,2,1)= 2.0 00069 IF(HHVEG=='TREE') ZDATA_DG(:,3,1)= 3.0 00070 IF(HHVEG=='CONI') ZDATA_DG(:,2,1)= 2.0 00071 IF(HHVEG=='CONI') ZDATA_DG(:,3,1)= 3.0 00072 IF(HHVEG=='EVER') ZDATA_DG(:,2,1)= 2.0 00073 IF(HHVEG=='EVER') ZDATA_DG(:,3,1)= 3.0 00074 IF(HNVEG=='NO ') ZDATA_DG(:,2,3)= 0.5 00075 IF(HNVEG=='NO ') ZDATA_DG(:,3,3)= 1.0 00076 IF(HNVEG=='ROCK') ZDATA_DG(:,2,3)= 0.5 00077 IF(HNVEG=='ROCK') ZDATA_DG(:,3,3)= 1.0 00078 IF(HNVEG=='SNOW') ZDATA_DG(:,2,3)= 0.5 00079 IF(HNVEG=='SNOW') ZDATA_DG(:,3,3)= 1.0 00080 DO JL=1,3 00081 PDG(:,JL,1) = ZDATA_DG(:,JL,1)*PHVEG(:) & 00082 + ZDATA_DG(:,JL,2)*PLVEG(:) & 00083 + ZDATA_DG(:,JL,3)*PNVEG(:) 00084 END DO 00085 00086 IF (LHOOK) CALL DR_HOOK('GARDEN_SOIL_DEPTH',1,ZHOOK_HANDLE) 00087 ! 00088 ! 00089 !------------------------------------------------------------------------------- 00090 ! 00091 END SUBROUTINE GARDEN_SOIL_DEPTH