1 | module turb_mod |
---|
2 | |
---|
3 | !! variables |
---|
4 | REAL,SAVE,ALLOCATABLE :: q2(:,:) ! Turbulent Kinetic Energy |
---|
5 | REAL,allocatable,SAVE :: l0(:) |
---|
6 | !$OMP THREADPRIVATE(q2,l0) |
---|
7 | REAL,SAVE,ALLOCATABLE :: ustar(:) |
---|
8 | REAL,SAVE,ALLOCATABLE :: wstar(:) |
---|
9 | REAL,SAVE,ALLOCATABLE :: tstar(:) |
---|
10 | !$OMP THREADPRIVATE(ustar,wstar,tstar) |
---|
11 | REAL,SAVE,ALLOCATABLE :: hfmax_th(:) |
---|
12 | REAL,SAVE,ALLOCATABLE :: zmax_th(:) |
---|
13 | !$OMP THREADPRIVATE(hfmax_th,zmax_th) |
---|
14 | REAL,SAVE,ALLOCATABLE :: sensibFlux(:) |
---|
15 | LOGICAL,SAVE :: turb_resolved = .false. |
---|
16 | !$OMP THREADPRIVATE(sensibFlux,turb_resolved) |
---|
17 | ! this is a flag to say 'turbulence is resolved' |
---|
18 | ! mostly for LES use. default is FALSE (for GCM and mesoscale) |
---|
19 | |
---|
20 | !! |
---|
21 | !! initialisation done in phys_state_var_mod |
---|
22 | !! ... strategy using routines like the one that follows could be used instead |
---|
23 | |
---|
24 | !contains |
---|
25 | |
---|
26 | ! subroutine ini_turb_mod(ngrid,nlayer) |
---|
27 | |
---|
28 | ! implicit none |
---|
29 | ! integer,intent(in) :: ngrid ! number of atmospheric columns |
---|
30 | ! integer,intent(in) :: nlayer ! number of atmospheric layers |
---|
31 | |
---|
32 | ! allocate(q2(ngrid,nlayer+1)) |
---|
33 | ! allocate(l0(ngrid)) |
---|
34 | ! allocate(wstar(ngrid)) |
---|
35 | ! allocate(ustar(ngrid)) |
---|
36 | ! allocate(tstar(ngrid)) |
---|
37 | ! allocate(hfmax_th(ngrid)) |
---|
38 | ! allocate(zmax_th(ngrid)) |
---|
39 | ! allocate(sensibFlux(ngrid)) |
---|
40 | |
---|
41 | ! end subroutine ini_turb_mod |
---|
42 | |
---|
43 | end module turb_mod |
---|