SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
init_slt.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 SUBROUTINE init_slt (SLT, &
6  hprogram &! Program calling unit
7  )
8 
9 !
10 USE modd_slt_n, ONLY : slt_t
11 !
12 USE modd_slt_surf
13 !
14 USE yomhook ,ONLY : lhook, dr_hook
15 USE parkind1 ,ONLY : jprb
16 !
17 IMPLICIT NONE
18 
19 !PASSED VARIABLES
20 !
21 TYPE(slt_t), INTENT(INOUT) :: slt
22 !
23  CHARACTER(LEN=6), INTENT(IN) :: hprogram !Passing unit
24 !
25 !LOCAL VARIABLES
26  CHARACTER(LEN=4) :: crgunits ! type of log-normal geometric mean radius
27 INTEGER :: jmode ! Counter for sea salt modes
28 INTEGER :: jmode_idx ! Index for sea salt modes
29 REAL(KIND=JPRB) :: zhook_handle
30 
31 !get output listing unit
32 IF (lhook) CALL dr_hook('INIT_SLT',0,zhook_handle)
33 !
34 !Allocate memory for the real values which will be used by the model
35 ALLOCATE(slt%XEMISRADIUS_SLT(nsltmde))
36 ALLOCATE(slt%XEMISSIG_SLT (nsltmde))
37 !
38 !Get initial size distributions. This is cut and pasted
39 !from dead routine dstpsd.F90
40 !Check for different source parameterizations
41 IF(cemisparam_slt.eq."Vig01") THEN
42  crgunits = 'NUMB'
43  xemisradius_ini_slt(:) = (/ 0.2, 2.0, 12. /) ! [um] Number median radius She84 p. 75 Table 1
44  xemissig_ini_slt(:) = (/ 1.9, 2.0, 3.00 /) ! [frc] Geometric standard deviation She84 p. 75 Table 1
45 ELSE ! use default of Schultz et al, 2004
46  crgunits = 'MASS'
47  xemisradius_ini_slt(:) = 0.5*(/0.28, 2.25, 15.32/) ! [um] Mass median radius
48  xemissig_ini_slt(:) = (/1.59, 2.00, 2.00 /) ! [frc] Geometric standard deviation
49 ENDIF
50 !
51 DO jmode=1,nsltmde
52  !
53  jmode_idx = jorder_slt(jmode)
54  !
55  slt%XEMISSIG_SLT (jmode) = xemissig_ini_slt(jmode_idx)
56  slt%XEMISRADIUS_SLT(jmode) = xemisradius_ini_slt(jmode_idx)
57  !
58  IF (crgunits=="MASS") &
59  slt%XEMISRADIUS_SLT(jmode) = slt%XEMISRADIUS_SLT(jmode) * exp(-3.d0 * (log(slt%XEMISSIG_SLT(jmode)))**2)
60  !
61 ENDDO
62 !
63 IF (lhook) CALL dr_hook('INIT_SLT',1,zhook_handle)
64 !
65 END SUBROUTINE init_slt
subroutine init_slt(SLT, HPROGRAM)
Definition: init_slt.F90:5