[2291] | 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 | |
---|
[2742] | 20 | !! |
---|
| 21 | !! initialisation done in phys_state_var_mod |
---|
| 22 | !! ... strategy using routines like the one that follows could be used instead |
---|
| 23 | |
---|
[2291] | 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 |
---|