SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE GET_VAR_NATURE_n(HPROGRAM,KI,PQS,PSNG,PSNV,PZ0EFF,PZ0,PZ0H,PTWSNOW) 00003 ! ###################################################################### 00004 ! 00005 !!**** *GET_VAR_NATURE_n* - routine to get variables defined only over nature 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 !! P. Le Moigne *Meteo France* 00027 !! 00028 !! MODIFICATIONS 00029 !! ------------- 00030 !! Original 02/2006 00031 ! M. Jidane 08/2008 Z0 and Z0H recovery from nature tiles 00032 ! S. Riette 06/2010 TWSNOW added 00033 !------------------------------------------------------------------------------- 00034 ! 00035 !* 0. DECLARATIONS 00036 ! ------------ 00037 ! 00038 USE MODI_GET_LUOUT 00039 USE MODD_SURF_PAR, ONLY : XUNDEF 00040 ! 00041 USE MODD_DIAG_ISBA_n, ONLY : XAVG_QS, LSURF_VARS, XAVG_Z0EFF, LCOEF, XAVG_Z0, XAVG_Z0H 00042 USE MODD_DIAG_MISC_ISBA_n, ONLY : XAVG_PSNG, XAVG_PSNV, XAVG_TWSNOW,LSURF_MISC_BUDGET 00043 ! 00044 ! 00045 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00046 USE PARKIND1 ,ONLY : JPRB 00047 ! 00048 IMPLICIT NONE 00049 ! 00050 !* 0.1 Declarations of arguments 00051 ! ------------------------- 00052 ! 00053 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM 00054 INTEGER, INTENT(IN) :: KI ! Number of points 00055 REAL, DIMENSION(KI), INTENT(OUT) :: PQS ! surface humidity 00056 REAL, DIMENSION(KI), INTENT(OUT) :: PSNG ! snow fraction over ground 00057 REAL, DIMENSION(KI), INTENT(OUT) :: PSNV ! snow fraction over vegetation 00058 REAL, DIMENSION(KI), INTENT(OUT) :: PZ0EFF ! effective roughness length (z0v+z0rel) 00059 REAL, DIMENSION(KI), INTENT(OUT) :: PZ0 ! surface roughness length 00060 REAL, DIMENSION(KI), INTENT(OUT) :: PZ0H ! surface roughness length for heat 00061 REAL, DIMENSION(KI), INTENT(OUT) :: PTWSNOW ! Snow total reservoir 00062 ! 00063 ! 00064 !* 0.2 Declarations of local variables 00065 ! ------------------------------- 00066 ! 00067 INTEGER :: ILUOUT 00068 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00069 ! 00070 !------------------------------------------------------------------------------- 00071 IF (LHOOK) CALL DR_HOOK('GET_VAR_NATURE_N',0,ZHOOK_HANDLE) 00072 CALL GET_LUOUT(HPROGRAM,ILUOUT) 00073 !------------------------------------------------------------------------------- 00074 ! 00075 IF (LSURF_VARS) THEN 00076 PQS = XAVG_QS 00077 ELSE 00078 PQS = XUNDEF 00079 ENDIF 00080 ! 00081 IF (LSURF_MISC_BUDGET) THEN 00082 PSNG = XAVG_PSNG 00083 PSNV = XAVG_PSNV 00084 PTWSNOW = XAVG_TWSNOW 00085 ELSE 00086 PSNG = XUNDEF 00087 PSNV = XUNDEF 00088 PTWSNOW = XUNDEF 00089 ENDIF 00090 ! 00091 IF (LCOEF) THEN 00092 PZ0EFF = XAVG_Z0EFF 00093 PZ0 = XAVG_Z0 00094 PZ0H = XAVG_Z0H 00095 ELSE 00096 PZ0EFF = XUNDEF 00097 PZ0 = XUNDEF 00098 PZ0H = XUNDEF 00099 ENDIF 00100 IF (LHOOK) CALL DR_HOOK('GET_VAR_NATURE_N',1,ZHOOK_HANDLE) 00101 ! 00102 !============================================================================== 00103 ! 00104 END SUBROUTINE GET_VAR_NATURE_n