SURFEX v8.1
General documentation of Surfex
coupling_seaflux_sbln.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 coupling_seaflux_sbl_n (CHS, DTS, DGS, O, OR, G, S, SB, DST, SLT, &
7  HPROGRAM, HCOUPLING, PTIMEC, PTSTEP, KYEAR, KMONTH, KDAY, PTIME, &
8  KI, KSV, KSW, PTSUN, PZENITH, PZENITH2, PAZIM, PZREF, PUREF, &
9  PU, PV, PQA, PTA, PRHOA, PSV, PCO2, HSV, &
10  PRAIN, PSNOW, PLW, PDIR_SW, PSCA_SW, PSW_BANDS, PPS, PPA, &
11  PSFTQ, PSFTH, PSFTS, PSFCO2, PSFU, PSFV, &
12  PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF, PZ0, PZ0H, PQSURF, &
13  PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, &
14  PPEQ_B_COEF, HTEST )
15 ! ###############################################################################
16 !
17 !!**** *COUPLING_SEAFLUX_SBL_n * - Adds a SBL into SEAFLUX
18 !!
19 !! PURPOSE
20 !! -------
21 !
22 !!** METHOD
23 !! ------
24 !!
25 !! REFERENCE
26 !! ---------
27 !!
28 !!
29 !! AUTHOR
30 !! ------
31 !! V. Masson
32 !!
33 !! MODIFICATIONS
34 !! -------------
35 !! Original 09/2007
36 !! V. Masson 05/2009 Implicitation of momentum fluxes
37 !! S. Riette 06/2009 Initialisation of XT, PQ, XU and XTKE on canopy levels
38 !! S. Riette 10/2009 Iterative computation of XZ0
39 !! S. Riette 01/2010 Use of interpol_sbl to compute 10m wind diagnostic
40 !! B. Decharme 04/2013 new coupling variables
41 !----------------------------------------------------------------
42 !
43 !
46 USE modd_surfex_n, ONLY : seaflux_diag_t
47 USE modd_ocean_n, ONLY : ocean_t
48 USE modd_ocean_rel_n, ONLY : ocean_rel_t
49 USE modd_sfx_grid_n, ONLY : grid_t
50 USE modd_seaflux_n, ONLY : seaflux_t
51 USE modd_canopy_n, ONLY : canopy_t
52 !
53 USE modd_dst_n, ONLY : dst_t
54 USE modd_slt_n, ONLY : slt_t
55 !
56 USE modd_surf_par, ONLY : xundef
57 USE modd_csts, ONLY : xcpd
58 !
60 !
61 USE modi_init_water_sbl
62 !
63 USE modi_canopy_evol
64 USE modi_canopy_grid_update
65 !
66 USE modi_coupling_seaflux_n
67 !
68 USE yomhook ,ONLY : lhook, dr_hook
69 USE parkind1 ,ONLY : jprb
70 !
71 IMPLICIT NONE
72 !
73 !* 0.1 declarations of arguments
74 !
75 !
76 TYPE(ch_seaflux_t), INTENT(INOUT) :: CHS
77 TYPE(data_seaflux_t), INTENT(INOUT) :: DTS
78 TYPE(seaflux_diag_t), INTENT(INOUT) :: DGS
79 TYPE(ocean_t), INTENT(INOUT) :: O
80 TYPE(ocean_rel_t), INTENT(INOUT) :: OR
81 TYPE(grid_t), INTENT(INOUT) :: G
82 TYPE(seaflux_t), INTENT(INOUT) :: S
83 TYPE(canopy_t), INTENT(INOUT) :: SB
84 TYPE(dst_t), INTENT(INOUT) :: DST
85 TYPE(slt_t), INTENT(INOUT) :: SLT
86 !
87  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling surf. schemes
88  CHARACTER(LEN=1), INTENT(IN) :: HCOUPLING ! type of coupling
89  ! 'E' : explicit
90  ! 'I' : implicit
91  REAL, INTENT(IN) :: PTIMEC ! cumulated time since beginning of simulation
92 INTEGER, INTENT(IN) :: KYEAR ! current year (UTC)
93 INTEGER, INTENT(IN) :: KMONTH ! current month (UTC)
94 INTEGER, INTENT(IN) :: KDAY ! current day (UTC)
95 REAL, INTENT(IN) :: PTIME ! current time since midnight (UTC, s)
96 INTEGER, INTENT(IN) :: KI ! number of points
97 INTEGER, INTENT(IN) :: KSV ! number of scalars
98 INTEGER, INTENT(IN) :: KSW ! number of short-wave spectral bands
99 REAL, DIMENSION(KI), INTENT(IN) :: PTSUN ! solar time (s from midnight)
100 REAL, INTENT(IN) :: PTSTEP ! atmospheric time-step (s)
101 REAL, DIMENSION(KI), INTENT(IN) :: PZREF ! height of T,q forcing (m)
102 REAL, DIMENSION(KI), INTENT(IN) :: PUREF ! height of wind forcing (m)
103 !
104 REAL, DIMENSION(KI), INTENT(IN) :: PTA ! air temperature forcing (K)
105 REAL, DIMENSION(KI), INTENT(IN) :: PQA ! air humidity forcing (kg/m3)
106 REAL, DIMENSION(KI), INTENT(IN) :: PRHOA ! air density (kg/m3)
107 REAL, DIMENSION(KI,KSV),INTENT(IN) :: PSV ! scalar variables
108 ! ! chemistry: first char. in HSV: '#' (molecule/m3)
109 ! !
110  CHARACTER(LEN=6), DIMENSION(KSV),INTENT(IN):: HSV ! name of all scalar variables
111 REAL, DIMENSION(KI), INTENT(IN) :: PU ! zonal wind (m/s)
112 REAL, DIMENSION(KI), INTENT(IN) :: PV ! meridian wind (m/s)
113 REAL, DIMENSION(KI,KSW),INTENT(IN) :: PDIR_SW ! direct solar radiation (on horizontal surf.)
114 ! ! (W/m2)
115 REAL, DIMENSION(KI,KSW),INTENT(IN) :: PSCA_SW ! diffuse solar radiation (on horizontal surf.)
116 ! ! (W/m2)
117 REAL, DIMENSION(KSW),INTENT(IN) :: PSW_BANDS ! mean wavelength of each shortwave band (m)
118 REAL, DIMENSION(KI), INTENT(IN) :: PZENITH ! zenithal angle at t (radian from the vertical)
119 REAL, DIMENSION(KI), INTENT(IN) :: PZENITH2 ! zenithal angle at t+1(radian from the vertical)
120 REAL, DIMENSION(KI), INTENT(IN) :: PAZIM ! azimuthal angle (radian from North, clockwise)
121 REAL, DIMENSION(KI), INTENT(IN) :: PLW ! longwave radiation (on horizontal surf.)
122 ! ! (W/m2)
123 REAL, DIMENSION(KI), INTENT(IN) :: PPS ! pressure at atmospheric model surface (Pa)
124 REAL, DIMENSION(KI), INTENT(IN) :: PPA ! pressure at forcing level (Pa)
125 REAL, DIMENSION(KI), INTENT(IN) :: PCO2 ! CO2 concentration in the air (kg/m3)
126 REAL, DIMENSION(KI), INTENT(IN) :: PSNOW ! snow precipitation (kg/m2/s)
127 REAL, DIMENSION(KI), INTENT(IN) :: PRAIN ! liquid precipitation (kg/m2/s)
128 !
129 !
130 REAL, DIMENSION(KI), INTENT(OUT) :: PSFTH ! flux of heat (W/m2)
131 REAL, DIMENSION(KI), INTENT(OUT) :: PSFTQ ! flux of water vapor (kg/m2/s)
132 REAL, DIMENSION(KI), INTENT(OUT) :: PSFU ! zonal momentum flux (Pa)
133 REAL, DIMENSION(KI), INTENT(OUT) :: PSFV ! meridian momentum flux (Pa)
134 REAL, DIMENSION(KI), INTENT(OUT) :: PSFCO2 ! flux of CO2 (m/s*kg_CO2/kg_air)
135 REAL, DIMENSION(KI,KSV),INTENT(OUT):: PSFTS ! flux of scalar var. (kg/m2/s)
136 !
137 REAL, DIMENSION(KI), INTENT(OUT) :: PTRAD ! radiative temperature (K)
138 REAL, DIMENSION(KI,KSW),INTENT(OUT):: PDIR_ALB! direct albedo for each spectral band (-)
139 REAL, DIMENSION(KI,KSW),INTENT(OUT):: PSCA_ALB! diffuse albedo for each spectral band (-)
140 REAL, DIMENSION(KI), INTENT(OUT) :: PEMIS ! emissivity (-)
141 !
142 REAL, DIMENSION(KI), INTENT(OUT) :: PTSURF ! surface effective temperature (K)
143 REAL, DIMENSION(KI), INTENT(OUT) :: PZ0 ! roughness length for momentum (m)
144 REAL, DIMENSION(KI), INTENT(OUT) :: PZ0H ! roughness length for heat (m)
145 REAL, DIMENSION(KI), INTENT(OUT) :: PQSURF ! specific humidity at surface (kg/kg)
146 !
147 REAL, DIMENSION(KI), INTENT(IN) :: PPEW_A_COEF! implicit coefficients
148 REAL, DIMENSION(KI), INTENT(IN) :: PPEW_B_COEF! needed if HCOUPLING='I'
149 REAL, DIMENSION(KI), INTENT(IN) :: PPET_A_COEF
150 REAL, DIMENSION(KI), INTENT(IN) :: PPEQ_A_COEF
151 REAL, DIMENSION(KI), INTENT(IN) :: PPET_B_COEF
152 REAL, DIMENSION(KI), INTENT(IN) :: PPEQ_B_COEF
153  CHARACTER(LEN=2), INTENT(IN) :: HTEST ! must be equal to 'OK'
154 !
155 !* 0.2 declarations of local variables
156 !
157 !* forcing variables
158 !
159 REAL, DIMENSION(KI) :: ZWIND ! lowest atmospheric level wind speed (m/s)
160 REAL, DIMENSION(KI) :: ZEXNA ! Exner function at lowest SBL scheme level (-)
161 REAL, DIMENSION(KI) :: ZTA ! temperature (K)
162 REAL, DIMENSION(KI) :: ZPA ! pressure (Pa)
163 REAL, DIMENSION(KI) :: ZZREF ! temperature forcing level (m)
164 REAL, DIMENSION(KI) :: ZUREF ! wind forcing level (m)
165 REAL, DIMENSION(KI) :: ZU ! zonal wind (m/s)
166 REAL, DIMENSION(KI) :: ZV ! meridian wind (m/s)
167 REAL, DIMENSION(KI) :: ZQA ! specific humidity (kg/m3)
168 REAL, DIMENSION(KI) :: ZPEQ_A_COEF ! specific humidity implicit
169 REAL, DIMENSION(KI) :: ZPEQ_B_COEF ! coefficients (hum. in kg/kg)
170 !
171 !
172 ! SBL turbulence scheme
173 !
174 REAL, DIMENSION(KI) :: ZSFLUX_U ! Surface flux u'w' (m2/s2)
175 REAL, DIMENSION(KI) :: ZSFLUX_T ! Surface flux w'T' (mK/s)
176 REAL, DIMENSION(KI) :: ZSFLUX_Q ! Surface flux w'q' (kgm2/s)
177 REAL, DIMENSION(KI,SB%NLVL) :: ZFORC_U ! tendency due to drag force for wind
178 REAL, DIMENSION(KI,SB%NLVL) :: ZDFORC_UDU! formal derivative of
179 ! ! tendency due to drag force for wind
180 REAL, DIMENSION(KI,SB%NLVL) :: ZFORC_E ! tendency due to drag force for TKE
181 REAL, DIMENSION(KI,SB%NLVL) :: ZDFORC_EDE! formal derivative of
182 ! ! tendency due to drag force for TKE
183 REAL, DIMENSION(KI,SB%NLVL) :: ZFORC_T ! tendency due to drag force for Temp
184 REAL, DIMENSION(KI,SB%NLVL) :: ZDFORC_TDT! formal derivative of
185 ! ! tendency due to drag force for Temp
186 REAL, DIMENSION(KI,SB%NLVL) :: ZFORC_Q ! tendency due to drag force for Temp
187 REAL, DIMENSION(KI,SB%NLVL) :: ZDFORC_QDQ! formal derivative of
188 ! ! tendency due to drag force for hum.
189 REAL, DIMENSION(KI,SB%NLVL) :: ZLM ! mixing length
190 REAL, DIMENSION(KI,SB%NLVL) :: ZLEPS ! dissipative length
191 REAL, DIMENSION(KI) :: ZH ! canopy height (m)
192 REAL, DIMENSION(KI) :: ZUSTAR ! friction velocity (m/s)
193 !
194 REAL, DIMENSION(KI) :: ZPET_A_COEF ! temperature implicit
195 REAL, DIMENSION(KI) :: ZPET_B_COEF ! coefficients (K)
196 REAL, DIMENSION(KI) :: ZPEW_A_COEF ! wind implicit
197 REAL, DIMENSION(KI) :: ZPEW_B_COEF ! coefficients (m/s)
198 
199 REAL, DIMENSION(KI) :: ZALFAU ! V+(1) = - alfa rho u'w'(1) + beta
200 REAL, DIMENSION(KI) :: ZBETAU ! V+(1) = - alfa rho u'w'(1) + beta
201 REAL, DIMENSION(KI) :: ZALFATH ! Th+(1) = - alfa rho w'th'(1) + beta
202 REAL, DIMENSION(KI) :: ZBETATH ! Th+(1) = - alfa rho w'th'(1) + beta
203 REAL, DIMENSION(KI) :: ZALFAQ ! Q+(1) = - alfa rho w'q'(1) + beta
204 REAL, DIMENSION(KI) :: ZBETAQ ! Q+(1) = - alfa rho w'q'(1) + beta
205 !
206 INTEGER :: JLAYER
207  CHARACTER(LEN=1) :: GCOUPLING
208 REAL(KIND=JPRB) :: ZHOOK_HANDLE
209 !-------------------------------------------------------------------------------------
210 !
211 !
212 !* 1. Preliminary computations of the SBL scheme
213 ! ------------------------------------------
214 !
215 IF (lhook) CALL dr_hook('COUPLING_SEAFLUX_SBL_N',0,zhook_handle)
216 IF (s%LSBL) THEN
217 !
218 !* 1.1 Updates SBL vertical grid as a function of forcing height
219 ! ---------------------------------------------------------
220 !
221 !* determines where is the forcing level and modifies the upper levels of the canopy grid
222 !
223  zh = 0.
224  CALL canopy_grid_update(ki,zh,puref,sb)
225 !
226 !
227 !
228 !* 1.2 Initialisation at first time step
229 ! ---------------------------------
230 !
231  IF(any(sb%XT(:,:) == xundef)) THEN
232  CALL init_water_sbl(sb, ppa, pps, pta, pqa, prhoa, pu, pv, prain, psnow, &
233  psfth, psftq, pzref, puref, s%XSST, s%XZ0 )
234  ENDIF
235 !
236 !
237 !* 1.3 Allocations
238 ! -----------
239 !
240  CALL init_forc(zforc_u, zdforc_udu, zforc_e, zdforc_ede, &
241  zforc_t, zdforc_tdt, zforc_q, zdforc_qdq )
242 !
243  zsflux_u = 0.
244  zsflux_t = 0.
245  zsflux_q = 0.
246 !
247 !* 1.3 Computes coefficients for implicitation
248 ! ---------------------------------------
249 !
250  zwind = sqrt(pu**2+pv**2)
251  CALL canopy_evol(sb, ki, ptstep,1, sb%XZ, zwind, pta, pqa, ppa, prhoa, &
252  zsflux_u, zsflux_t, zsflux_q, zforc_u, zdforc_udu, &
253  zforc_e, zdforc_ede, zforc_t, zdforc_tdt, &
254  zforc_q, zdforc_qdq, zlm, zleps, zustar, &
255  zalfau, zbetau, zalfath, zbetath, zalfaq ,zbetaq )
256 
257 !
258 !* 1.5 Goes from atmospheric forcing to canopy forcing height
259 ! ------------------------------------------------------
260 !
261  gcoupling = 'I'
262 !
263  CALL init_coupling_canopy(sb, ppa, pu, pv, prhoa, &
264  zalfau, zbetau, zalfath, zbetath,&
265  zalfaq, zbetaq, zpa, zta, zqa, &
266  zu, zv, zuref, zzref, zexna, &
267  zpew_a_coef, zpew_b_coef, &
268  zpet_a_coef, zpet_b_coef, &
269  zpeq_a_coef, zpeq_b_coef )
270 !
271 !-------------------------------------------------------------------------------------
272 ELSE
273 !-------------------------------------------------------------------------------------
274 !
275 !* 2. If no SBL scheme is used, forcing is not modified
276 ! -------------------------------------------------
277 !
278  gcoupling = hcoupling
279 !
280  CALL init_coupling( hcoupling, &
281  pps, ppa, pta, pqa, pu, pv, &
282  puref, pzref, &
283  ppew_a_coef, ppew_b_coef, &
284  ppet_a_coef, ppet_b_coef, &
285  ppeq_a_coef, ppeq_b_coef, &
286  zpa, zta, zqa, zu, zv, &
287  zuref, zzref, &
288  zpew_a_coef, zpew_b_coef, &
289  zpet_a_coef, zpet_b_coef, &
290  zpeq_a_coef, zpeq_b_coef )
291 !
292 END IF
293 !
294 !-------------------------------------------------------------------------------------
295 !
296 !* 2. Call of SEAFLUX
297 ! ------------
298 !
299  CALL coupling_seaflux_n(chs, dts, dgs, o, or, g, s, dst, slt, hprogram, gcoupling, &
300  ptimec, ptstep, kyear, kmonth, kday, ptime, ki, ksv, ksw, &
301  ptsun, pzenith, pzenith2, pazim, zzref, zuref, zu, zv, zqa, zta, prhoa, &
302  psv, pco2, hsv, prain, psnow, plw, pdir_sw, psca_sw, psw_bands, pps, zpa,&
303  psftq, psfth, psfts, psfco2, psfu, psfv, ptrad, pdir_alb, psca_alb, &
304  pemis, ptsurf, pz0, pz0h, pqsurf, zpew_a_coef, zpew_b_coef, &
305  zpet_a_coef, zpeq_a_coef, zpet_b_coef, zpeq_b_coef, htest)
306 !
307 !-------------------------------------------------------------------------------------
308 !
309 !* 3. End if no SBL is used
310 ! ---------------------
311 !
312 IF (.NOT. s%LSBL .AND. lhook) CALL dr_hook('COUPLING_SEAFLUX_SBL_N',1,zhook_handle)
313 IF (.NOT. s%LSBL) RETURN
314 !
315 !-------------------------------------------------------------------------------------
316 !
317 !* 4. Computes the impact of canopy and surfaces on air
318 ! -------------------------------------------------
319 !
320  CALL init_forc( zforc_u, zdforc_udu, zforc_e, zdforc_ede, &
321  zforc_t, zdforc_tdt, zforc_q, zdforc_qdq )
322 !
323 zsflux_u = - sqrt(psfu(:)**2+psfv(:)**2) / prhoa(:)
324 zsflux_t(:) = psfth(:) / xcpd * zexna(:) / prhoa(:)
325 zsflux_q(:) = psftq(:)
326 !
327 !-------------------------------------------------------------------------------------
328 !
329 !* 6. Evolution of canopy air due to these impacts
330 ! --------------------------------------------
331 !
332 zwind = sqrt(pu**2+pv**2)
333  CALL canopy_evol(sb,ki,ptstep,2,sb%XZ,zwind,pta,pqa,ppa,prhoa, &
334  zsflux_u,zsflux_t,zsflux_q, &
335  zforc_u,zdforc_udu,zforc_e,zdforc_ede, &
336  zforc_t,zdforc_tdt,zforc_q,zdforc_qdq, &
337  zlm,zleps,zustar, &
338  zalfau,zbetau,zalfath,zbetath,zalfaq,zbetaq )
339 !
340 DO jlayer=1,sb%NLVL-1
341  sb%XLMO(:,jlayer) = sb%XLMO(:,sb%NLVL)
342 ENDDO
343 !
344 !-------------------------------------------------------------------------------------
345 !
346 !* 7. 2m and 10m diagnostics if canopy is used
347 ! ----------------------------------------
348 !
349 IF (s%LSBL .AND. dgs%O%N2M>=1) CALL init_2m_10m( sb, dgs%D, pu, pv, zwind, prhoa )
350 !
351 IF (lhook) CALL dr_hook('COUPLING_SEAFLUX_SBL_N',1,zhook_handle)
352 !
353 !-------------------------------------------------------------------------------------
354 !
355 END SUBROUTINE coupling_seaflux_sbl_n
subroutine init_coupling(HCOUPLING, PPS, PPA, PTA, PQA, PU, PV, PUREF, PZREF, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPET_B_COEF, PPEQ_A_COEF, PPEQ_B_COEF, PPPA, PTTA, PQQA, PUU, PVV, PUUREF, PZZREF, PPEW_AA_COEF, PPEW_BB_COEF, PPET_AA_COEF, PPET_BB_COEF, PPEQ_AA_COEF, PPEQ_BB_COEF)
real, save xcpd
Definition: modd_csts.F90:63
subroutine init_water_sbl(SB, PPA, PPS, PTA, PQA, PRHOA, PU, PV, PRAIN, PSNOW, PSFTH, PSFTQ, PZREF, PUREF, PTS, PZ0)
subroutine init_2m_10m(SB, D, PU, PV, PWIND, PRHOA)
real, parameter xundef
subroutine canopy_evol(SB, KI, PTSTEP, KIMPL, PZZ, PWIND, PTA, PQA
Definition: canopy_evol.F90:7
integer, parameter jprb
Definition: parkind1.F90:32
subroutine coupling_seaflux_sbl_n(CHS, DTS, DGS, O, OR, G, S, SB, DST, SLT, HPROGRAM, HCOUPLING, PTIMEC, PTSTEP, KYEAR, KMONTH, KDAY, PTIME, KI, KSV, KSW, PTSUN, PZENITH, PZENITH2, PAZIM, PZREF, PUREF, PU, PV, PQA, PTA, PRHOA, PSV, PCO2, HSV, PRAIN, PSNOW, PLW, PDIR_SW, PSCA_SW, PSW_BANDS, PPS, PPA, PSFTQ, PSFTH, PSFTS, PSFCO2, PSFU, PSFV, PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF, PZ0, PZ0H, PQSURF, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, HTEST)
logical lhook
Definition: yomhook.F90:15
subroutine init_forc(PFORC_U, PDFORC_UDU, PFORC_E, PDFORC_EDE, PFORC_T, PDFORC_TDT, PFORC_Q, PDFORC_QDQ)
subroutine canopy_grid_update(KI, PH, PZFORC, SB)
subroutine coupling_seaflux_n(CHS, DTS, DGS, O, OR, G, S, DST, SLT, HPROGRAM, HCOUPLING, PTIMEC, PTSTEP, KYEAR, KMONTH, KDAY, PTIME, KI, KSV, KSW, PTSUN, PZENITH, PZENITH2, PAZIM, PZREF, PUREF, PU, PV, PQA, PTA, PRHOA, PSV, PCO2, HSV, PRAIN, PSNOW, PLW, PDIR_SW, PSCA_SW, PSW_BANDS, PPS, PPA, PSFTQ, PSFTH, PSFTS, PSFCO2, PSFU, PSFV, PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF, PZ0, PZ0H, PQSURF, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, HTEST)
subroutine init_coupling_canopy(SB, PPA, PU, PV, PRHOA, PALFAU, PBETAU, PALFATH, PBETATH, PALFAQ, PBETAQ, PPPA, PTTA, PQQA, PUU, PVV, PUUREF, PZZREF, PEXNA, PPEW_AA_COEF, PPEW_BB_COEF, PPET_AA_COEF, PPET_BB_COEF, PPEQ_AA_COEF, PPEQ_BB_COEF)