Custom Query (964 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (562 - 564 of 964)

Ticket Owner Reporter Resolution Summary
#685 arango arango Fixed IMPORTANT: Corrected two-way nesting in layers with more than one grid
Description

In applications with more than one refined grid in a nested layer (GridsInLayer(ng) > 1), the two-way nesting was applied only to the first grid in that layer. The other grid(s) interactions in such layer were just one-way.

This was corrected by just changing function do_twoway (in nesting.F) and changing main2d.F and main3d.F from:

            DO il=NestLayers,1,-1
              IF (do_twoway(nl,il,istep,ng)) THEN
                CALL nesting (ng, iNLM, n2way)
              END IF
            END DO

to

            DO il=NestLayers,1,-1
              DO ig=1,GridsInLayer(il)
                ng=GridNumber(ig,il)
                IF (do_twoway(nl,il,ng,istep)) THEN
                  CALL nesting (ng, iNLM, n2way)
                END IF
              END DO
            END DO

Notice that the loop DO ig=1,1GridsInLayer(il) was removed from function do_twoway and put it in main2d.F and main3d.F instead.

This is not fatal for a particular application. It is just that all grids interactions is not two-way. It only affect application with more than one refinement grid in a particular nested layer, GridsInLayer(ng) > 1.

Many thanks to Francisco López for bringing this to my attention.

#689 arango arango Done Important: Big update the Tracer Diffusion Algorithms
Description

In src:ticket:627 update, The CPP option TCLIMATOLOGY that was used to process tracer climatology fields was eliminated and replaced with logical switch LtracerCLM, which is read from input script ocean.in:

! Logical switches (TRUE/FALSE) to read and process climatology fields.
! See glossary below for details.

     LsshCLM == F                          ! sea-surface height
      Lm2CLM == F                          ! 2D momentum
      Lm3CLM == F                          ! 3D momentum

  LtracerCLM == T T                        ! temperature, salinity, inert

This was done to facilitate processing or not climatology fields in multiple nesting grids.

This change affected the horizontal diffusion of tracers in routines t3dmix2_s.h, t3dmix2_geo.h, t3dmix2_iso.h, t3dmix4_s.h, t3dmix4_geo.h, and t3dmix4_iso.h when the tracer climatology is used in the diffusion operator. We need now to provide code to using the LtracerCLM(itrc,ng) logical instead of a CPP option that is now obsolete.

For example, in t3dmix2_s.h we now have:

!
!  Compute XI- and ETA-components of diffusive tracer flux (T m3/s).
!
          DO j=Jstr,Jend
            DO i=Istr,Iend+1
#ifdef DIFF_3DCOEF
              cff=0.25_r8*(diff3d_r(i,j,k)+diff3d_r(i-1,j,k))*          &
     &            pmon_u(i,j)
#else
              cff=0.25_r8*(diff2(i,j,itrc)+diff2(i-1,j,itrc))*          &
     &            pmon_u(i,j)
#endif
#if defined TS_MIX_STABILITY
              FX(i,j)=cff*                                              &
     &                (Hz(i,j,k)+Hz(i-1,j,k))*                          &
     &                (0.75_r8*(t(i  ,j,k,nrhs,itrc)-                   &
     &                          t(i-1,j,k,nrhs,itrc))+                  &
     &                 0.25_r8*(t(i  ,j,k,nstp,itrc)-                   &
     &                          t(i-1,j,k,nstp,itrc)))
#elif defined TS_MIX_CLIMA
              IF (LtracerCLM(itrc,ng)) THEN
                FX(i,j)=cff*                                            &
     &                  (Hz(i,j,k)+Hz(i-1,j,k))*                        &
     &                  ((t(i  ,j,k,nrhs,itrc)-tclm(i  ,j,k,itrc))-     &
     &                   (t(i-1,j,k,nrhs,itrc)-tclm(i-1,j,k,itrc)))
              ELSE
                FX(i,j)=cff*                                            &
     &                  (Hz(i,j,k)+Hz(i-1,j,k))*                        &
     &                  (t(i,j,k,nrhs,itrc)-t(i-1,j,k,nrhs,itrc))
              END IF
#else
              FX(i,j)=cff*                                              &
     &                (Hz(i,j,k)+Hz(i-1,j,k))*                          &
     &                (t(i,j,k,nrhs,itrc)-t(i-1,j,k,nrhs,itrc))
#endif
            END DO
          END DO

This update is complicated because include changes the NLM, TLM, RPM, and ADM versions of these routines. This changes get a little complex in the geopotential and isopycnic (epineutral) diffudion tensors.

Notice that we now have the following CPP options to characterize the tracer diffusion:

  • DIFF_3DCOEF: Used internally for spatially dependent horizontal diffusion coefficient, which is currently activated for TS_U3AVD_SPLIT and TS_DIFF4. However, the logic is included in all the tracer diffusion routines to facilitate spatially varying diffusion in the future.
  • TS_MIX_CLIMA: Use if diffusion of tracer perturbation (t-tclm). Previously, we used option CLIMA_TS_MIX to achieved this but it was renamed for consistency.
  • TS_MIX_MAX_SLOPE: Use if maximum slope in epineutral diffusion in routines t3dmix2_iso.h or t3dmix4_iso.h when MIX_ISO_TS is activated.
  • TS_MIX_MIN_STRAT: Use if minimum stratification in epineutral diffusion in routines t3dmix2_iso.h or t3dmix4_iso.h when MIX_ISO_TS is activated.
  • TS_MIX_STABILITY: Use if weighting diffusion between two time levels for stability. Previously, we used option MIX_STABILITY to achieved this but it was renamed for uniqueness and consistency.

Many thanks to Dezhou Yang for bringing this issue to my attention.

#690 arango arango Done Important: Updated Tracer Point Sources and Sinks
Description

Notice that the Point Sources and Sinks (like river runoff, etc) in ROMS are implemented in two ways:

(1) As a transport flux in the horizontal advection equations. This is usually the standard way and it is controlled by input logical switch LuvSrc in ocean.in for the specified nested grid.

(2) As a vertical mass flux divergence in the omega-velocity equation. This is alternative approach is controlled by input logical switch LwSrc in ocean.in for the specified nested grid.

From now on, we are making sure that only one of the above methods are allowed for a particular nested grid, ng. Otherwise, the Point Sources/Sinks will be applied twice.

In this update, the logic to use LuvSrc and LwSrc is cleaned to use either of the above methodologies. The method (2) is also added to the tracer predictor step in pre_step3d.F in the same way as the corrector step in step3d_t.F.

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