[MITgcm-support] Segmentation fault trying to capture location in ptracers array.

Michael Schaferkotter schaferk at bellsouth.net
Tue Jun 9 18:59:20 EDT 2015


Recompile with -g -C ( or with whatever the bounds check switch is with the compiler).

Also set the switches to trap segfault at run time.

You could add print statements for all counters, and extents values.
What is the value of MAX_LEN_FNAM, PTRACERS_num?
How is PTRACERS_names instantiated?


Sent from Here3.

> On Jun 9, 2015, at 16:49, Jonathan Lauderdale <jml1 at mit.edu> wrote:
> 
> Hello,
> 
> I am trying to add a few passive/preformed tracers to the end of the pTracers array. In my code (gchem_forcing_sep.F to be precise), I cycle through the extra tracers in a “do” loop and use PTRACERS_names to decide how to reset the surface values (e.g. preformed phosphate, ppre, is reset to surface po4 values; cpre to surface dic values). This works great. 
> 
> For a few calculations later, I want to capture the order of these extra tracers (if they exist) and pass them as arguments to a subroutine, similar to how dic_biotic_forcing is done. Sounds simple...My minimal working example loop is as follows:
> 
>>        INTEGER nTrac
>>        INTEGER itrc_apre,itrc_ppre,itrc_pco2 
>>        CHARACTER*(MAX_LEN_FNAM) fldName
>> 
>> [….reset preformed surface tracer concentration…]
>> 
>>        DO nTrac=1,PTRACERS_num,1
>>          fldName=PTRACERS_names(nTrac)
>>          IF ( fldName(1:4) .EQ. 'apre' ) THEN
>>             itrc_apre=nTrac         
>>          ELSEIF ( fldName(1:4) .EQ. 'ppre' ) THEN
>>             itrc_ppre=nTrac
>>          ELSEIF ( fldName(1:7) .EQ. 'atmpco2' ) THEN
>>             itrc_pco2=nTrac
>>          ENDIF         
>>        ENDDO
> 
> I keep getting the following error and I am having a nightmare trying to figure out what is wrong:
> 
>> Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
>> 
>> Backtrace for this error:
>> #0  0x160a7fa52
>> #1  0x160a8021e
>> #2  0x7fff92dc9f19
>> #3  0x10f784c68
>> #4  0x10f739973
>> #5  0x10f74ae31
>> #6  0x10f972c95
>> #7  0x10f9b2818
>> #8  0x10f9b2910
>> #9  0x10f92a61d
>> #10  0x10f9bbdb8
>> Segmentation fault: 11
> 
> 
> I did think it might have something to do with interfering with the do-loop index, nTrac, but I tried it with a dumb counter with no success:
> 
>>        INTEGER nTrac,tmp1,tmp2,tmp3
>>        INTEGER itrc_apre,itrc_ppre,itrc_pco2 
>>        CHARACTER*(MAX_LEN_FNAM) fldName
>> 
>> [….reset preformed surface tracer concentration…]
> 
>>        tmp1=0
>>        DO nTrac=1,PTRACERS_numInUse
>>          fldName=PTRACERS_names(nTrac)
>>          tmp1=tmp1+1
>>          IF ( fldName(1:4) .EQ. 'apre' ) THEN
>>             itrc_apre=tmp1 
>>          ENDIF         
>>        ENDDO
>>  
>>        tmp2=0
>>        DO nTrac=1,PTRACERS_numInUse
>>          fldName=PTRACERS_names(nTrac)
>>          tmp2=tmp2+1
>>          IF ( fldName(1:4) .EQ. 'ppre' ) THEN
>>             itrc_ppre=tmp2
>>          ENDIF         
>>        ENDDO
>> 
>>        tmp3=0
>>        DO nTrac=1,PTRACERS_numInUse
>>          fldName=PTRACERS_names(nTrac)
>>          tmp3=tmp3+1
>>          IF ( fldName(1:7) .EQ. 'atmpco2' ) THEN
>>             itrc_pco2=tmp3
>>          ENDIF         
>>        ENDDO
> 
> I guess I will just have to hard code these locations in if not, but it would be nice to get this working! Thanks in advance!
> 
> Jon
> 
> ___________________________________________________________________________
> Dr. Jonathan M. Lauderdale
> Postdoctoral Research Associate
> Department of Earth, Atmosphere and Planetary Sciences 
> Massachusetts Institute of Technology 
> 77 Massachusetts Avenue 
> Cambridge, MA 02139, USA 
> Office: +1 617 324 3401 
> Cell   : +1 617 304 5661
> Email: <mailto:jml1 at mit.edu>
> Web: <http://eaps-www.mit.edu/paoc/people/jonathan-lauderdale>
> Association of Polar Early Career Scientists <http://www.apecs.is/>
> ___________________________________________________________________________
> 
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mitgcm.org/pipermail/mitgcm-support/attachments/20150609/24fdc1c1/attachment-0001.htm>


More information about the MITgcm-support mailing list