source: LMDZ5/trunk/libf/dyn3dpar/mod_interface_dyn_phys.F90 @ 1786

Last change on this file since 1786 was 1615, checked in by Ehouarn Millour, 13 years ago

Introducing "phydev", the minimal physics package.
makegcm and makelmdz_fcm script have been updated to add CPP_PHYS preprocessing key when building with physics and CPP_EARTH for Earth (LMD physics) related routines or instructions in the dynamics.
Checked (on Vargas) that "dev" physics package compiles and runs well in all (seq/mpi/omp/mpi_omp) modes and that introduced changes do not modify results when using the "lmd" physics package.
EM + FH

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 995 bytes
Line 
1!
2! $Id: mod_interface_dyn_phys.F90 1615 2012-02-10 15:42:26Z idelkadi $
3!
4MODULE mod_interface_dyn_phys
5  INTEGER,SAVE,dimension(:),allocatable :: index_i
6  INTEGER,SAVE,dimension(:),allocatable :: index_j
7 
8 
9#ifdef CPP_PHYS
10! Interface with parallel physics,
11CONTAINS
12 
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) 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) 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#endif
57! of #ifdef CPP_PHYS
58END MODULE mod_interface_dyn_phys
Note: See TracBrowser for help on using the repository browser.