Custom Query (986 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (496 - 498 of 986)

Ticket Owner Reporter Resolution Summary
#605 arango arango Fixed Corrected FLOATS restart
Description

Corrected a problem in def_floats.F when setting the DRIFTER(ng)%bounded switch during restart. If the floats have not been released yet at restart time, the values of Xgrid, Ygrid, and Zgrid will be _FillValue (i.e. 1.0E+37) in the FLOATS NetCDF file. The calls to netcdf_get_fvar in def_floats.F will replace such values with zeros.

Therefore, we need to read Zgrid first so the DRIFTER(ng)%bounded switch is FALSE in such cases to trigger the release. This switch will be set corrected if Xgrid and Ygrid are read last. The zero values in Xgrid and/or Ygrid due to unreleased floats will set DRIFTER(ng)%bounded=FALSE because of the lower bound is 0.5 in fractional coordinates. So the order of operations in def_floats.F is very important during restart.

The correct code is then:

# ifdef SOLVE3D
        CALL netcdf_get_fvar (ng, iNLM, ncname, 'Zgrid',                &
     &                        Tinp,                                     &
     &                        ncid = FLT(ng)%ncid,                      &
     &                        start = (/1,FLT(ng)%Rindex/),             &
     &                        total = (/Nfloats(ng),1/))
        IF (exit_flag.ne.NoError) RETURN

        DO l=1,Nfloats(ng)
          IF ((Tinp(l).gt.REAL(N(ng),r8)).or.                           &
     &        (Tinp(l).lt.0.0_r8)) THEN
            DRIFTER(ng)%bounded(l)=.FALSE.
          ELSE
            DRIFTER(ng)%bounded(l)=.TRUE.
            DO i=0,NFT
              DRIFTER(ng)%track(izgrd,i,l)=Tinp(l)
              DRIFTER(ng)%track(izrhs,i,l)=0.0_r8
            END DO
          END IF
        END DO
!
# endif
        CALL netcdf_get_fvar (ng, iNLM, ncname, 'Xgrid',                &
     &                        Tinp,                                     &
     &                        ncid = FLT(ng)%ncid,                      &
     &                        start = (/1,FLT(ng)%Rindex/),             &
     &                        total = (/Nfloats(ng),1/))
        IF (exit_flag.ne.NoError) RETURN

        DO l=1,Nfloats(ng)
          IF ((Tinp(l).gt.REAL(Lm(ng)+1,r8)-0.5_r8).or.                 &
     &        (Tinp(l).lt.0.5_r8)) THEN
            DRIFTER(ng)%bounded(l)=.FALSE.
          ELSE
            DRIFTER(ng)%bounded(l)=.TRUE.
            DO i=0,NFT
              DRIFTER(ng)%track(ixgrd,i,l)=Tinp(l)
              DRIFTER(ng)%track(ixrhs,i,l)=0.0_r8
            END DO
          END IF
        END DO
!
        CALL netcdf_get_fvar (ng, iNLM, ncname, 'Ygrid',                &
     &                        Tinp,                                     &
     &                        ncid = FLT(ng)%ncid,                      &
     &                        start = (/1,FLT(ng)%Rindex/),             &
     &                        total = (/Nfloats(ng),1/))
        IF (exit_flag.ne.NoError) RETURN

        DO l=1,Nfloats(ng)
          IF ((Tinp(l).gt.REAL(Mm(ng)+1,r8)-0.5_r8).or.                 &
     &        (Tinp(l).lt.0.5_r8)) THEN
            DRIFTER(ng)%bounded(l)=.FALSE.
          ELSE
            DRIFTER(ng)%bounded(l)=.TRUE.
            DO i=0,NFT
              DRIFTER(ng)%track(iygrd,i,l)=Tinp(l)
              DRIFTER(ng)%track(iyrhs,i,l)=0.0_r8
            END DO
          END IF
        END DO

Many thanks to Diego Narvaez for bringing this issue to my attention. This issue was also discussed in forum sometime ago but I was not able to reproduce it. We didn't have enough information.

I also correct a bug in packing.F when computing the norm in parallel. Many thanks to Andy for reporting this problem.

#606 arango arango Done Added new color palettes for the plotting package
Description

I added several new palettes to the plotting package based on the vivid colormap from Matlab Central.

This palette is good for salinity (vivid1_128.pal):

https://www.myroms.org/trac/Ssur_gom.png

and free-surface (vivid2_128.pal)

https://www.myroms.org/trac/ssh_gom.png

The above palettes are still linear.

#607 arango arango Fixed IMPORTANT: Corrected bug in t3dbc_im.F
Description

A bug was corrected in t3dbc_im.F when computing the passive/active boundary conditions for tracers. In the western boundary we need to have:

                IF (LBC(iwest,isTvar(itrc),ng)%nudging) THEN
                  IF ((dTdt*dTdx).lt.0.0_r8) THEN
                    tau=Tobc_in(itrc,ng,iwest)
                  ELSE
                    tau=Tobc_out(itrc,ng,iwest)
                  END IF
                  tau=tau*dt(ng)
                END IF

instead of

                IF (LBC(iwest,isTvar(itrc),ng)%nudging) THEN
                  tau=Tobc_out(itrc,ng,iwest)
                  IF ((dTdt*dTdx).lt.0.0_r8) THEN
                    tau=Tobc_in(itrc,ng,iwest)
                  ELSE
                    tau=tau*dt(ng)
                  END IF
                END IF

Similar corrections are done for the eastern, southern, and northern boundaries.

This error implies that the inflow tracer values are not nudged as strongly as we thought by a factor of dt in days. In some applications with long time scales, this bug is not that significant. However, it effects are more noticeable when the nudging scales are comparable with the length of a single time-step (dt).

Once corrected, you will not be able to reproduce previous solutions unless that you increase the nudging time scale, tnudg(itrc), by a factor of dt in days (dt/86400). The change in that nudging scale may not be that significant and you get the save tracer behavior at the boundary.

Similar boundary conditions for other model state variables were correct.

Many thanks to Tingting ZU for bringing this to my attention!

Batch Modify
Note: See TracBatchModify for help on using batch modify.
Note: See TracQuery for help on using queries.