Opened 15 years ago

Closed 15 years ago

#323 closed bug (WorksForMe)

sediment restart — at Version 1

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 arango)

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 arango, 15 years ago

Description: modified (diff)
Resolution: WorksForMe
Status: newclosed

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.

Note: See TracTickets for help on using tickets.