Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:38:29 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
bf4be02920 Jean*0001 ! Special meanings/handles
                0002       integer   MITCPLR_COUPLER
                0003       parameter(MITCPLR_COUPLER=59)
                0004 
                0005       logical DEBUG
                0006       parameter (DEBUG=.TRUE.)
                0007       logical VERB
                0008 c     parameter (VERB=.TRUE.)
                0009       parameter (VERB=.FALSE.)
                0010 
                0011 ! Parameters for fixed length declarations
                0012       integer MAX_PROCS
                0013       parameter(MAX_PROCS=128)
                0014 
                0015       integer MAX_IBUF
                0016       parameter(MAX_IBUF=1024)
                0017 
                0018       integer MAXLEN_COMP_NAME
                0019       parameter( MAXLEN_COMP_NAME=32 )
                0020 
                0021       integer MAX_COMPONENTS
                0022       parameter( MAX_COMPONENTS=10 )
                0023 
                0024       integer MAX_TILES
                0025       parameter( MAX_TILES=16 )
                0026 
                0027       integer HEADER_SIZE
                0028       parameter( HEADER_SIZE=8+MAXLEN_COMP_NAME )
                0029 
                0030       integer MAX_R4_BUFLEN
                0031       parameter( MAX_R4_BUFLEN=HEADER_SIZE+256*256 )
                0032 
                0033       integer MAX_R8_BUFLEN
                0034       parameter( MAX_R8_BUFLEN=HEADER_SIZE+256*256 )
                0035 
                0036       integer LogUnit
                0037       parameter( LogUnit=99 )
                0038 
191b8c84d5 Jean*0039 ! Temporary arrays for local use: now declared locally where needed
                0040 c     integer ibuf(MAX_IBUF)
bf4be02920 Jean*0041 
                0042 ! The list of components
                0043       integer num_components
                0044       character*(MAXLEN_COMP_NAME) component_List(MAX_COMPONENTS)
                0045       common /CPLR_COMP_LIST/
                0046      &  num_components,
                0047      &  component_List
                0048 
                0049 ! Coupler has duplicate copy of details
                0050       integer num_coupler_procs
                0051       integer rank_coupler_procs(MAX_PROCS)
                0052       character*(MAXLEN_COMP_NAME) coupler_Name
                0053       common /CPLR_COUPLER/
                0054      &  num_coupler_procs,
                0055      &  rank_coupler_procs,
                0056      &  coupler_Name
                0057 
                0058 ! Buffers
                0059       real*4 r4buf(MAX_R4_BUFLEN)
                0060       real*8 r8buf(MAX_R8_BUFLEN)
                0061       common /CPLR_BUFFERS/
                0062      &  r4buf,r8buf
                0063 
                0064 ! Information for communicating with my two communicators
                0065       integer my_component_ind
                0066       integer my_rank_in_world
                0067       integer MPI_COMM_mylocal
                0068       integer num_procs_in_local
                0069       integer my_rank_in_local
                0070       integer MPI_COMM_myglobal
                0071       integer num_procs_in_global
                0072       integer my_rank_in_global
                0073       integer my_coupler_rank
                0074       integer my_num_tiles
                0075       integer my_tile_nx(MAX_TILES)
                0076       integer my_tile_ny(MAX_TILES)
                0077       integer my_tile_i0(MAX_TILES)
                0078       integer my_tile_j0(MAX_TILES)
                0079       integer my_tile_bi(MAX_TILES)
                0080       integer my_tile_bj(MAX_TILES)
                0081       character*(MAXLEN_COMP_NAME) my_component_name
                0082       common /CPLR_IDENT/
                0083      &  my_component_ind,
                0084      &  my_rank_in_world,
                0085      &  MPI_COMM_mylocal,
                0086      &  num_procs_in_local,
                0087      &  my_rank_in_local,
                0088      &  MPI_COMM_myglobal,
                0089      &  num_procs_in_global,
                0090      a  my_rank_in_global,
                0091      &  my_coupler_rank,
                0092      &  my_num_tiles,
                0093      &  my_tile_nx,
                0094      &  my_tile_ny,
                0095      &  my_tile_i0,
                0096      &  my_tile_j0,
                0097      &  my_tile_bi,
                0098      &  my_tile_bj,
                0099      &  my_component_name
                0100 
                0101 ! The components details
                0102       integer num_component_procs(MAX_COMPONENTS)
                0103       integer rank_component_procs(MAX_PROCS,MAX_COMPONENTS)
                0104       integer num_compcplr_procs(MAX_COMPONENTS)
                0105       integer rank_compcplr_procs(MAX_PROCS,MAX_COMPONENTS)
                0106       integer MPI_COMM_component(MAX_COMPONENTS)
                0107       integer MPI_COMM_compcplr(MAX_COMPONENTS)
                0108       integer component_num_tiles(MAX_PROCS,MAX_COMPONENTS)
                0109       integer component_tile_nx(MAX_TILES,MAX_PROCS,MAX_COMPONENTS)
                0110       integer component_tile_ny(MAX_TILES,MAX_PROCS,MAX_COMPONENTS)
                0111       integer component_tile_i0(MAX_TILES,MAX_PROCS,MAX_COMPONENTS)
                0112       integer component_tile_j0(MAX_TILES,MAX_PROCS,MAX_COMPONENTS)
                0113       character*(MAXLEN_COMP_NAME) component_Name(MAX_COMPONENTS)
                0114       common /CPLR_COMPONENTS/
                0115      &  num_component_procs,
                0116      &  rank_component_procs,
                0117      &  num_compcplr_procs,
                0118      &  rank_compcplr_procs,
                0119      &  MPI_COMM_component,
                0120      &  MPI_COMM_compcplr,
                0121      &  component_num_tiles,
                0122      &  component_tile_nx,
                0123      &  component_tile_ny,
                0124      &  component_tile_i0,
                0125      &  component_tile_j0,
                0126      &  component_Name