1 |
module comvert |
module disvert_m |
2 |
|
|
3 |
use dimens_m, only: llm |
use dimens_m, only: llm |
4 |
|
|
19 |
SUBROUTINE disvert |
SUBROUTINE disvert |
20 |
|
|
21 |
! From dyn3d/disvert.F, v 1.1.1.1 2004/05/19 12:53:05 |
! From dyn3d/disvert.F, v 1.1.1.1 2004/05/19 12:53:05 |
22 |
! Auteur : P. Le Van |
! Author: P. Le Van |
23 |
|
|
24 |
! This procedure sets the vertical grid. |
! This procedure sets the vertical grid. It defines the host |
25 |
! It defines the host variables "ap", "bp", "presnivs", "nivsigs" |
! variables "ap", "bp", "presnivs", "nivsigs" and "nivsig". "pa" |
26 |
! and "nivsig". |
! should be defined before this procedure is called. |
|
! "pa" should be defined before this procedure is called. |
|
27 |
|
|
|
use nr_util, only: pi |
|
28 |
use jumble, only: new_unit |
use jumble, only: new_unit |
29 |
|
use nr_util, only: pi |
30 |
use unit_nml_m, only: unit_nml |
use unit_nml_m, only: unit_nml |
31 |
|
|
32 |
|
! Local: |
33 |
|
|
34 |
REAL s(llm+1) |
REAL s(llm+1) |
35 |
! "s(l)" is the atmospheric hybrid sigma-pressure coordinate at |
! "s(l)" is the atmospheric hybrid sigma-pressure coordinate at |
36 |
! the interface between layers "l" and "l-1" |
! the interface between layers "l" and "l-1" |
83 |
s(1) = 1. |
s(1) = 1. |
84 |
s(llm+1) = 0. |
s(llm+1) = 0. |
85 |
forall (l = 1: llm) ds(l) & |
forall (l = 1: llm) ds(l) & |
86 |
= 1. + 7. * SIN(pi * (REAL(l)-0.5) / real(llm+1))**2 |
= 1. + 7. * SIN(pi * (REAL(l) - 0.5) / real(llm + 1))**2 |
87 |
ds = ds / sum(ds) |
ds = ds / sum(ds) |
88 |
|
|
89 |
DO l = llm, 2, -1 |
DO l = llm, 2, -1 |
109 |
s(llm+1) = 0. |
s(llm+1) = 0. |
110 |
forall (l = 1: llm) x(l) = pi * (l - 0.5) / (llm + 1) |
forall (l = 1: llm) x(l) = pi * (l - 0.5) / (llm + 1) |
111 |
|
|
112 |
ds = (1. + 7. * SIN(x)**2) * (1. - tanh(2 * x / pi - 1.))**2 / 4. |
ds = (0.3 + 7. * SIN(x)**2) * (1. - tanh(2 * x / pi - 1.))**2 / 4. |
113 |
ds = ds / sum(ds) |
ds = ds / sum(ds) |
114 |
|
|
115 |
DO l = llm, 2, -1 |
DO l = llm, 2, -1 |
144 |
|
|
145 |
END SUBROUTINE disvert |
END SUBROUTINE disvert |
146 |
|
|
147 |
end module comvert |
end module disvert_m |