Custom Query (964 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (322 - 324 of 964)

Ticket Owner Reporter Resolution Summary
#421 arango arango Done Averages and diagnostics output files revisited
Description

The logic for writing time-averaged fields (AVERAGES) and diagnostic terms (DIAGNOSTICS_TS, DIAGNOSTICS_UV) into respective output NetCDF files was redesigned to provide more flexibility and facilitate expansion in the future.

  • A new set of logical switches (T/F) Aout was added to control the time-averaged fields to write into output AVGNAME NetCDF file. These switches are set in standard input script, ocean.in:
    ! Logical switches (TRUE/FALSE) to activate writing of time-averaged
    ! fields into AVERAGE output file.
    
    Aout(idUvel) == T                          ! 3D U-velocity
    Aout(idVvel) == T                          ! 3D V-velocity
    Aout(idWvel) == T                          ! 3D W-velocity
    Aout(idOvel) == T                          ! omega vertical velocity
    Aout(idUbar) == T                          ! 2D U-velocity
    Aout(idVbar) == T                          ! 2D V-velocity
    Aout(idFsur) == T                          ! free-surface
    
    Aout(idTvar) == T T                        ! temperature and salinity
    
    Aout(idUsms) == T                          ! surface U-stress
    Aout(idVsms) == T                          ! surface V-stress
    Aout(idUbms) == T                          ! bottom U-stress
    Aout(idVbms) == T                          ! bottom V-stress
    
    Aout(idW2xx) == T                          ! 2D radiation stress, Sxx component
    Aout(idW2xy) == T                          ! 2D radiation stress, Sxy component
    Aout(idW2yy) == T                          ! 2D radiation stress, Syy component
    Aout(idU2rs) == T                          ! 2D radiation U-stress
    Aout(idV2rs) == T                          ! 2D radiation V-stress
    Aout(idU2Sd) == T                          ! 2D U-Stokes velocity
    Aout(idV2Sd) == T                          ! 2D V-Stokes velocity
    
    Aout(idW3xx) == T                          ! 3D radiation stress, Sxx component
    Aout(idW3xy) == T                          ! 3D radiation stress, Sxy component
    Aout(idW3yy) == T                          ! 3D radiation stress, Syy component
    Aout(idW3zx) == T                          ! 3D radiation stress, Szx component
    Aout(idW3zy) == T                          ! 3D radiation stress, Szy component
    Aout(idU3rs) == T                          ! 3D U-radiation stress
    Aout(idV3rs) == T                          ! 3D V-radiation stress
    Aout(idU3Sd) == T                          ! 3D U-Stokes velocity
    Aout(idV3Sd) == T                          ! 3D V-Stokes velocity
    
    Aout(idTsur) == T T                        ! surface net heat and salt flux
    Aout(idLhea) == T                          ! latent heat flux
    Aout(idShea) == T                          ! sensible heat flux
    Aout(idLrad) == T                          ! longwave radiation flux
    Aout(idSrad) == T                          ! shortwave radiation flux
    Aout(idevap) == T                          ! evaporation rate
    Aout(idrain) == T                          ! precipitation rate
    
    Aout(idDano) == T                          ! density anomaly
    Aout(idVvis) == T                          ! vertical viscosity
    Aout(idTdif) == T                          ! vertical T-diffusion
    Aout(idSdif) == T                          ! vertical Salinity diffusion
    Aout(idHsbl) == T                          ! depth of surface boundary layer
    Aout(idHbbl) == T                          ! depth of bottom boundary layer
    
    Aout(id2dRV) == T                          ! 2D relative vorticity
    Aout(id3dRV) == T                          ! 3D relative vorticity
    Aout(id2dPV) == T                          ! 2D potential vorticity
    Aout(id3dPV) == T                          ! 3D potential vorticity
    
    Aout(idu3dD) == T                          ! detided 3D U-velocity
    Aout(idv3dD) == T                          ! detided 3D V-velocity
    Aout(idu2dD) == T                          ! detided 2D U-velocity
    Aout(idv2dD) == T                          ! detided 2D V-velocity
    Aout(idFsuD) == T                          ! detided free-surface
    
    Aout(idTrcD) == T T                        ! detided temperature and salinity
    
    Aout(idHUav) == T                          ! u-volume flux, Huon
    Aout(idHVav) == T                          ! v-volume flux, Hvom
    Aout(idUUav) == T                          ! quadratic <u*u> term
    Aout(idUVav) == T                          ! quadratic <u*v> term
    Aout(idVVav) == T                          ! quadratic <v*v> term
    Aout(idU2av) == T                          ! quadratic <ubar*ubar> term
    Aout(idV2av) == T                          ! quadratic <vbar*vbar> term
    Aout(idZZav) == T                          ! quadratic <zeta*zeta> term
    
    Aout(idTTav) == T T                        ! quadratic <t*t> T/S terms
    Aout(idUTav) == T T                        ! quadratic <u*t> T/S terms
    Aout(idVTav) == T T                        ! quadratic <v*t> T/S terms
    Aout(iHUTav) == T T                        ! T/S volume flux, <Huon*t>
    Aout(iHVTav) == T T                        ! T/S volume flux, <Hvom*t>
    
    ! Logical switches (TRUE/FALSE) to activate writing of extra inert passive
    ! tracers other than biological and sediment tracers into the AVERAGE file.
    
     Aout(inert) == T                          ! inert passive tracers
    
  • The strategy here is to provide the user with switches to control which variables are written into the AVGNAME output file. The time-averages require global arrays to hold the accumulated sums. This increases the memory requirements of the model. This update only allocates those fields that are requested. Otherwise, the pointer for the array in the AVERAGE(ng)%avg... structure remains unassociated and does not use memory. For example, in mod_average.F we now have:
           IF (Aout(idFsur,ng)) THEN
             allocate ( AVERAGE(ng) % avgzeta(LBi:UBi,LBj:UBj) )
           END IF
    
  • Since we control the time-averaged fields with switches, there is not longer need for the following C-preprocessing options: AVERAGES_AKV, AVERAGES_AKS, AVERAGES_BEDLOAD, AVERAGES_FLUXES, AVERAGES_NEARSHORE, AVERAGES_QUADRATIC. These options are eliminated. The only option that is required to write any of these fields is AVERAGES. This is nice because we do not have to recompile, if such fields are needed.
  • The routine set_avg_tile was completely redesigned to use these control swithes. Notice that arrays are no longer passed as arguments. This facilitates adding new fields in the future.
          CALL set_avg_tile (ng, tile,                                      &
         &                   LBi, UBi, LBj, UBj,                            &
         &                   IminS, ImaxS, JminS, JmaxS,                    &
    # ifdef SOLVE3D
         &                   NOUT,                                          &
    # endif
         &                   KOUT)
    
    ...
    
            IF (Aout(idFsur,ng)) THEN
              DO j=JstrR,JendR
                DO i=IstrR,IendR
                  AVERAGE(ng)%avgzeta(i,j)=AVERAGE(ng)%avgzeta(i,j)+        &
         &                                 OCEAN(ng)%zeta(i,j,Kout)
                END DO
              END DO
            END IF
    
  • We still need the option AVERAGES_DETIDE to process time-averaged, detided fields. Notice that we also control the processing of these fields with the Aout switches. Also, I added the capability to detide temperature and salinity since we have better control of the memory requirements.
    Aout(idu3dD) == T                          ! detided 3D U-velocity
    Aout(idv3dD) == T                          ! detided 3D V-velocity
    Aout(idu2dD) == T                          ! detided 2D U-velocity
    Aout(idv2dD) == T                          ! detided 2D V-velocity
    Aout(idFsuD) == T                          ! detided free-surface
    
    Aout(idTrcD) == T T                        ! detided temperature and salinity
    
  • The time-averaged vorticity fields are moved from DIANAME to AVGNAME. This is a better place for such fields:
    Aout(id2dRV) == T                          ! 2D relative vorticity
    Aout(id3dRV) == T                          ! 3D relative vorticity
    Aout(id2dPV) == T                          ! 2D potential vorticity
    Aout(id3dPV) == T                          ! 3D potential vorticity
    
  • The private array Aout in several I/O and MPI communication routines routines was renamed to Awrk to avoid conflict with the Aout switches declared in mod_ncparam.F
  • A new set of logical switches (T/F) Dout was added to control the time-averaged diagnostic terms to write into output DIANAME NetCDF file. These switches are set in standard input script, ocean.in:
    ! Logical switches (TRUE/FALSE) to activate writing of time-averaged,
    ! 2D momentum (ubar,vbar) diagnostic terms into DIAGNOSTIC output file.
    
    Dout(M2rate) == T                          ! acceleration
    Dout(M2pgrd) == T                          ! pressure gradient
    Dout(M2fcor) == T                          ! Coriolis force
    Dout(M2hadv) == T                          ! horizontal total advection
    Dout(M2xadv) == T                          ! horizontal XI-advection
    Dout(M2yadv) == T                          ! horizontal ETA-advection
    Dout(M2hrad) == T                          ! horizontal total radiation stress
    Dout(M2hvis) == T                          ! horizontal total viscosity
    Dout(M2xvis) == T                          ! horizontal XI-viscosity
    Dout(M2yvis) == T                          ! horizontal ETA-viscosity
    Dout(M2sstr) == T                          ! surface stress
    Dout(M2bstr) == T                          ! bottom stress
    
    ! Logical switches (TRUE/FALSE) to activate writing of time-averaged,
    ! 3D momentum (u,v) diagnostic terms into DIAGNOSTIC output file.
    
    Dout(M3rate) == T                          ! acceleration
    Dout(M3pgrd) == T                          ! pressure gradient
    Dout(M3fcor) == T                          ! Coriolis force
    Dout(M3hadv) == T                          ! horizontal total advection
    Dout(M3xadv) == T                          ! horizontal XI-advection
    Dout(M3yadv) == T                          ! horizontal ETA-advection
    Dout(M3vadv) == T                          ! vertival advection
    Dout(M3hrad) == T                          ! horizontal total radiation stress
    Dout(M3vrad) == T                          ! vertical radiation stress
    Dout(M3hvis) == T                          ! horizontal total viscosity
    Dout(M3xvis) == T                          ! horizontal XI-viscosity
    Dout(M3yvis) == T                          ! horizontal ETA-viscosity
    Dout(M3vvis) == T                          ! vertical viscosity
    
    ! Logical switches (TRUE/FALSE) to activate writing of time-averaged,
    ! active (temperature and salinity) and passive (inert) tracer diagnostic
    ! terms into DIAGNOSTIC output file: [1:NAT+NPT,Ngrids].
    
    Dout(iTrate) == T T                        ! time rate of change
    Dout(iThadv) == T T                        ! horizontal total advection
    Dout(iTxadv) == T T                        ! horizontal XI-advection
    Dout(iTyadv) == T T                        ! horizontal ETA-advection
    Dout(iTvadv) == T T                        ! vertival advection
    Dout(iThdif) == T T                        ! horizontal total diffusion
    Dout(iTxdif) == T T                        ! horizontal XI-diffusion
    Dout(iTydif) == T T                        ! horizontal ETA-diffusion
    Dout(iTsdif) == T T                        ! horizontal S-diffusion
    Dout(iTvdif) == T T                        ! vertical diffusion
    
  • Similar Aout and Dout switches are added to all the biology and sediment models input scripts. For example, in bio_Fennel.in now we have:
! Logical switches (TRUE/FALSE) to activate writing of time-averaged fields
! into AVERAGE output file: [1:NBT,Ngrids].

Aout(idTvar) == 12*T                  ! biological tracer

! Logical switches (TRUE/FALSE) to activate writing of time-averaged,
! biological tracer diagnostic terms into DIAGNOSTIC output file:
! [1:NBT,Ngrids].

Dout(iTrate) == 12*T                  ! time rate of change
Dout(iThadv) == 12*T                  ! horizontal total advection
Dout(iTxadv) == 12*T                  ! horizontal XI-advection
Dout(iTyadv) == 12*T                  ! horizontal ETA-advection
Dout(iTvadv) == 12*T                  ! vertival advection
Dout(iThdif) == 12*T                  ! horizontal total diffusion
Dout(iTxdif) == 12*T                  ! horizontal XI-diffusion
Dout(iTydif) == 12*T                  ! horizontal ETA-diffusion
Dout(iTsdif) == 12*T                  ! horizontal S-diffusion
Dout(iTvdif) == 12*T                  ! vertical diffusion

! Logical switches (TRUE/FALSE) to activate writing of time-averaged,
! biological processes diagnostics terms into DIAGNOSTIC output file [Ngrids].

 Dout(iCOfx) == T                     ! air-sea CO2 flux
 Dout(iDNIT) == T                     ! denitrification flux
 Dout(ipCO2) == T                     ! CO2 partial pressure
 Dout(iO2fx) == T                     ! air-sea O2 flux
 Dout(iPPro) == T                     ! primary production
 Dout(iNO3u) == T                     ! NO3 uptake

Notice that diagnostics activated with DIGNOSTICS_BIO in the Fennel's model are also controlled with the Dout instead of the Hout switch above. By the way, a bug was corrected when writing Dout(iPPro) and friends. They need to be scaled before writing in wrt_diag.F:

      DO ivar=1,NDbio2d
        ifield=iDbio2(ivar)
        IF (Dout(ifield,ng)) THEN
          IF (ivar.eq.ipCO2) THEN
            scale=1.0_r8
          ELSE
            scale=1.0_r8/(REAL(nDIA(ng),r8)*dtBIO)   ! mmole m-2 day-1
          END IF
          ...
        END IF
      END DO

WARNING:


  • All the input ocean_*.in, bio_Fennel.in, ecosim.in, nemuro.in, npzd_Franks.in, npzd_Powell.in, npzd_iron.in, and sediment_*.in scripts were CHANGED in ROMS/External and User/External. Therefore, you need to update your particular application script so you can write these fields in output NetCDF files, with this and future version of the code when AVERAGES, AVERAGES_DETIDE, DIAGNOSTICS_TS, or DIAGNOSTICS_UV options are activated. I know that this may be inconvenient for you, but you are getting a lot of control now. Recall that all the standard input scripts are backward compatible with previous versions of the model. The routine inp_par.F will ignore all these new switches with old versions of the code.
  • The file varinfo.dat was also modified to include the metadata for temp_tide, temp_detide, salt_tide, and salt_detide.
  • If you added a biological model to ROMS, you need to upgrade your include file xxx_inp.h for inp_par.F. Use, for example, the file nemuro_inp.h for guideline.
#422 arango arango Fixed Typo in Dout(iTvadv)
Description

There was a missing closing parenthesis when reading the keyword Dout(iTvadv) from standard input in inp_par.F. As a consequence, the diagnostics for the vertical advection of momentum and tracers was not processed.

#423 arango jcwarner Fixed Missing module reference in ana_tobc.h
Description

Corrected a bug in ROMS/Functionals/ana_tobc.h when running the ESTUARY_TEST application. We need to include module mod_sediment:

#ifdef SEDIMENT
     USE mod_sediment
#endif
Batch Modify
Note: See TracBatchModify for help on using batch modify.
Note: See TracQuery for help on using queries.