ROMS I/O bug when using floats

Bug reports, work arounds and fixes

Moderators: arango, robertson

Post Reply
Message
Author
lanerolle
Posts: 157
Joined: Mon Apr 28, 2003 5:12 pm
Location: NOAA

ROMS I/O bug when using floats

#1 Post by lanerolle » Mon Aug 08, 2011 9:33 pm

I have ~43000 floats in my floats.in file (doing a simulation for a real-life problem) and when I run with it, I get a ROMS I/O error message in the screen output and the code crashes. I am also using MPI. If however, I go to the following code segment in ROMS/Utility/inp_par.F (SUBROUTINE read_FloatsPar (model, inp, out, Lwrite)] and comment it out, the code runs without any problems!!!

!-----------------------------------------------------------------------
! Report input parameters.
!-----------------------------------------------------------------------
!
! IF (Lwrite) THEN
! DO ng=1,Ngrids
! IF (Lfloats(ng)) THEN
! IF (ncount(ng).ne.Nfloats(ng)) THEN
! WRITE (stdout,60) ncount(ng), Nfloats(ng)
! exit_flag=4
! RETURN
! END IF
! WRITE (out,70) ng
! DO i=1,nentry(ng)
! IF (.not.spherical.and.(Fcoor(i,ng).eq.0)) THEN
! frmt='(i1,i2,i5,f10.4,2f8.2,f8.2,4f9.3)'
! ELSE
! frmt='(i1,i2,i5,f10.4,3f8.2,4f9.3)'
! END IF
! WRITE (out,frmt) Fcoor(i,ng), Ftype(i,ng), Fcount(i,ng), &
! & Ft0(i,ng), Fx0(i,ng), Fy0(i,ng), &
! & Fz0(i,ng), Fdt(i,ng), Fdx(i,ng), &
! & Fdy(i,ng), Fdz(i,ng)
! END DO
! WRITE (out,80) Nfloats(ng), &
! & 'Nfloats', &
! & 'Number of float trajectories to compute.'
! END IF
! END DO
! END IF

I tried de-bugging the code by incrementally increasing the number of floats in my floats.in file and the code runs with 1500 particles but crashes with 2000 particles. However, when I comment the above code segment, everything runs nicely even with 43000 particles!

lanerolle
Posts: 157
Joined: Mon Apr 28, 2003 5:12 pm
Location: NOAA

Re: ROMS I/O bug when using floats

#2 Post by lanerolle » Mon Aug 08, 2011 9:34 pm

Sorry, I should have mentioned, I am using ROMS svn version 526.

User avatar
m.hadfield
Posts: 521
Joined: Tue Jul 01, 2003 4:12 am
Location: NIWA

Re: ROMS I/O bug when using floats

#3 Post by m.hadfield » Tue Aug 09, 2011 12:41 am

Interesting. You shouldn't be seriously stressing the memory on your machine with 43,000 floats, let along, 2000.

Try building the model with USE_DEBUG, then run it and look for any array bounds violations.

Post Reply