Opened 6 years ago

Closed 6 years ago

#756 closed upgrade (Fixed)

Important Corrections

Reported by: arango Owned by:
Priority: major Milestone: Release ROMS/TOMS 3.7
Component: Nonlinear Version: 3.7
Keywords: Cc:

Description

This update contains several minor corrections:

  • check_multifile.F: Added the source/sink files (SSF structure) for multifile management. Splitting the SSF input data into multiple files is now possible. Also, corrected the forcing data time range checking in the adjoint model. We need to have instead:
            IF (Lcheck) THEN
              IF (model.eq.iADM) THEN
                Tmin=Tscale*FRC(i,ng)%time_min(1)
                ...
              END IF
            END IF
    
    Many thanks to Julia Levin for bringing this problem to my attention.
  • qet_cycle.F: Replaced the multifile LowerBound logic with an ELSE statement to also allow computing the LOWER time-snapshot in the time cycling case:
    !
    !  If not processing a multi-file field, find LOWER time-snapshot
    !  and its associated time record (Tindex).
    !
          ELSE
            IF (job.gt.0) THEN     ! forward:   Tval(i) =< mday =< Tval(i+1)
              IF (Linside) THEN
                tstart=Tmin
                DO i=2,ntime
                  IF ((tstart.le.mday).and.(mday.le.Tval(i))) THEN
                    Tstr=tstart
                    Tindex=i-1     ! one is added when processing
                    EXIT
                  END IF
                  tstart=Tval(i)
                END DO
              ELSE
                Tstr=Tmax          ! LowerBound for next multifile or
                Tindex=ntime       ! time cycling
              END IF
            ELSE
              ...
            ENDIF
          ENDIF
    
    Many thanks to Dezhou Yang for reporting this issue.
  • read_asspar.F: Corrected loading of 4D-Var parameters HdecayB and VdecayB. The order of this input values in input script s4dvar.in is (4,1:NT,Ngrids):
               CASE ('HdecayB(isTvar)')
                 Npts=load_r(Nval, Rval, 4*MT*Ngrids, Rboundary)
                 DO ng=1,Ngrids
                   DO itrc=1,NT(ng)
                     DO ib=1,4
                       HdecayB(isTvar(itrc),ib,ng)=Rboundary(ib,itrc,ng)
                     END DO
                   END DO
                 END DO
                 ...
               CASE ('VdecayB(isTvar)')
                 Npts=load_r(Nval, Rval, 4*MT*Ngrids, Rboundary)
                 DO ng=1,Ngrids
                   DO itrc=1,NT(ng)
                     DO ib=1,4
                       VdecayB(isTvar(itrc),ib,ng)=Rboundary(ib,itrc,ng)
                     END DO
                   END DO
                 END DO
    
    The documentation in s4dvar.in indicates that the tracer boundary decorrelation scales need to be specified in the (1:4,1:NT,1:Ngrids) to facilitate having different values for each tracer. For example for Ngrids=1 and NT=2, we can have:
    ! Boundary conditions error covariance: horizontal, isotropic decorrelation
    ! scales (m). A value is expected for each boundary edge in the following
    ! order:
    !                  1: west  2: south  3: east  4: north
    
    HdecayB(isFsur) == 40.0d+3  40.0d+3   40.0d+3  40.0d+3  ! free-surface
    HdecayB(isUbar) == 40.0d+3  40.0d+3   40.0d+3  40.0d+3  ! 2D U-momentum
    HdecayB(isVbar) == 40.0d+3  40.0d+3   40.0d+3  40.0d+3  ! 2D V-momentum
    HdecayB(isUvel) == 40.0d+3  40.0d+3   40.0d+3  40.0d+3  ! 3D U-momentum
    HdecayB(isVvel) == 40.0d+3  40.0d+3   40.0d+3  40.0d+3  ! 3D V-momentum
    HdecayB(isTvar) == 4*40.0d+3  4*15.0d+3                 ! (4,1:NT) tracers
    
    ! Boundary conditions error covariance: vertical, isotropic decorrelation
    ! scales (m). A value is expected for each boundary edge in the following
    ! order:
    !                 1: west  2: south  3: east  4: north
    
    VdecayB(isUvel) == 10.0d0  10.0d0  10.0d0  10.0d0       ! 3D U-momentum
    VdecayB(isVvel) == 10.0d0  10.0d0  10.0d0  10.0d0       ! 3D V-momentum
    VdecayB(isTvar) == 4*10.d0  4*20.d0                     ! (4,1:NT) tracers
    
    It allows to use the compact notation to specify different values for temperature and salinity.
  • Added new makefile configurations files Linux-ftn-cray.mk and Linux-ftn-intel.mk. Many thnaks to Mark Hadfield for providing us these two new compiling files.

Change History (1)

comment:1 by arango, 6 years ago

Resolution: Fixed
Status: newclosed
Note: See TracTickets for help on using tickets.