|
SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE SET_ROUGH(OCANOPY,HROUGH) 00003 ! ######################################################################## 00004 ! 00005 !!**** *SET_ROUGH* - routine to set default values for roughness ISBA configuration 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 01/2004 00031 !------------------------------------------------------------------------------- 00032 ! 00033 !* 0. DECLARATIONS 00034 ! ------------ 00035 ! 00036 USE MODD_SURF_PAR, ONLY : XUNDEF 00037 ! 00038 ! 00039 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00040 USE PARKIND1 ,ONLY : JPRB 00041 ! 00042 USE MODI_ABOR1_SFX 00043 ! 00044 IMPLICIT NONE 00045 ! 00046 !* 0.1 Declarations of arguments 00047 ! ------------------------- 00048 ! 00049 ! 00050 LOGICAL, INTENT(IN) :: OCANOPY ! True = SBL scheme 00051 ! False = no SBL scheme 00052 CHARACTER(LEN=4), INTENT(INOUT) :: HROUGH ! type of roughness length 00053 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00054 ! 00055 ! 00056 !* 0.2 Declarations of local variables 00057 ! ------------------------------- 00058 ! 00059 !------------------------------------------------------------------------------- 00060 ! 00061 !* default value if needed 00062 ! 00063 IF (LHOOK) CALL DR_HOOK('SET_ROUGH',0,ZHOOK_HANDLE) 00064 IF (HROUGH == "UNDE") THEN 00065 IF (OCANOPY) THEN 00066 HROUGH = "BE04" 00067 ELSE 00068 HROUGH = "Z04D" 00069 END IF 00070 END IF 00071 ! 00072 !* coherence check 00073 ! 00074 IF (OCANOPY .AND. (HROUGH=="Z01D" .OR. HROUGH=="Z04D")) THEN 00075 CALL ABOR1_SFX('If LISBA_CANOPY=T, orographic roughness cannot be computed by CROUGH="Z01D" or "Z04D"') 00076 END IF 00077 ! 00078 IF (.NOT. OCANOPY .AND. HROUGH=="BE04") THEN 00079 CALL ABOR1_SFX('If LISBA_CANOPY=F, orographic roughness cannot be computed by CROUGH="BE04"') 00080 END IF 00081 IF (LHOOK) CALL DR_HOOK('SET_ROUGH',1,ZHOOK_HANDLE) 00082 ! 00083 !------------------------------------------------------------------------------- 00084 ! 00085 END SUBROUTINE SET_ROUGH
1.8.0