[MITgcm-devel] ptracers / SOM problem

Ryan Abernathey rpa at MIT.EDU
Mon Mar 12 15:37:36 EDT 2012


Hi MITgcm developers,

I have added a very simple feature to the ptracers package: the ability to periodically reset the ptracers to their initial concentration. The code works fine, except when the 2nd-order moment (Prather) advection scheme is in use. In this case, the resetting code causes the model to crash hard. I am wondering if someone who understands the SOM code better than me can offer any insight. What I am trying to do is very simple, and I don't understand the source of the error.

Thanks a lot!
-Ryan


I have narrowed the problem down to a single line of code (indicated with a comment) within this block. (Most of this code was poached from ptracers_init_varia.F.) It evidently doesn't like it when I try to reset the values of the _Ptracers_som variable.

#ifdef PTRACERS_ALLOW_DYN_STATE
         IF ( PTRACERS_SOM_Advection(iTracer) ) THEN
           WRITE(msgBuf,'(A,I3,A)')'PTRACERS_RESET: iTracer = ',
     &                      iTracer,
     &                      ' : resetting 2nd-order moments '
        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
     &           SQUEEZE_RIGHT, myThid )
           DO n = 1,nSOM
            DO k=1,Nr
             DO j=1-OLy,sNy+OLy
              DO i=1-OLx,sNx+OLx
c  This next line is what causes the crash
               _Ptracers_som(i,j,k,bi,bj,n,iTracer) = 0. _d 0
              ENDDO
             ENDDO
            ENDDO
           ENDDO
           CALL GAD_EXCH_SOM( _Ptracers_som(:,:,:,:,:,:,iTracer),
     &                        Nr, myThid )
         ENDIF
#endif /* PTRACERS_ALLOW_DYN_STATE */


The error begins as...

MPI: On host r217i0n15, Program /nobackupp1/rpaberna/GCM/channel_new/200x400x40/build/mitgcmuv, Rank 126, Process 4391 received signal SIGSEGV(11)
MPI: --------stack traceback-------
*** glibc detected *** ./mitgcmuv: malloc(): memory corruption (fast): 0x000000000bdf09d0 ***

...continues with an enormous stack dump, and ends with the following somewhat useful information

MPI: #1  0x00002aaaaafcce8c in mpi_sgi_system (command=<value optimized out>)
MPI:     at sig.c:98
MPI: #2  MPI_SGI_stacktraceback (command=<value optimized out>) at sig.c:353
MPI: #3  0x00002aaaaafcd4d3 in first_arriver_handler (
MPI:     stack_trace_sem=<value optimized out>, signo=<value optimized out>)
MPI:     at sig.c:511
MPI: #4  slave_sig_handler (stack_trace_sem=<value optimized out>, 
MPI:     signo=<value optimized out>) at sig.c:595
MPI: #5  <signal handler called>
MPI: #6  0x000000000056e9b5 in ptracers_reset_ ()
MPI: #7  0x0000000000569b5f in ptracers_output_ ()
MPI: #8  0x000000000060d189 in do_the_model_io_ ()
MPI: #9  0x000000000065349e in initialise_varia_ ()
MPI: #10 0x000000000066ebfc in the_main_loop_ ()
MPI: #11 0x000000000066ee4c in the_model_main_ ()
MPI: #12 0x00000000005dd2ed in MAIN__ ()
MPI: #13 0x0000000000009fe0 in ?? ()
MPI: #14 0x0000000000000000 in ?? ()




More information about the MITgcm-devel mailing list