Custom Query (964 matches)
Results (559 - 561 of 964)
Ticket | Owner | Reporter | Resolution | Summary |
---|---|---|---|---|
#681 | 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:
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:
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 | 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 | 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. |