[MITgcm-support] using gather/scatter to work with global fields

Katherine Quinn kquinn at aer.com
Thu Aug 23 14:50:53 EDT 2012


Hi Matt,
DISABLE_MPI_READY_TO_RECEIVE already is undefined.
Any other ideas?  All this barrier, process, tiles stuff is driving me 
batty.
cheers, Katy

Katherine Quinn wrote:
> Matthew Mazloff mmazloff at ucsd.edu
> Thu Aug 23 14:03:09 EDT 2012
> 
> Hi Katherine
> 
> Do you have
> DISABLE_MPI_READY_TO_RECEIVE
> defined.  If you do, perhaps try it with it undefined.
> 
> -Matt
> 
> Katherine Quinn wrote:
>> Hi all,
>> Within the MITgcm code (not matlab) I need to gather tiled variables 
>> into a global array, specifically I'm trying to gather XC and YC.  I'm 
>> using the subroutine gather_2d_r4, which suggests "barrier calls" 
>> before and after but it seems no matter what various barrier calls I 
>> use, when I look at the global array there's chunks of tiles missing.  
>> Other relevant info - the MITgcm setup is for ecco version 4 runs, 
>> with all_exch2 turned on.
>> Here's the relevant portions of my code, please suggest what I'm doing 
>> wrong:
>>
>> C     == Global variables ===
>> #include "SIZE.h"
>> #include "EEPARAMS.h"
>> #include "EESUPPORT.h"
>> #include "PARAMS.h"
>> #ifdef ALLOW_EXCH2
>> # include "W2_EXCH2_SIZE.h"
>> # include "W2_EXCH2_TOPOLOGY.h"
>> # include "W2_EXCH2_PARAMS.h"
>> #endif /* ALLOW_EXCH2 */
>> #include "EEBUFF_SCPU.h"
>> #include "GRID.h"
>>
>> C     INPUT/OUTPUT PARAMETERS:
>> C     == Routine arguments ==
>> C     myThid - Thread number for this instance of the routine.
>>       INTEGER  myThid
>>
>> C     LOCAL VARIABLES:
>>       LOGICAL zeroBuff, useExch2ioLayOut
>>       INTEGER xSize, ySize
>> #ifdef ALLOW_EXCH2
>>       _RL  XC_global(exch2_global_Nx,exch2_global_Ny)
>>       _RL  YC_global(exch2_global_Nx,exch2_global_Ny)
>> #else  /* ALLOW_EXCH2 */
>>       _RS  XC_global(Nx,Ny)
>>       _RS  YC_global(Nx,Ny)
>> #endif /* ALLOW_EXCH2 */
>>
>> C Set dimensions and flags (e.g. mdsio_write_field.F)
>>       xSize = Nx
>>       ySize = Ny
>>       useExch2ioLayOut = .FALSE.
>>       zeroBuff = .TRUE.
>> #ifdef ALLOW_EXCH2
>>       IF ( W2_useE2ioLayOut ) THEN
>>          xSize = exch2_global_Nx
>>          ySize = exch2_global_Ny
>>          useExch2ioLayOut = .TRUE.
>>       ENDIF
>> #endif /* ALLOW_EXCH2 */
>>
>> C gather XC and YC into global model grid
>>
>>       CALL BAR2( myThid )
>>       _BEGIN_MASTER( myThid )
>>       CALL GATHER_2D_R4(
>>      O                  XC_global,
>>      I                  XC,
>>      I                  xSize, ySize,
>>      I                  useExch2ioLayOut,
>>      I                  zeroBuff,
>>      I                  myThid )
>>       _END_MASTER( myThid )
>>       CALL BAR2( myThid )
>>
>>       _BEGIN_MASTER( myThid )
>>       CALL GATHER_2D_R4(
>>      O                  YC_global,
>>      I                  YC,
>>      I                  xSize, ySize,
>>      I                  useExch2ioLayOut,
>>      I                  zeroBuff,
>>      I                  myThid )
>>       _END_MASTER( myThid )
>>       CALL BAR2( myThid )
>>
>>
>>
> 

-- 
Katherine J. Quinn
Atmospheric and Environmental Research         voice: 781-761-2234
131 Hartwell Avenue                              fax: 781-761-2299
Lexington, MA  02421-3126                     e-mail: kquinn at aer.com



More information about the MITgcm-support mailing list