SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/diag_idealn.F90
Go to the documentation of this file.
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