1 |
|
|
! |
2 |
|
|
! $Id: mod_interface_dyn_phys.F90 2429 2016-01-27 12:43:09Z fairhead $ |
3 |
|
|
! |
4 |
|
|
MODULE mod_interface_dyn_phys |
5 |
|
|
INTEGER,SAVE,dimension(:),allocatable :: index_i |
6 |
|
|
INTEGER,SAVE,dimension(:),allocatable :: index_j |
7 |
|
|
|
8 |
|
|
|
9 |
|
|
CONTAINS |
10 |
|
|
|
11 |
|
|
#ifdef CPP_PARA |
12 |
|
|
! Interface with parallel physics, |
13 |
|
|
SUBROUTINE Init_interface_dyn_phys |
14 |
|
|
USE mod_phys_lmdz_mpi_data |
15 |
|
|
IMPLICIT NONE |
16 |
|
|
include 'dimensions.h' |
17 |
|
|
|
18 |
|
|
INTEGER :: i,j,k |
19 |
|
|
|
20 |
|
|
ALLOCATE(index_i(klon_mpi)) |
21 |
|
|
ALLOCATE(index_j(klon_mpi)) |
22 |
|
|
|
23 |
|
|
k=1 |
24 |
|
|
IF (is_north_pole_dyn) THEN |
25 |
|
|
index_i(k)=1 |
26 |
|
|
index_j(k)=1 |
27 |
|
|
k=2 |
28 |
|
|
ELSE |
29 |
|
|
DO i=ii_begin,iim |
30 |
|
|
index_i(k)=i |
31 |
|
|
index_j(k)=jj_begin |
32 |
|
|
k=k+1 |
33 |
|
|
ENDDO |
34 |
|
|
ENDIF |
35 |
|
|
|
36 |
|
|
DO j=jj_begin+1,jj_end-1 |
37 |
|
|
DO i=1,iim |
38 |
|
|
index_i(k)=i |
39 |
|
|
index_j(k)=j |
40 |
|
|
k=k+1 |
41 |
|
|
ENDDO |
42 |
|
|
ENDDO |
43 |
|
|
|
44 |
|
|
IF (is_south_pole_dyn) THEN |
45 |
|
|
index_i(k)=1 |
46 |
|
|
index_j(k)=jj_end |
47 |
|
|
ELSE |
48 |
|
|
DO i=1,ii_end |
49 |
|
|
index_i(k)=i |
50 |
|
|
index_j(k)=jj_end |
51 |
|
|
k=k+1 |
52 |
|
|
ENDDO |
53 |
|
|
ENDIF |
54 |
|
|
|
55 |
|
|
END SUBROUTINE Init_interface_dyn_phys |
56 |
|
|
#else |
57 |
|
1 |
SUBROUTINE Init_interface_dyn_phys |
58 |
|
|
! dummy routine for seq case |
59 |
|
1 |
END SUBROUTINE Init_interface_dyn_phys |
60 |
|
|
#endif |
61 |
|
|
! of #ifdef CPP_PARA |
62 |
|
|
END MODULE mod_interface_dyn_phys |