source: LMDZ5/branches/AI-cosp/libf/dynphy_lonlat/mod_interface_dyn_phys.F90 @ 5321

Last change on this file since 5321 was 2429, checked in by Laurent Fairhead, 9 years ago

Correction on the calculation of the surface of the grid at the poles (problem was introduced
in r2222).
Due to the different distribution of OMP tasks in the dynamics and the physics, had to
introduce 2 new logical variables, is_pole_north_phy and is_pole_south_phy, and so decided
to rename the old is_north_pole/is_south_pole to is_north_pole_dyn/is_south_pole_dyn to
stay coherent and, hopefully, clear things up a bit.
LF

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 1.2 KB
Line 
1!
2! $Id: mod_interface_dyn_phys.F90 2429 2016-01-27 12:43:09Z fairhead $
3!
4MODULE mod_interface_dyn_phys
5  INTEGER,SAVE,dimension(:),allocatable :: index_i
6  INTEGER,SAVE,dimension(:),allocatable :: index_j
7 
8 
9CONTAINS
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  SUBROUTINE Init_interface_dyn_phys
58  ! dummy routine for seq case
59  END SUBROUTINE Init_interface_dyn_phys
60#endif
61! of #ifdef CPP_PARA
62END MODULE mod_interface_dyn_phys
Note: See TracBrowser for help on using the repository browser.