Changeset 22681


Ignore:
Timestamp:
04/09/18 11:42:27 (7 years ago)
Author:
dmenemen
Message:

Adding runtime variable, which will allow running
MITgcm with and without ISSM coupler!

Location:
issm/trunk-jpl/test/MITgcm/code
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/test/MITgcm/code/cpl_issm.F

    r22653 r22681  
    11#include "PACKAGES_CONFIG.h"
    22#include "CPP_OPTIONS.h"
    3 
    4 #define ALLOW_CPL_ISSM
    53
    64CBOP
  • issm/trunk-jpl/test/MITgcm/code/do_oceanic_phys.F

    r22532 r22681  
    534534#endif /* OLD_THSICE_CALL_SEQUENCE */
    535535
    536 #define ALLOW_CPL_ISSM
    537536#ifdef ALLOW_CPL_ISSM
    538       CALL CPL_ISSM( myTime, myIter, myThid )
     537      IF ( useCoupler) CALL CPL_ISSM( myTime, myIter, myThid )
    539538#endif
    540539
  • issm/trunk-jpl/test/MITgcm/code/eeboot_minimal.F

    r22636 r22681  
    44#include "PACKAGES_CONFIG.h"
    55#include "CPP_EEOPTIONS.h"
    6 
    7 #define ALLOW_CPL_ISSM
    86
    97CBOP
     
    6967      INTEGER             mpiMyWid, toissmcomm
    7068      INTEGER my_local_rank,my_local_size, numprocsworld
    71       INTEGER dummy1(1),dummy2(1)
    7269      INTEGER status(MPI_STATUS_SIZE)
    7370#endif /* ALLOW_CPL_ISSM */
     
    183180
    184181#ifdef ALLOW_CPL_ISSM
    185        call MPI_COMM_RANK(MPI_COMM_WORLD, mpiMyWid, mpiRC)
    186        call MPI_COMM_SIZE(MPI_COMM_WORLD, numprocsworld, mpiRC)
     182C     add a 1rst preliminary call EESET_PARAMS to set useCoupler
     183       CALL MPI_COMM_RANK(MPI_COMM_WORLD, mpiMyWid, mpiRC)
     184       CALL EESET_PARMS ( mpiMyWId, doReport )
     185
     186       IF ( useCoupler ) THEN
     187          CALL MPI_COMM_SIZE(MPI_COMM_WORLD, numprocsworld, mpiRC)
    187188
    188189c     Split world into sub-communicators for each and every model:*/
    189       call MPI_COMM_SPLIT(MPI_COMM_WORLD,1,MPIMYWID,
    190      &                    MPI_COMM_MODEL,mpiRC)
    191 
    192       print*,'Oc My global rank',mpiMyWid
    193       print*,'Oc My world size:',numprocsworld
    194 
    195       call MPI_INTERCOMM_CREATE(MPI_COMM_MODEL,0,MPI_COMM_WORLD,
    196      &                          0,0,toissmcomm,mpiRC)
    197      
    198       call MPI_COMM_RANK(MPI_COMM_MODEL, my_local_rank, mpiRC)
    199       call MPI_COMM_SIZE(MPI_COMM_MODEL, my_local_size, mpiRC)
    200 
    201       print*,'Oc My global rank',mpiMyWid,'MyLocal rank: ',my_local_rank
    202       print*,'Oc My world size:',numprocsworld,'My local size: ',
    203      &     my_local_size
    204 
    205 
    206 c     receive and send an integer:
    207       dummy1(1)=4; dummy2(1)=2;
    208          
    209       if (my_local_rank .eq. 0) then
    210 cdb          call MPI_Send(dummy2,1,MPI_INT,0,1,toissmcomm,mpiRC)
    211 cdb          call MPI_Recv(dummy1,1,MPI_INT,0,1,toissmcomm,status,mpiRC)
    212       end if
    213      
    214 cdb      call MPI_Bcast(dummy1,1,MPI_INT,0,MPI_COMM_MODEL,mpiRC)
    215 cdb      print*, 'Ocean : dummy received:',dummy1
    216 
     190          CALL MPI_COMM_SPLIT(MPI_COMM_WORLD,1,MPIMYWID,
     191     &         MPI_COMM_MODEL,mpiRC)
     192
     193          print*,'Oc My global rank',mpiMyWid
     194          print*,'Oc My world size:',numprocsworld
     195
     196          CALL MPI_INTERCOMM_CREATE(MPI_COMM_MODEL,0,MPI_COMM_WORLD,
     197     &         0,0,toissmcomm,mpiRC)
     198
     199          CALL MPI_COMM_RANK(MPI_COMM_MODEL, my_local_rank, mpiRC)
     200          CALL MPI_COMM_SIZE(MPI_COMM_MODEL, my_local_size, mpiRC)
     201
     202          print*,'Oc My global rank',mpiMyWid,'MyLocal rank: ',
     203     &         my_local_rank
     204          print*,'Oc My world size:',numprocsworld,'My local size: ',
     205     &         my_local_size
     206       ENDIF
    217207#endif /* ALLOW_CPL_ISSM */
    218208
  • issm/trunk-jpl/test/MITgcm/code/eedie.F

    r22393 r22681  
    8888C--   MPI style multiple-process termination
    8989C--   ======================================
    90 #ifdef COMPONENT_MODULE
     90#if (defined COMPONENT_MODULE) || (defined ALLOW_CPL_ISSM)
    9191       IF ( useCoupler) CALL MPI_BARRIER( MPI_COMM_WORLD, mpiRC )
    9292#endif
     
    9494       IF ( useOASIS ) CALL OASIS_FINALIZE
    9595#endif
    96        CALL MPI_BARRIER( MPI_COMM_WORLD, mpiRC )
    9796       CALL MPI_FINALIZE  ( mpiRC )
    9897       IF ( mpiRC .NE. MPI_SUCCESS ) THEN
Note: See TracChangeset for help on using the changeset viewer.