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

Matthew Mazloff mmazloff at ucsd.edu
Thu Aug 23 21:37:05 EDT 2012


Hi Katy,

The only time I've seen this before is if the model run ends before it  
has had time to finish writing some of the output.  If this is showing  
up in writing of XC and YC, are you running many timesteps?  I could  
see this happening if you only run 1 timestep -- try running for longer.

Otherwise, I am afraid I am out of ideas.

-Matt


On Aug 23, 2012, at 11:50 AM, Katherine Quinn wrote:

> 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
>
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support




More information about the MITgcm-support mailing list