SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
diag_surf_budgetc_ideal.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_ideal(DGL, PTSTEP, PRN, PH, PLE, PLEI, PGFLUX, &
7  pswd, pswu, plwd, plwu, pfmu, pfmv,&
8  pevap, psubl )
9 ! #########################################################################
10 !
11 !!**** *DIAG_SURF_BUDGETC_IDEAL * - Computes cumulated diagnostics in IDEAL case
12 !!
13 !! PURPOSE
14 !! -------
15 !
16 !!** METHOD
17 !! ------
18 !!
19 !! REFERENCE
20 !! ---------
21 !!
22 !!
23 !! AUTHOR
24 !! ------
25 !! P. Le Moigne
26 !!
27 !! MODIFICATIONS
28 !! -------------
29 !! Original 03/2015
30 !!------------------------------------------------------------------
31 !
33 !
34 USE yomhook ,ONLY : lhook, dr_hook
35 USE parkind1 ,ONLY : jprb
36 !
37 IMPLICIT NONE
38 !
39 !* 0.1 declarations of arguments
40 !
41 TYPE(diag_ideal_t) :: dgl
42 !
43 REAL, INTENT(IN) :: ptstep
44 REAL, DIMENSION(:), INTENT(IN) :: prn ! net radiation (W/m2)
45 REAL, DIMENSION(:), INTENT(IN) :: ph ! sensible heat flux (W/m2)
46 REAL, DIMENSION(:), INTENT(IN) :: ple ! total latent heat flux (W/m2)
47 REAL, DIMENSION(:), INTENT(IN) :: plei ! sublimation latent heat flux (W/m2)
48 REAL, DIMENSION(:), INTENT(IN) :: pgflux ! storage flux (W/m2)
49 REAL, DIMENSION(:), INTENT(IN) :: pevap ! total evaporation (kg/m2/s)
50 REAL, DIMENSION(:), INTENT(IN) :: psubl ! sublimation (kg/m2/s)
51 REAL, DIMENSION(:), INTENT(IN) :: pswd ! total incoming short wave radiation (W/m2)
52 REAL, DIMENSION(:), INTENT(IN) :: pswu ! total upward short wave radiation (W/m2)
53 REAL, DIMENSION(:), INTENT(IN) :: plwd ! Downward long wave radiation (W/m2)
54 REAL, DIMENSION(:), INTENT(IN) :: plwu ! upward long wave radiation (W/m2)
55 REAL, DIMENSION(:), INTENT(IN) :: pfmu ! zonal wind stress
56 REAL, DIMENSION(:), INTENT(IN) :: pfmv ! meridian wind stress
57 REAL(KIND=JPRB) :: zhook_handle
58 !
59 !* 0.2 declarations of local variables
60 !
61 !-------------------------------------------------------------------------------------
62 !
63 !* total incoming and outgoing SW
64 !
65 IF (lhook) CALL dr_hook('DIAG_SURF_BUDGETC_IDEAL',0,zhook_handle)
66 dgl%XSWDC(:) = dgl%XSWDC(:) + pswd(:) * ptstep
67 dgl%XSWUC(:) = dgl%XSWUC(:) + pswu(:) * ptstep
68 !
69 !*incoming outgoing LW
70 !
71 dgl%XLWDC(:) = dgl%XLWDC(:) + plwd(:) * ptstep
72 dgl%XLWUC(:) = dgl%XLWUC(:) + plwu(:) * ptstep
73 !
74 !* net radiation
75 !
76 dgl%XRNC(:) = dgl%XRNC(:) + prn(:) * ptstep
77 !
78 !* sensible heat flux
79 !
80 dgl%XHC(:) = dgl%XHC(:) + ph(:) * ptstep
81 !
82 !* latent heat flux
83 !
84 dgl%XLEC (:) = dgl%XLEC (:) + ple(:) * ptstep
85 dgl%XLEIC(:) = dgl%XLEIC(:) + plei(:) * ptstep
86 !
87 !* evaporation and sublimation (kg/m2)
88 !
89 dgl%XEVAPC(:) = dgl%XEVAPC(:) + pevap(:) * ptstep
90 dgl%XSUBLC(:) = dgl%XSUBLC(:) + psubl(:) * ptstep
91 !
92 !* storage flux
93 !
94 dgl%XGFLUXC(:) = dgl%XGFLUXC(:) + pgflux(:) * ptstep
95 !
96 !* wind stress
97 !
98 dgl%XFMUC(:) = dgl%XFMUC(:) + pfmu(:) * ptstep
99 dgl%XFMVC(:) = dgl%XFMVC(:) + pfmv(:) * ptstep
100 !
101 IF (lhook) CALL dr_hook('DIAG_SURF_BUDGETC_IDEAL',1,zhook_handle)
102 !
103 !-------------------------------------------------------------------------------------
104 !
105 END SUBROUTINE diag_surf_budgetc_ideal
subroutine diag_surf_budgetc_ideal(DGL, PTSTEP, PRN, PH, PLE, PLEI, PGFLUX, PSWD, PSWU, PLWD, PLWU, PFMU, PFMV, PEVAP, PSUBL)