Custom Query (964 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (559 - 561 of 964)

Ticket Owner Reporter Resolution Summary
#681 arango arango Done IMPORTANT: replacing option SPLINES
Description

The C-preprocessing option SPLINES have been in ROMS since the beginning. It is used to activate conservative, parabolic splines reconstruction of vertical derivatives in the following routines:

  • gls_corstep.F: vertical velocity shear for Richardson Number (if option GLS_MIXING)
  • my25_corstep.F: vertical velocity shear for Richardson Number (if option MY25_MIXING)
  • lmd_bkpp.F: bulk Richardson Number (if options LMD_MIXING and LMD_BKPP)
  • lmd_skpp.F: bulk Richardson Number (if options LMD_MIXING and LMD_SKPP)
  • lmd_vmix.F: bulk Richardson Number (if option LMD_MIXING)
  • step3d_t.F: vertical diffusion
  • step3d_uv.F: vertical viscosity

There has been several messages in the ROMS forum discussing the problems when SPLINES is used to compute vertical viscosity and vertical diffusion. This was first brought to our attention by Evgeny Logvinov when checking the stress condition (sustr = Akv * du/dz and svstr = Akv * dv/dz). He noticed that the stress condition was not holding and he got a very sharp change in du/dz and dv/dz 1m below the surface. Everything worked fine when SPLINES was not activated. Similar behavior was discussed Chris Sherwood.

I know of several users that avoid using the SPLINES option because the of the surface and bottom stress condition needs to be preserved. However, it is nice is nice to have the parabolic splines reconstruction when computing either Richardson Number or Bulk Richardson Number. The vertical velocity shear (used as a squared quantity in the denominator) is a very noisy quantity so using parabolic splines yields a smoother values.

Therefore, the C-preprocessing option SPLINES is removed and replaced with following three options for more flexibility:

  • SPLINES_VDIFF: conservative, parabolic splines reconstruction for vertical diffusion on active and passive tracers (step3d_t.f).
  • SPLINES_VVISC: conservative, parabolic splines reconstruction for vertical diffusion on active and passive tracers (step3d_uv.f).
  • RI_SPLINES: conservative, parabolic splines reconstruction for vertical velocity shear used in the Richardson Number (gls_corstep.F and my25_corstep.F) and Bulk Richardson Number (lmd_bkpp.F, lmd_skpp.F, and lmd_vmis.F).

WARNING: ROMS will issue an error message if the option SPLINES is activated after this update. The user will need to activate the SPLINES_VVISC and SPLINES_VDIFF. Also you will need to activate RI_SPLINES if using GLS_MIXING, LMD_MIXING, MY25_MIXING. Therefore, users need to update the header file for their applications.

Several header files were updated in the trunk repository and test repositories. I highly recommend users to update their repositories.


The new options provide more flexibility while preserving legacy codes and applications. Users should get identical results if activating the new options described above.

#682 arango arango Fixed Profile Report
Description

The routines wclock_on and wclock_off (timers.F) fail to report the profile timings in distributed-memory applications (MPI). This has been broken for awhile since the OpenMP directives were re-worked (see src:ticket:552). In that update the numthreads was modified in MPI to have the number of distributed nodes:

      CALL mpi_comm_size (OCN_COMM_WORLD, numthreads, MyError)

This affected the logic in wclock_on and wclock_off in MPI applications, which needs numthreads = 1. To correct this problem, both routines were modified to have:

!
!  Set number of subdivisions, same as for global reductions.
!
#ifdef MPI
      NSUB=1
#else
      NSUB=numthreads
#endif

then, we use NSUB instead of numthreads in the conditional statement in wclock_on:

       IF (thread_count.eq.NSUB) thread_count=0

and in wclock_off:

        IF (thread_count.eq.NSUB) THEN
          thread_count=0
          ...
        END IF

I also improved the time profile report in nested grid applications.

Many thanks to Kate Hedstrom for reminding me about this problem.

#684 arango arango Fixed Bug in routine check_massflux
Description

In routine check_massflux of module nesting.F, the variable ng needs to be ngf instead:

 # ifdef NESTING_DEBUG
           IF (DOMAIN(ngf)%SouthWest_Test(tile)) THEN
             IF (Master) THEN
               WRITE (300,10) 'Western Boundary Mass Fluxes: ',          &
      &                       cr, dg, rg, iif(rg), iic(rg), INT(time(rg))
            END IF
          END IF
# endif

...

# ifdef NESTING_DEBUG
           IF (DOMAIN(ngf)%SouthWest_Test(tile)) THEN
             IF (Master) THEN
               WRITE (300,10) 'Eastern Boundary Mass Fluxes: ',          &
      &                       cr, dg, rg, iif(rg), iic(rg), INT(time(rg))
            END IF
          END IF
# endif

...

# ifdef NESTING_DEBUG
           IF (DOMAIN(ngf)%SouthWest_Test(tile)) THEN
             IF (Master) THEN
               WRITE (300,20) 'Southern Boundary Mass Fluxes: ',         &
      &                       cr, dg, rg, iif(rg), iic(rg), INT(time(rg))
            END IF
          END IF
# endif

...

# ifdef NESTING_DEBUG
           IF (DOMAIN(ngf)%SouthWest_Test(tile)) THEN
             IF (Master) THEN
               WRITE (300,20) 'Northern Boundary Mass Fluxes: ',         &
      &                       cr, dg, rg, iif(rg), iic(rg), INT(time(rg))
            END IF
          END IF
# endif

...

# ifdef NESTING_DEBUG
          IF (DOMAIN(ng)%SouthWest_Test(tile)) THEN
            IF (Master) THEN
              WRITE (300,10) 'Western Boundary Mass Fluxes: ',          &
     &                       cr, dg, rg, iif(rg), iic(rg), INT(time(rg))
            END IF
          END IF
# endif

This code is only used for debugging and testing by writing several diagnostics into fort.300 file. It does not affect the nesting solution because it is not used in the algorithms.

Many thanks to Jamie Pringle 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.