SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/diag_tebn.F90
Go to the documentation of this file.
00001 !     #########
00002 SUBROUTINE DIAG_TEB_n(HPROGRAM,                                               &
00003                         PRN, PH, PLE, PGFLUX, PRI, PCD, PCH, PCE, PQS,          &
00004                         PZ0, PZ0H, PT2M, PQ2M, PHU2M, PZON10M, PMER10M,         &
00005                         PSWD, PSWU, PLWD, PLWU, PSWBD, PSWBU, PFMU, PFMV        )  
00006 !     ###############################################################################
00007 !
00008 !!****  *DIAG_TEB_n * - diagnostics for TEB
00009 !!
00010 !!    PURPOSE
00011 !!    -------
00012 !
00013 !!**  METHOD
00014 !!    ------
00015 !!
00016 !!    REFERENCE
00017 !!    ---------
00018 !!      
00019 !!
00020 !!    AUTHOR
00021 !!    ------
00022 !!     V. Masson 
00023 !!
00024 !!    MODIFICATIONS
00025 !!    -------------
00026 !!      Original    01/2004
00027 !!------------------------------------------------------------------
00028 !
00029 !
00030 USE MODD_SURF_PAR,   ONLY : XUNDEF
00031 USE MODD_TEB_n,      ONLY : TTIME
00032 USE MODD_DIAG_TEB_n, ONLY : N2M, LSURF_BUDGET, LCOEF, LSURF_VARS,              &
00033                               XRN, XH, XLE, XGFLUX, XRI, XCD, XCH, XCE, XQS,   &
00034                               XZ0, XZ0H, XT2M, XQ2M, XHU2M, XZON10M, XMER10M,  &
00035                               XSWD, XSWU, XSWBD, XSWBU, XLWD, XLWU, XFMU, XFMV  
00036 ! 
00037 !
00038 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00039 USE PARKIND1  ,ONLY : JPRB
00040 !
00041 IMPLICIT NONE
00042 !
00043 !*      0.1    declarations of arguments
00044 !
00045  CHARACTER(LEN=6),   INTENT(IN)  :: HPROGRAM ! program calling surf. schemes
00046 !
00047 REAL, DIMENSION(:), INTENT(OUT) :: PRN      ! Net radiation       (W/m2)
00048 REAL, DIMENSION(:), INTENT(OUT) :: PH       ! Sensible heat flux  (W/m2)
00049 REAL, DIMENSION(:), INTENT(OUT) :: PLE      ! Latent heat flux    (W/m2)
00050 REAL, DIMENSION(:), INTENT(OUT) :: PGFLUX   ! Storage flux        (W/m2)
00051 REAL, DIMENSION(:), INTENT(OUT) :: PRI      ! Richardson number   (-)
00052 REAL, DIMENSION(:), INTENT(OUT) :: PCD      ! drag coefficient    (W/s2)
00053 REAL, DIMENSION(:), INTENT(OUT) :: PCH      ! transf. coef heat   (W/s)
00054 REAL, DIMENSION(:), INTENT(OUT) :: PCE      ! transf. coef vapor  (W/s/K)
00055 REAL, DIMENSION(:), INTENT(OUT) :: PZ0      ! rough. length wind  (m)
00056 REAL, DIMENSION(:), INTENT(OUT) :: PQS
00057 REAL, DIMENSION(:), INTENT(OUT) :: PZ0H     ! rough. length heat  (m)
00058 REAL, DIMENSION(:), INTENT(OUT) :: PT2M     ! temperature at 2m   (K)
00059 REAL, DIMENSION(:), INTENT(OUT) :: PQ2M     ! humidity at 2m      (kg/kg)
00060 REAL, DIMENSION(:), INTENT(OUT) :: PHU2M    ! relative humidity at 2m (-)
00061 REAL, DIMENSION(:), INTENT(OUT) :: PZON10M  ! zonal wind at 10m   (m/s)
00062 REAL, DIMENSION(:), INTENT(OUT) :: PMER10M  ! meridian wind at 10m(m/s)
00063 REAL, DIMENSION(:), INTENT(OUT) :: PSWD     ! incoming short-wave radiation (W/m2)
00064 REAL, DIMENSION(:), INTENT(OUT) :: PSWU     ! upward short-wave radiation (W/m2)
00065 REAL, DIMENSION(:), INTENT(OUT) :: PLWD     ! incoming long-wave radiation (W/m2)
00066 REAL, DIMENSION(:), INTENT(OUT) :: PLWU     ! upward long-wave radiation (W/m2)
00067 REAL, DIMENSION(:,:), INTENT(OUT) :: PSWBD  ! incoming short-wave radiation by spectral band (W/m2)
00068 REAL, DIMENSION(:,:), INTENT(OUT) :: PSWBU  ! upward short-wave radiation by spectral band (W/m2)
00069 REAL, DIMENSION(:), INTENT(OUT) :: PFMU     ! zonal momentum flux (m2/s2)
00070 REAL, DIMENSION(:), INTENT(OUT) :: PFMV     ! meridian momentum flux (m2/s2)
00071 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00072 !
00073 !
00074 !*      0.2    declarations of local variables
00075 !
00076 !-------------------------------------------------------------------------------------
00077 !
00078 IF (LHOOK) CALL DR_HOOK('DIAG_TEB_N',0,ZHOOK_HANDLE)
00079 IF (LSURF_BUDGET) THEN
00080   PRN      = XRN
00081   PH       = XH
00082   PLE      = XLE
00083   PGFLUX   = XGFLUX
00084   PSWD     = XSWD
00085   PSWU     = XSWU
00086   PLWD     = XLWD
00087   PLWU     = XLWU
00088   PSWBD    = XSWBD
00089   PSWBU    = XSWBU
00090   PFMU     = XFMU
00091   PFMV     = XFMV
00092 END IF
00093 !
00094 IF (N2M>=1) THEN
00095   PRI      = XRI
00096   PT2M     = XT2M
00097   PQ2M     = XQ2M
00098   PHU2M    = XHU2M
00099   PZON10M  = XZON10M
00100   PMER10M  = XMER10M
00101 END IF
00102 !
00103 IF (LCOEF) THEN
00104   PCD      = XCD
00105   PCH      = XCH
00106   PCE      = XCE
00107   PZ0      = XZ0
00108   PZ0H     = XZ0H
00109 END IF
00110 !
00111 IF (LSURF_VARS) THEN
00112   PQS = XQS
00113 ENDIF
00114 !
00115 IF (LHOOK) CALL DR_HOOK('DIAG_TEB_N',1,ZHOOK_HANDLE)
00116 !
00117 !-------------------------------------------------------------------------------------
00118 !
00119 END SUBROUTINE DIAG_TEB_n