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 |
13 |
use comgeom, only: cu_2d, cv_2d |
14 |
use dimensions, only: iim, jjm, llm |
15 |
use paramet_m, only: iip1, jjp1 |
16 |
|
17 |
real, intent(in):: pk(iip1, jjp1, llm) |
18 |
real, intent(inout):: u(iip1, jjp1, llm), v(iip1, jjm, llm) |
19 |
real, intent(inout):: t(iip1, jjp1, llm) |
20 |
|
21 |
! Local: |
22 |
integer i, j, l |
23 |
|
24 |
!---------------------------------------------------------------------- |
25 |
|
26 |
print *, "Call sequence information: nat2gcm" |
27 |
|
28 |
! calcul de ucov et de la temperature potentielle |
29 |
do l = 1, llm |
30 |
do j = 1, jjp1 |
31 |
do i = 1, iim |
32 |
u(i, j, l) = u(i, j, l) * cu_2d(i, j) |
33 |
t(i, j, l) = t(i, j, l) * cpp / pk(i, j, l) |
34 |
enddo |
35 |
u(iip1, j, l) = u(1, j, l) |
36 |
t(iip1, j, l) = t(1, j, l) |
37 |
enddo |
38 |
do i = 1, iip1 |
39 |
u(i, 1, l) = 0. |
40 |
u(i, jjp1, l) = 0. |
41 |
t(i, 1, l) = t(1, 1, l) |
42 |
t(i, jjp1, l) = t(1, jjp1, l) |
43 |
enddo |
44 |
enddo |
45 |
|
46 |
do l = 1, llm |
47 |
do j = 1, jjm |
48 |
do i = 1, iim |
49 |
v(i, j, l) = v(i, j, l) * cv_2d(i, j) |
50 |
enddo |
51 |
v(iip1, j, l) = v(1, j, l) |
52 |
enddo |
53 |
enddo |
54 |
|
55 |
end subroutine nat2gcm |
56 |
|
57 |
end module nat2gcm_m |