SCHISM FAQ

From ccrmwiki
Jump to: navigation, search


How to search archived messages from the SCHISM mailing list

You can easily search for archived messages on the same web where you registered yourself for the mailing list. Just log in, and select 'Archive' from the left of the screen, and then on right side of screen select 'Advanced search'.

My results show platform/compiler/CPU dependency

Due to some intricate differences between different compilers/platforms some minor differences in results are expected. Bit-by-bit match of results using different numbers of CPUs is impossible also. But the differences should be small and should stablize over time iteration.

Run crashed with a fort.11 error message "QUICKSEARCH: no intersecting edge...."

First you need to check the results before the crash (e.g. surface velocity) to see if anything is outrageously wrong. If the results look reasonable, this may be related to the version of SCHISM you are using; contact the developers for more info.

Run crashed with a fort.11 error message "bktrk_subs: overflow..." or "MAIN: nbtrk > mxnbt"

The backtracking (ELM) in SCHISM is parallelized across MPI processes, and some arrays need to be allocated to store trajectories that exited the augmented domain. The dimension of those arrays is defined in mxnbt and mnbt, which are proportional to local # of side and # of levels, and the proportionality constants are defined in param.in:

!----------------------------------------------------------------------- ! Dimensioning parameters for inter-subdomain btrack. !-----------------------------------------------------------------------

 s1_mxnbt = 0.5
 s2_mxnbt = 3.5

(Gradually) increasing these (to say 1, and 4) will solve the problem. Note that these constants only affect memory consumption and not accuracy.


How to do a tidal simulation with SCHISM?

The simplest way is to use SCHISM 2D. If you have to use SCHISM 3D, make sure the bottom boundary layer is reasonably resolved.

My run crashed; how can I find out why?

See Debugging after a run crashes.

How to impose river discharge if the depth is negative there?

In many estuaries the depths (with reference to MSL) are often negative. In SCHISM, the total depth (i.e., depth + elevation) must be positive at all times on open boundary nodes. A simple workaround is to artificially set a positive depth (say, 5m) along a small segment near the river boundaries (or add a small segment of "channel" with 5m beyond the boundary; usually ~100m will do). The depth can change sharply from 5m to negative values. Because of the imposed discharge, the inundation algorithm will quickly push water downstream and set up a surface slope automatically.

An alternative is to use an initial condition for elevation (elev.ic).

I have large velocity at open boundary

In hydrostatic models the incoming velocity should be specified at open boundary. Over-specification i.e. elevation+velocity b.c. there usually avoids the problem.

In reality it's often difficult to find velocity b.c., and so a useful way is to use 1-way nesting approach. Run SCHISM (in 3D or 2D, barotropic or baroclinic modes; obviously 2D model is the cheapest) for a larger or same grid, with indvel=1, and then use the scripts in Utility/OneWayNestScripts/ (in the source code bundle) to generate uv3D.th (follow the instructions in README) together with ifltype=4 in bctides.in. This approach is especially useful when the boundary is away from region of interest.