Custom Query (986 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (553 - 555 of 986)

Ticket Owner Reporter Resolution Summary
#669 arango arango Done New option LIMIT_STFLX_COOLING
Description

A new option LIMIT_STFLX_COOLING is introduced in routine set_vbc to supress surface cooling if the model surface temperature is at freezing point (-2 Celsius) or below and the net heat flux is cooling. This can be used in the absent of a sea-ice model to limit cooling in shallow coastal areas, for example.

The following code is added to set_vbc.F:

#  ifdef LIMIT_STFLX_COOLING
!
!-----------------------------------------------------------------------
!  If net heat flux is cooling and SST is at freezing point or below
!  then suppress further cooling. Note: stflx sign convention is that
!  positive means heating the ocean (J Wilkin).
!-----------------------------------------------------------------------
!
!  Below the surface heat flux stflx(:,:,itemp) is ZERO if cooling AND
!  the SST is cooler that the threshold.  The value is retained if
!  warming.
!
!    cff3 = 0      if SST warmer than threshold (cff1) - change nothing
!    cff3 = 1      if SST colder than threshold (cff1)
!
!    0.5*(cff2-ABS(cff2)) = 0                        if flux is warming
!                         = stflx(:,:,itemp)         if flux is cooling
!
      cff1=-2.0_r8              ! nominal SST threshold to cease cooling
      DO j=JstrR,JendR
        DO i=IstrR,IendR
          cff2=stflx(i,j,itemp)
          cff3=0.5_r8*(1.0_r8+SIGN(1.0_r8,cff1-t(i,j,N(ng),nrhs,itemp)))
          stflx(i,j,itemp)=cff2-cff3*0.5_r8*(cff2-ABS(cff2))
        END DO
      END DO
#  endif

This option is also added to the tangent linear, representer, and adjoint versions of set_vbc.F.

This option was requested by our users at NOAA and it is working well in their coastal applications. Many thanks to John Wilkin for helping coding this limit in the surface net heat flux.

#673 arango jcwarner Fixed DOGBONE NetCDF contact files and the header file
Description

For the DOGBONE test case there are 2 issues:

1) the header file dogbone.h has

# define TS_U3HADVECTION"
# define TS_C4VADVECTION"

and this should be changed to (need to remove double quotes at the end)

# define TS_U3HADVECTION
# define TS_C4VADVECTION

2) The NetCDF contact file for the DOGBONE example seems corrupt. I generated this newer version using:

Gnames={'dogbone_grd_whole.nc','dogbone_grd_href3.nc'}

[S,G]=contact(Gnames,'dogbone_contact_refined.nc')

I am attaching the dogbone_contact_refined.nc. This worked for me. It needs to replace the dogbone_ngc_refined.nc.

#674 arango arango Done New option AGE_MEAN for inert passive tracers
Description

A new option AGE_MEAN was added to compute the Mean Age of a inert passive tracer when T_PASSIVE is activated. This can be used to compute, for example, the age and residence time of particular water parcels (like river runoff, dyes, contaminants, etc). An inert passive tracer in ROMS is one that does not contain a source/sink term in the right-hand-side like bio-geochemical and sediment tracers.

We need to have an even number of inert passive tracers (NPT). The code is implemented in pairs where odd index (say inert(1)...) corresponds to the inert tracer concentration to simulate and the even index is the respective Mean Age concentration (say inert(2)...). For example for NPT=4, we get the following output fields:

        double dye_01(ocean_time, s_rho, eta_rho, xi_rho) ;
                dye_01:long_name = "dye concentration, type 01" ;
                dye_01:units = "kilogram meter-3" ;
                dye_01:time = "ocean_time" ;
                dye_01:coordinates = "x_rho y_rho s_rho ocean_time" ;
                dye_01:field = "dye_01, scalar, series" ;
                dye_01:_FillValue = 1.e+37 ;

        double dye_01_age(ocean_time, s_rho, eta_rho, xi_rho) ;
                dye_01_age:long_name = "dye concentration mean age, type 01" ;
                dye_01_age:units = "second" ;
                dye_01_age:time = "ocean_time" ;
                dye_01_age:coordinates = "x_rho y_rho s_rho ocean_time" ;
                dye_01_age:field = "dye_01_age, scalar, series" ;
                dye_01_age:_FillValue = 1.e+37 ;

        double dye_02(ocean_time, s_rho, eta_rho, xi_rho) ;
                dye_02:long_name = "dye concentration, type 02" ;
                dye_02:units = "kilogram meter-3" ;
                dye_02:time = "ocean_time" ;
                dye_02:coordinates = "x_rho y_rho s_rho ocean_time" ;
                dye_02:field = "dye_02, scalar, series" ;
                dye_02:_FillValue = 1.e+37 ;

        double dye_02_age(ocean_time, s_rho, eta_rho, xi_rho) ;
                dye_02_age:long_name = "dye concentration mean age, type 02" ;
                dye_02_age:units = "second" ;
                dye_02_age:time = "ocean_time" ;
                dye_02_age:coordinates = "x_rho y_rho s_rho ocean_time" ;
                dye_02_age:field = "dye_02_age, scalar, series" ;
                dye_02_age:_FillValue = 1.e+37 ;

This option is implemented in pre_step3d.F and step3d_t.F and associated adjoint and tangent linear versions.

Many thanks to Gordon Zhang and John Wilkin for their help in coding and testing this option. For more information how this option can be used please check the following reference:

Zhang, W.G., J.L. Wilkin, and O.M.E. Schofield, 2010: Simulation of Water Age and Residence Time in New York Bight, J. Phys. Oceang., 40 (5), 965-982, doi:10.1175/2009JPO4249.1.


I also modified inp_par.F, read_asspar.F and read_physpar.F to pass an additional parameter to load_s1d and load_s2d corresponding to the dimension (Fdim) of the Fname string array in the calling program:

      FUNCTION load_s1d (Nval, Fname, Fdim, line, label, igrid, Nfiles, &
     &                   S)

      FUNCTION load_s2d (Nval, Fname, Fdim, line, label, ifile, igrid,  &
     &                   Nfiles, Ncount, idim, S)

This is to facilitate changes in the dimension of Fname in the calling program.

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