|
SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE DIAG_IDEAL_n(HPROGRAM, PQS, PZ0, PZ0H, PH, PLE, PRN, PGFLUX) 00003 ! ############################################################################### 00004 ! 00005 !!**** *DIAG_IDEAL_n * - Stores IDEAL_n diagnostics 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 ! 00010 !!** METHOD 00011 !! ------ 00012 !! 00013 !! REFERENCE 00014 !! --------- 00015 !! 00016 !! 00017 !! AUTHOR 00018 !! ------ 00019 !! P. Le Moigne 00020 !! 00021 !! MODIFICATIONS 00022 !! ------------- 00023 !! Original 04/2009 00024 !!------------------------------------------------------------------ 00025 ! 00026 00027 ! 00028 USE MODD_SURF_PAR, ONLY : XUNDEF 00029 USE MODD_DIAG_IDEAL_n, ONLY : LSURF_BUDGET, LCOEF, LSURF_VARS, & 00030 XQS, XZ0, XZ0H, XH, XLE, XRN, XGFLUX 00031 ! 00032 ! 00033 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00034 USE PARKIND1 ,ONLY : JPRB 00035 ! 00036 IMPLICIT NONE 00037 ! 00038 !* 0.1 declarations of arguments 00039 ! 00040 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling surf. schemes 00041 ! 00042 REAL, DIMENSION(:), INTENT(OUT) :: PQS 00043 REAL, DIMENSION(:), INTENT(OUT) :: PZ0 ! rough. length wind (m) 00044 REAL, DIMENSION(:), INTENT(OUT) :: PZ0H ! rough. length heat (m) 00045 REAL, DIMENSION(:), INTENT(OUT) :: PH ! Sensible heat flux (W/m2) 00046 REAL, DIMENSION(:), INTENT(OUT) :: PLE ! Latent heat flux (W/m2) 00047 REAL, DIMENSION(:), INTENT(OUT) :: PRN ! net flux (W/m2) 00048 REAL, DIMENSION(:), INTENT(OUT) :: PGFLUX ! net flux (W/m2) 00049 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00050 ! 00051 ! 00052 !* 0.2 declarations of local variables 00053 ! 00054 !------------------------------------------------------------------------------------- 00055 ! 00056 IF (LHOOK) CALL DR_HOOK('DIAG_IDEAL_N',0,ZHOOK_HANDLE) 00057 ! 00058 IF (LSURF_BUDGET) THEN 00059 PH = XH 00060 PLE = XLE 00061 PRN = XRN 00062 PGFLUX = XGFLUX 00063 END IF 00064 ! 00065 IF (LCOEF) THEN 00066 PZ0 = XZ0 00067 PZ0H = XZ0H 00068 ENDIF 00069 ! 00070 IF (LSURF_VARS) THEN 00071 PQS = XQS 00072 ENDIF 00073 ! 00074 IF (LHOOK) CALL DR_HOOK('DIAG_IDEAL_N',1,ZHOOK_HANDLE) 00075 ! 00076 !------------------------------------------------------------------------------------- 00077 ! 00078 END SUBROUTINE DIAG_IDEAL_n
1.8.0