SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
diag_surf_budgetc_flake.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########
6  SUBROUTINE diag_surf_budgetc_flake (DGF, &
7  ptstep, prn, ph, ple, plei, pgflux, &
8  pswd, pswu, plwd, plwu, pfmu, pfmv,&
9  pevap, psubl )
10 ! #########################################################################
11 !
12 !!**** *DIAG_SURF_BUDGETC_FLAKE * - Computes cumulated diagnostics over water
13 !!
14 !! PURPOSE
15 !! -------
16 !
17 !!** METHOD
18 !! ------
19 !!
20 !! REFERENCE
21 !! ---------
22 !!
23 !!
24 !! AUTHOR
25 !! ------
26 !! B. Decharme
27 !!
28 !! MODIFICATIONS
29 !! -------------
30 !! Original 08/2009
31 !!------------------------------------------------------------------
32 !
33 !
34 !
35 !
37 !
38 USE yomhook ,ONLY : lhook, dr_hook
39 USE parkind1 ,ONLY : jprb
40 !
41 IMPLICIT NONE
42 !
43 !* 0.1 declarations of arguments
44 !
45 !
46 TYPE(diag_flake_t), INTENT(INOUT) :: dgf
47 !
48 REAL, INTENT(IN) :: ptstep
49 REAL, DIMENSION(:), INTENT(IN) :: prn ! net radiation (W/m2)
50 REAL, DIMENSION(:), INTENT(IN) :: ph ! sensible heat flux (W/m2)
51 REAL, DIMENSION(:), INTENT(IN) :: ple ! total latent heat flux (W/m2)
52 REAL, DIMENSION(:), INTENT(IN) :: plei ! sublimation latent heat flux (W/m2)
53 REAL, DIMENSION(:), INTENT(IN) :: pgflux ! storage flux (W/m2)
54 REAL, DIMENSION(:), INTENT(IN) :: pevap ! total evaporation (kg/m2/s)
55 REAL, DIMENSION(:), INTENT(IN) :: psubl ! sublimation (kg/m2/s)
56 REAL, DIMENSION(:), INTENT(IN) :: pswd ! total incoming short wave radiation (W/m2)
57 REAL, DIMENSION(:), INTENT(IN) :: pswu ! total upward short wave radiation (W/m2)
58 REAL, DIMENSION(:), INTENT(IN) :: plwd ! Downward long wave radiation (W/m2)
59 REAL, DIMENSION(:), INTENT(IN) :: plwu ! upward long wave radiation (W/m2)
60 REAL, DIMENSION(:), INTENT(IN) :: pfmu ! zonal wind stress
61 REAL, DIMENSION(:), INTENT(IN) :: pfmv ! meridian wind stress
62 REAL(KIND=JPRB) :: zhook_handle
63 !
64 !* 0.2 declarations of local variables
65 !
66 !-------------------------------------------------------------------------------------
67 !
68 !* total incoming and outgoing SW
69 !
70 IF (lhook) CALL dr_hook('DIAG_SURF_BUDGETC_FLAKE',0,zhook_handle)
71 dgf%XSWDC(:) = dgf%XSWDC(:) + pswd(:) * ptstep
72 dgf%XSWUC(:) = dgf%XSWUC(:) + pswu(:) * ptstep
73 !
74 !*incoming outgoing LW
75 !
76 dgf%XLWDC(:) = dgf%XLWDC(:) + plwd(:) * ptstep
77 dgf%XLWUC(:) = dgf%XLWUC(:) + plwu(:) * ptstep
78 !
79 !* net radiation
80 !
81 dgf%XRNC(:) = dgf%XRNC(:) + prn(:) * ptstep
82 !
83 !* sensible heat flux
84 !
85 dgf%XHC(:) = dgf%XHC(:) + ph(:) * ptstep
86 !
87 !* latent heat flux
88 !
89 dgf%XLEC (:) = dgf%XLEC (:) + ple(:) * ptstep
90 dgf%XLEIC(:) = dgf%XLEIC(:) + plei(:) * ptstep
91 !
92 !* evaporation and sublimation (kg/m2)
93 !
94 dgf%XEVAPC(:) = dgf%XEVAPC(:) + pevap(:) * ptstep
95 dgf%XSUBLC(:) = dgf%XSUBLC(:) + psubl(:) * ptstep
96 !
97 !* storage flux
98 !
99 dgf%XGFLUXC(:) = dgf%XGFLUXC(:) + pgflux(:) * ptstep
100 !
101 !* wind stress
102 !
103 dgf%XFMUC(:) = dgf%XFMUC(:) + pfmu(:) * ptstep
104 dgf%XFMVC(:) = dgf%XFMVC(:) + pfmv(:) * ptstep
105 !
106 IF (lhook) CALL dr_hook('DIAG_SURF_BUDGETC_FLAKE',1,zhook_handle)
107 !
108 !-------------------------------------------------------------------------------------
109 !
110 END SUBROUTINE diag_surf_budgetc_flake
subroutine diag_surf_budgetc_flake(DGF, PTSTEP, PRN, PH, PLE, PLEI, PGFLUX, PSWD, PSWU, PLWD, PLWU, PFMU, PFMV, PEVAP, PSUBL)