SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/diag_surf_budgetc_water.F90
Go to the documentation of this file.
00001 !     #########
00002        SUBROUTINE DIAG_SURF_BUDGETC_WATER(PTSTEP, PRN, PH, PLE, PLEI, PGFLUX, &
00003                                             PSWD, PSWU, PLWD, PLWU, PFMU, PFMV  )  
00004 !     #########################################################################
00005 !
00006 !!****  *DIAG_SURF_BUDGETC_WATER * - Computes cumulated diagnostics over water
00007 !!
00008 !!    PURPOSE
00009 !!    -------
00010 !
00011 !!**  METHOD
00012 !!    ------
00013 !!
00014 !!    REFERENCE
00015 !!    ---------
00016 !!      
00017 !!
00018 !!    AUTHOR
00019 !!    ------
00020 !!     B. Decharme 
00021 !!
00022 !!    MODIFICATIONS
00023 !!    -------------
00024 !!      Original    08/2009
00025 !!------------------------------------------------------------------
00026 ! 
00027 USE MODD_DIAG_WATFLUX_n, ONLY : XRNC, XHC, XLEC, XGFLUXC, XSWDC,  &
00028                                   XSWUC, XLWDC, XLWUC, XFMUC, XFMVC,&
00029                                   XLEIC  
00030 !
00031 !
00032 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00033 USE PARKIND1  ,ONLY : JPRB
00034 !
00035 IMPLICIT NONE
00036 !
00037 !*      0.1    declarations of arguments
00038 !
00039 REAL,               INTENT(IN) :: PTSTEP    
00040 REAL, DIMENSION(:), INTENT(IN) :: PRN      ! net radiation                         (W/m2)
00041 REAL, DIMENSION(:), INTENT(IN) :: PH       ! sensible heat flux                    (W/m2)
00042 REAL, DIMENSION(:), INTENT(IN) :: PLE      ! total latent heat flux                (W/m2)
00043 REAL, DIMENSION(:), INTENT(IN) :: PLEI     ! sublimation latent heat flux          (W/m2)
00044 REAL, DIMENSION(:), INTENT(IN) :: PGFLUX   ! storage flux                          (W/m2)
00045 REAL, DIMENSION(:), INTENT(IN) :: PSWD     ! total incoming short wave radiation (W/m2)
00046 REAL, DIMENSION(:), INTENT(IN) :: PSWU     ! total upward short wave radiation (W/m2)
00047 REAL, DIMENSION(:), INTENT(IN) :: PLWD     ! Downward long wave radiation (W/m2)
00048 REAL, DIMENSION(:), INTENT(IN) :: PLWU     ! upward long wave radiation (W/m2)
00049 REAL, DIMENSION(:), INTENT(IN) :: PFMU     ! zonal wind stress
00050 REAL, DIMENSION(:), INTENT(IN) :: PFMV     ! meridian wind stress
00051 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00052 !
00053 !*      0.2    declarations of local variables
00054 !
00055 !-------------------------------------------------------------------------------------
00056 !
00057 !* total incoming and outgoing SW
00058 !
00059 IF (LHOOK) CALL DR_HOOK('DIAG_SURF_BUDGETC_WATER',0,ZHOOK_HANDLE)
00060 XSWDC(:) = XSWDC(:) + PSWD(:) * PTSTEP
00061 XSWUC(:) = XSWUC(:) + PSWU(:) * PTSTEP
00062 !
00063 !*incoming outgoing LW
00064 !
00065 XLWDC(:) = XLWDC(:) + PLWD(:) * PTSTEP
00066 XLWUC(:) = XLWUC(:) + PLWU(:) * PTSTEP
00067 !
00068 !* net radiation
00069 !
00070 XRNC(:) = XRNC(:) + PRN(:) * PTSTEP
00071 !
00072 !* sensible heat flux
00073 !
00074 XHC(:) = XHC(:) + PH(:) * PTSTEP 
00075 !
00076 !* latent heat flux
00077 !
00078 XLEC (:) = XLEC (:) + PLE (:) * PTSTEP 
00079 XLEIC(:) = XLEIC(:) + PLEI(:) * PTSTEP 
00080 !
00081 !* storage flux
00082 !
00083 XGFLUXC(:) = XGFLUXC(:) + PGFLUX(:) * PTSTEP 
00084 !
00085 !* wind stress
00086 !
00087 XFMUC(:) = XFMUC(:) + PFMU(:) * PTSTEP 
00088 !
00089 XFMVC(:) = XFMVC(:) + PFMV(:) * PTSTEP
00090 IF (LHOOK) CALL DR_HOOK('DIAG_SURF_BUDGETC_WATER',1,ZHOOK_HANDLE)
00091 !
00092 !-------------------------------------------------------------------------------------
00093 !
00094 END SUBROUTINE DIAG_SURF_BUDGETC_WATER