1 | MODULE advect_new_mod |
---|
2 | |
---|
3 | REAL,POINTER,SAVE :: dv1(:,:) |
---|
4 | REAL,POINTER,SAVE :: du1(:,:) |
---|
5 | REAL,POINTER,SAVE :: dteta1(:,:) |
---|
6 | REAL,POINTER,SAVE :: dv2(:,:) |
---|
7 | REAL,POINTER,SAVE :: du2(:,:) |
---|
8 | REAL,POINTER,SAVE :: dteta2(:,:) |
---|
9 | REAL,POINTER,SAVE :: uav(:,:) |
---|
10 | REAL,POINTER,SAVE :: vav(:,:) |
---|
11 | |
---|
12 | |
---|
13 | CONTAINS |
---|
14 | |
---|
15 | SUBROUTINE advect_new_allocate |
---|
16 | USE bands |
---|
17 | USE allocate_field_mod |
---|
18 | USE parallel |
---|
19 | USE dimensions_mod |
---|
20 | IMPLICIT NONE |
---|
21 | TYPE(distrib),POINTER :: d |
---|
22 | |
---|
23 | |
---|
24 | d=>distrib_caldyn |
---|
25 | CALL allocate_v(dv1,llm,d) |
---|
26 | CALL allocate_u(du1,llm,d) |
---|
27 | CALL allocate_u(dteta1,llm,d) |
---|
28 | CALL allocate_v(dv2,llm,d) |
---|
29 | CALL allocate_u(du2,llm,d) |
---|
30 | CALL allocate_u(dteta2,llm,d) |
---|
31 | CALL allocate_u(uav,llm,d) |
---|
32 | CALL allocate_v(vav,llm,d) |
---|
33 | |
---|
34 | |
---|
35 | END SUBROUTINE advect_new_allocate |
---|
36 | |
---|
37 | SUBROUTINE advect_new_switch_caldyn(dist) |
---|
38 | USE allocate_field_mod |
---|
39 | USE bands |
---|
40 | USE parallel |
---|
41 | IMPLICIT NONE |
---|
42 | TYPE(distrib),INTENT(IN) :: dist |
---|
43 | |
---|
44 | CALL switch_v(dv1,distrib_caldyn,dist) |
---|
45 | CALL switch_u(du1,distrib_caldyn,dist) |
---|
46 | CALL switch_u(dteta1,distrib_caldyn,dist) |
---|
47 | CALL switch_v(dv2,distrib_caldyn,dist) |
---|
48 | CALL switch_u(du2,distrib_caldyn,dist) |
---|
49 | CALL switch_u(dteta2,distrib_caldyn,dist) |
---|
50 | CALL switch_u(uav,distrib_caldyn,dist) |
---|
51 | CALL switch_v(vav,distrib_caldyn,dist) |
---|
52 | |
---|
53 | END SUBROUTINE advect_new_switch_caldyn |
---|
54 | |
---|
55 | END MODULE advect_new_mod |
---|