SURFEX v7.3
General documentation of Surfex
|
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