SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 FUNCTION WIND_THRESHOLD(PWIND,PUREF) RESULT(PWIND_NEW) 00003 ! ############################################################################ 00004 ! 00005 !!**** *WIND_THRESHOLD* 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 ! 00010 ! Set a minimum value to the wind for exchange coefficient computations. 00011 ! This minimum value depends on the forcing height 00012 ! 00013 !! AUTHOR 00014 !! ------ 00015 !! 00016 !! V. Masson * Meteo-France * 00017 !! 00018 !! MODIFICATIONS 00019 !! ------------- 00020 !! Original 09/2007 00021 !------------------------------------------------------------------------------- 00022 ! 00023 USE MODD_SURF_ATM, ONLY: XCISMIN, XVMODMIN, LALDTHRES 00024 ! 00025 !* 0. DECLARATIONS 00026 ! ------------ 00027 ! 00028 ! 00029 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00030 USE PARKIND1 ,ONLY : JPRB 00031 ! 00032 IMPLICIT NONE 00033 ! 00034 !* 0.1 declarations of arguments 00035 ! 00036 ! 00037 REAL, DIMENSION(:), INTENT(IN) :: PWIND ! wind 00038 REAL, DIMENSION(:), INTENT(IN) :: PUREF ! forcing level 00039 ! 00040 REAL, DIMENSION(SIZE(PWIND)) :: PWIND_NEW ! modified wind 00041 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00042 ! 00043 ! 00044 ! 00045 !* 0.2 declarations of local variables 00046 ! 00047 !------------------------------------------------------------------------------- 00048 ! 00049 ! wind gradient 00050 ! 00051 IF (LHOOK) CALL DR_HOOK('WIND_THRESHOLD',0,ZHOOK_HANDLE) 00052 IF (.NOT.LALDTHRES) THEN 00053 ! 00054 ! minimum value for exchange coefficients computations : 1m/s / 10m 00055 PWIND_NEW = MAX(PWIND , 0.1 * MIN(10.,PUREF) ) 00056 ELSE 00057 ! minimum value for exchange coefficients computations : 1m/s / 10m 00058 PWIND_NEW = MAX( XVMODMIN, SQRT( PWIND**2 + (XCISMIN*PUREF)**2 ) ) 00059 ENDIF 00060 IF (LHOOK) CALL DR_HOOK('WIND_THRESHOLD',1,ZHOOK_HANDLE) 00061 ! 00062 !------------------------------------------------------------------------------- 00063 ! 00064 END FUNCTION WIND_THRESHOLD