/[MITgcm]/MITgcm/eesupp/src/ini_jam.F
ViewVC logotype

Diff of /MITgcm/eesupp/src/ini_jam.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.1 by adcroft, Tue Mar 14 16:10:23 2000 UTC revision 1.5 by cnh, Fri Sep 21 03:54:35 2001 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2    C $Name$
3    
4  #include "CPP_EEOPTIONS.h"  #include "CPP_EEOPTIONS.h"
5    
6  #define USE_JAM_INIT  #define USE_JAM_INIT
7    
8        SUBROUTINE INI_JAM  CBOP
9    
10    C     !ROUTINE: INI_JAM
11    
12  C     Initialise JAM based communication  C     !INTERFACE:
13          SUBROUTINE INI_JAM
14        IMPLICIT NONE        IMPLICIT NONE
15    
16  #ifdef LETS_MAKE_JAM  C     !DESCRIPTION:
17    C     *=================================================================================*
18    C     | SUBROUTINE INI_JAM
19    C     | o Initialise JAM based communication
20    C     *=================================================================================*
21    C     | Connect to synchronising daemon process that allocates jam network ids to
22    C     | each process and initialises network once all processes are connected.
23    C     *=================================================================================*
24    
25    
26    C     !USES:
27  C     == Global data ==  C     == Global data ==
28    #ifdef LETS_MAKE_JAM
29  #include "SIZE.h"  #include "SIZE.h"
30  #include "EEPARAMS.h"  #include "EEPARAMS.h"
31  #include "EESUPPORT.h"  #include "EESUPPORT.h"
   
32  #include "JAM_INFO.h"  #include "JAM_INFO.h"
33  #include "MPI_INFO.h"  #include "MPI_INFO.h"
   
34  #ifdef ALLOW_MPI  #ifdef ALLOW_MPI
35  #include "mpif.h"  #include "mpif.h"
36  #endif  #endif
37    
38    C     !LOCAL VARIABLES:
39  C     == Local variables ==  C     == Local variables ==
40        REAL*8  dummyVal  C     dummyVal :: Variable which is used in sync. call
41    C     rc       :: Return code
42    C     myTwoProcRank :: Temp. for holding ranking within processor pairs.
43          Real*8  dummyVal
44        INTEGER rc        INTEGER rc
       CHARACTER*(MAX_LEN_FNAM) fnam  
45  #ifdef JAM_WITH_TWO_PROCS_PER_NODE  #ifdef JAM_WITH_TWO_PROCS_PER_NODE
46        INTEGER myTwoProcRank        INTEGER myTwoProcRank
47  #endif  #endif
48    CEOP
49    
50  C     Names used in JAM exch testing for MPI based exchange  C     Names used in JAM exch testing for MPI based exchange
51        mpi_northId = mpiPidN        mpi_northId = mpiPidN
# Line 67  C     Set up connectivity Line 83  C     Set up connectivity
83        numberOfProcs = jam_np        numberOfProcs = jam_np
84        myProcId      = jam_pid        myProcId      = jam_pid
85    
86    #ifdef JAM_WITH_TWO_PROCS_PER_NODE
87    C     The following fixes the instance where MPI and
88    C     James JAM arrive at a different id for this process
89    C     *note* this assumes nPx=1 (no parallization in X)
90          myPid         = jam_pid
91          pidN          = mod(jam_pid+1,jam_np)
92          pidS          = mod(jam_pid-1+jam_np,jam_np)
93          pidW          = jam_pid
94          pidE          = jam_pid
95          myYGlobalLo   = sNy*nSy*jam_pid+1
96          myXGlobalLo   = 1
97    #endif
98    
99  #endif  #endif
100  #endif /* LETS_MAKE_JAM */  #endif /* LETS_MAKE_JAM */
101    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.22