Opened 17 years ago
Closed 17 years ago
#198 closed bug (Fixed)
Initialization problem
Reported by: | m.hadfield | Owned by: | arango |
---|---|---|---|
Priority: | major | Milestone: | Release ROMS/TOMS 3.2 |
Component: | Nonlinear | Version: | 3.2 |
Keywords: | Cc: |
Description (last modified by )
The changes made in response to src:ticket:195 (OpenMP undeclared variables) appear to have broken the initialisation process in serial mode.
Specifically, if I run BENCHMARK in serial mode with bounds-checking enabled, Lm=512, Mm=64 (the smallest benchmark domain), NTileI=1, NtileJ=4, I hit a bounds-checking error in LMD_SWFRAC_TILE, where some elements of MIXING(ng)%Jwtype are equal to zero and are used as indices into an array dimensioned 1:5. Going back to the place where these should be set, namely INITIALIZE_MIXING in mod_mixing.F, it appears that this is called only once, and sets only the values in the southernmost tile.
The BENCHMARK application now runs OK in OpenMP mode.
Change History (1)
comment:1 by , 17 years ago
Description: | modified (diff) |
---|---|
Resolution: | → Fixed |
Status: | new → closed |
Yes, I screw-up. I changed the order of the CPP conditional. I need to test on #ifdef _OPENMP for the special statements and rest goes to the #else conditional. That is, the distributed-memory and serial (with or whithout partitions) applications. There is some trickery here.