Opened 16 years ago
Closed 16 years ago
#323 closed bug (WorksForMe)
sediment restart
Reported by: | jcwarner | Owned by: | arango |
---|---|---|---|
Priority: | major | Milestone: | Release ROMS/TOMS 3.3 |
Component: | Nonlinear | Version: | 3.3 |
Keywords: | Cc: |
Description (last modified by )
Several users have had issues with some of the sediment related parameters when restarting. Two of these issues deal with morphology/bath and bedload.
1) Morphology/bath: If an application is compiled without SED_MORPH, user runs an application, creates a restart. Then user activates SED_MORPH, recompiles, and restarts. This will result in an error because the initial file will not have var bath. However, user just wants to start with bath = h and go forward.
Suggested fix: Modify checkvars.F and change lines ~420-430 from
#if defined SEDIMENT && defined SED_MORPH IF (.not.have_var(idbath).and.get_var(idbath)) THEN IF (Master) WRITE (stdout,10) string, TRIM(Vname(1,idbath)), & & TRIM(ncname) exit_flag=2 RETURN END IF #endif
to:
#if defined SEDIMENT && defined SED_MORPH IF (.not.have_var(idbath).and.get_var(idbath)) THEN get_var(idbath)=.FALSE. ! IF (Master) WRITE (stdout,10) string, TRIM(Vname(1,idbath)), & ! & TRIM(ncname) ! exit_flag=2 ! RETURN END IF #endif
The added line of get_var bath = false will prevent the get_state to load it.
2) Bedload: If a user runs an application that does not have BEDLOAD, creates a restart file. Then user activates BEDLOAD and recompiles and runs. This will result in an error because get_state is looking for bedload variables
Suggested fix: Modify checkvars.F lines ~180-181 from
get_var(idUbld(itrc))=.TRUE. get_var(idVbld(itrc))=.TRUE.
to
get_var(idUbld(itrc))=.FALSE. get_var(idVbld(itrc))=.FALSE.
This will prevent get_state to look for these vars. They are not currently used from the restart. I tested these fixes with inlet test and they worked for my limited evaluation.
Change History (1)
comment:1 by , 16 years ago
Description: | modified (diff) |
---|---|
Resolution: | → WorksForMe |
Status: | new → closed |
No, really. The suggested changes will affect the perfect restart of the model. It is also possible that the perfect restart is not working in all sediment applications. However, this change is not recommended.
If the user wants to restart ROMS, it is wrong to recompile and change any of the CPP options. This will be not a restart However, the user still can use the restart file as an initial conditions in such cases that recompiling is needed. If this is the case, make sure that NRREC = 0. This will be deactivate the logic in checkvars.F to include the variables described in this post, which are used during restart.
This strategy is much better that modifying the code for an specific set-up.