SURFEX v8.1
General documentation of Surfex
get_fluxn.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 get_flux_n (DGO, D, &
7  HPROGRAM,KI,PRN,PH,PLE,PLEI,PGFLUX,PT2M,PQ2M, &
8  PHU2M,PZON10M,PMER10M,PSURFLWNET,PSURFSWNET,PCD,&
9  PEVAP, PSUBL )
10 ! ########################################
11 !
12 !!**** *GET_FLUX_n* - routine to get some surface fields
13 !!
14 !! PURPOSE
15 !! -------
16 !!
17 !!** METHOD
18 !! ------
19 !!
20 !! EXTERNAL
21 !! --------
22 !!
23 !!
24 !! IMPLICIT ARGUMENTS
25 !! ------------------
26 !!
27 !! REFERENCE
28 !! ---------
29 !!
30 !!
31 !! AUTHOR
32 !! ------
33 !! V. Masson *Meteo France*
34 !!
35 !! MODIFICATIONS
36 !! -------------
37 !! Original 01/2004
38 ! B. decharme 04/2013 : Add EVAP and SUBL diag
39 !-------------------------------------------------------------------------------
40 !
41 !* 0. DECLARATIONS
42 ! ------------
43 !
44 !
46 !
47 USE modi_get_luout
48 USE modd_surf_par, ONLY : xundef
49 !
50 !
51 USE yomhook ,ONLY : lhook, dr_hook
52 USE parkind1 ,ONLY : jprb
53 !
54 IMPLICIT NONE
55 !
56 !* 0.1 Declarations of arguments
57 ! -------------------------
58 !
59 !
60 TYPE(diag_options_t), INTENT(IN) :: DGO
61 TYPE(diag_t), INTENT(INOUT) :: D
62 !
63  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM
64 INTEGER, INTENT(IN) :: KI ! Number of points
65 REAL, DIMENSION(KI), INTENT(OUT) :: PRN ! Net radiation at surface (W/m2)
66 REAL, DIMENSION(KI), INTENT(OUT) :: PH ! Sensible heat flux (W/m2)
67 REAL, DIMENSION(KI), INTENT(OUT) :: PLE ! Total Latent heat flux (W/m2)
68 REAL, DIMENSION(KI), INTENT(OUT) :: PLEI ! Solid Latent heat flux (W/m2)
69 REAL, DIMENSION(KI), INTENT(OUT) :: PGFLUX ! Net soil-vegetation flux (W/m2)
70 REAL, DIMENSION(KI), INTENT(OUT) :: PT2M ! Air temperature at 2 meters (K)
71 REAL, DIMENSION(KI), INTENT(OUT) :: PQ2M ! Air humidity at 2 meters (kg/kg)
72 REAL, DIMENSION(KI), INTENT(OUT) :: PHU2M ! Air relative humidity at 2 meters (-)
73 REAL, DIMENSION(KI), INTENT(OUT) :: PZON10M ! zonal Wind at 10 meters (m/s)
74 REAL, DIMENSION(KI), INTENT(OUT) :: PMER10M ! meridian Wind at 10 meters (m/s)
75 REAL, DIMENSION(KI), INTENT(OUT) :: PSURFLWNET ! LW net at the surface
76 REAL, DIMENSION(KI), INTENT(OUT) :: PSURFSWNET ! SW net at the surface
77 REAL, DIMENSION(KI), INTENT(OUT) :: PCD ! exchange coeficient at the surface
78 REAL, DIMENSION(KI), INTENT(OUT) :: PEVAP ! Total evapotranspiration (kg/m2/s)
79 REAL, DIMENSION(KI), INTENT(OUT) :: PSUBL ! Sublimation (kg/m2/s)
80 !
81 !
82 !* 0.2 Declarations of local variables
83 ! -------------------------------
84 !
85 INTEGER :: ILUOUT
86 REAL(KIND=JPRB) :: ZHOOK_HANDLE
87 !
88 !-------------------------------------------------------------------------------
89 IF (lhook) CALL dr_hook('GET_FLUX_N',0,zhook_handle)
90  CALL get_luout(hprogram,iluout)
91 !-------------------------------------------------------------------------------
92 !
93 IF (dgo%LSURF_BUDGET) THEN
94  prn = d%XRN
95  ph = d%XH
96  ple = d%XLE
97  plei = d%XLEI
98  pgflux = d%XGFLUX
99  psurflwnet= d%XLWD-d%XLWU
100  psurfswnet= d%XSWD-d%XSWU
101  pevap = d%XEVAP
102  psubl = d%XSUBL
103  ELSE
104  prn = xundef
105  ph = xundef
106  ple = xundef
107  plei = xundef
108  pgflux = xundef
109  psurflwnet= xundef
110  psurfswnet= xundef
111  pevap = xundef
112  psubl = xundef
113 ENDIF
114 !
115 IF (dgo%N2M>0) THEN
116  pt2m = d%XT2M
117  pq2m = d%XQ2M
118  phu2m = d%XHU2M
119  pzon10m = d%XZON10M
120  pmer10m = d%XMER10M
121  ELSE
122  pt2m = xundef
123  pq2m = xundef
124  phu2m = xundef
125  pzon10m = xundef
126  pmer10m = xundef
127 ENDIF
128 !
129 IF (dgo%LCOEF) THEN
130  pcd = d%XCD
131 ELSE
132  pcd = xundef
133 ENDIF
134 !
135 IF (lhook) CALL dr_hook('GET_FLUX_N',1,zhook_handle)
136 !==============================================================================
137 !
138 END SUBROUTINE get_flux_n
subroutine get_flux_n(DGO, D, HPROGRAM, KI, PRN, PH, PLE, PLEI, PGFLUX, PT2M, PQ2
Definition: get_fluxn.F90:8
real, parameter xundef
integer, parameter jprb
Definition: parkind1.F90:32
subroutine get_luout(HPROGRAM, KLUOUT)
Definition: get_luout.F90:7
logical lhook
Definition: yomhook.F90:15