1 | MODULE physics_external_mod |
---|
2 | USE field_mod |
---|
3 | |
---|
4 | INTEGER,SAVE :: it |
---|
5 | !$OMP THREADPRIVATE(it) |
---|
6 | |
---|
7 | TYPE(t_field),POINTER,SAVE :: f_phis(:) |
---|
8 | TYPE(t_field),POINTER,SAVE :: f_ps(:) |
---|
9 | TYPE(t_field),POINTER,SAVE :: f_theta_rhodz(:) |
---|
10 | TYPE(t_field),POINTER,SAVE :: f_u(:) |
---|
11 | TYPE(t_field),POINTER,SAVE :: f_wflux(:) |
---|
12 | TYPE(t_field),POINTER,SAVE :: f_q(:) |
---|
13 | |
---|
14 | |
---|
15 | |
---|
16 | CONTAINS |
---|
17 | |
---|
18 | SUBROUTINE init_physics |
---|
19 | |
---|
20 | CALL initialize_external_physics |
---|
21 | |
---|
22 | END SUBROUTINE init_physics |
---|
23 | |
---|
24 | SUBROUTINE physics(it_,f_phis_, f_ps_, f_theta_rhodz_, f_u_, f_wflux_, f_q_) |
---|
25 | USE field_mod |
---|
26 | IMPLICIT NONE |
---|
27 | INTEGER,INTENT(IN) :: it_ |
---|
28 | TYPE(t_field),POINTER :: f_phis_(:) |
---|
29 | TYPE(t_field),POINTER :: f_ps_(:) |
---|
30 | TYPE(t_field),POINTER :: f_theta_rhodz_(:) |
---|
31 | TYPE(t_field),POINTER :: f_u_(:) |
---|
32 | TYPE(t_field),POINTER :: f_wflux_(:) |
---|
33 | TYPE(t_field),POINTER :: f_q_(:) |
---|
34 | |
---|
35 | it=it_ |
---|
36 | |
---|
37 | !$OMP BARRIER |
---|
38 | !$OMP MASTER |
---|
39 | f_phis=>f_phis_ |
---|
40 | f_ps=>f_ps_ |
---|
41 | f_theta_rhodz=>f_theta_rhodz_ |
---|
42 | f_u=>f_u_ |
---|
43 | f_wflux=>f_wflux_ |
---|
44 | f_q=>f_q_ |
---|
45 | !$OMP END MASTER |
---|
46 | !$OMP BARRIER |
---|
47 | |
---|
48 | CALL external_physics |
---|
49 | |
---|
50 | END SUBROUTINE physics |
---|
51 | |
---|
52 | |
---|
53 | END MODULE physics_external_mod |
---|
54 | |
---|
55 | |
---|