1 |
module nat2gcm_m |
2 |
|
3 |
implicit none |
4 |
|
5 |
contains |
6 |
|
7 |
subroutine nat2gcm(pk, u, v, t) |
8 |
|
9 |
! Passage aux variables du mod\`ele (vents covariants, |
10 |
! temp\'erature potentielle et humidit\'e sp\'ecifique). |
11 |
|
12 |
use comconst, only: cpp, kappa |
13 |
use comgeom, only: cu_2d, cv_2d |
14 |
use dimens_m, only: iim, jjm, llm |
15 |
use disvert_m, only: preff |
16 |
use paramet_m, only: iip1, jjp1 |
17 |
|
18 |
real, intent(in):: pk(iip1, jjp1, llm) |
19 |
real, intent(inout):: u(iip1, jjp1, llm), v(iip1, jjm, llm) |
20 |
real, intent(inout):: t(iip1, jjp1, llm) |
21 |
|
22 |
! Local: |
23 |
integer i, j, l |
24 |
|
25 |
!---------------------------------------------------------------------- |
26 |
|
27 |
print *, "Call sequence information: nat2gcm" |
28 |
|
29 |
! calcul de ucov et de la temperature potentielle |
30 |
do l = 1, llm |
31 |
do j = 1, jjp1 |
32 |
do i = 1, iim |
33 |
u(i, j, l) = u(i, j, l) * cu_2d(i, j) |
34 |
t(i, j, l) = t(i, j, l) * cpp / pk(i, j, l) |
35 |
enddo |
36 |
u(iip1, j, l) = u(1, j, l) |
37 |
t(iip1, j, l) = t(1, j, l) |
38 |
enddo |
39 |
do i = 1, iip1 |
40 |
u(i, 1, l) = 0. |
41 |
u(i, jjp1, l) = 0. |
42 |
t(i, 1, l) = t(1, 1, l) |
43 |
t(i, jjp1, l) = t(1, jjp1, l) |
44 |
enddo |
45 |
enddo |
46 |
|
47 |
do l = 1, llm |
48 |
do j = 1, jjm |
49 |
do i = 1, iim |
50 |
v(i, j, l) = v(i, j, l) * cv_2d(i, j) |
51 |
enddo |
52 |
v(iip1, j, l) = v(1, j, l) |
53 |
enddo |
54 |
enddo |
55 |
|
56 |
end subroutine nat2gcm |
57 |
|
58 |
end module nat2gcm_m |