Custom Query (964 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (703 - 705 of 964)

Ticket Owner Reporter Resolution Summary
#842 arango Fixed VERY IMPORTANT: Corrected bug in MPDATA
Description

In src:ticket:839 coupled of bugs were introduced to the MPDATA tracer advection in routine step3d_t.F. The following I-loop the wrong range:

!
!  If MPDATA, time-step horizontal advection for intermediate diffusive
!  tracer, Ta. Otherwise, time-step horizontal advection term.
!  Advective fluxes have units of Tunits m3/s.  The new tracer has
!  units of m Tunits.
!
          IF (Hadvection(itrc,ng)%MPDATA) THEN
            DO j=JstrVm2,Jendp2i
              DO i=IstrUm2,IstrUm2
                ...
                ...
              END DO
            END DO

We need to have instead:

           IF (Hadvection(itrc,ng)%MPDATA) THEN
             DO j=JstrVm2,Jendp2i
               DO i=IstrUm2,Iendp2i
                 ...
               END DO
             END DO

The I-range needs to be IstrUm2:Iendp2i. It is a copying and pasting typo. Many thanks to Chuning Wang for reporting this bug.

The second bug is due to a combination of CPP option and logical switch in the vertical diffusion term when SPLINES_VDIFF is activated. If MPDATA, the conditional logic is wrong, and the vertical diffusion term is not included. We need to have instead:

!
!-----------------------------------------------------------------------
!  Time-step vertical diffusion term.
!-----------------------------------------------------------------------
!
      J_LOOP2 : DO j=Jstr,Jend                  ! start pipelined J-loop
        DO itrc=1,NT(ng)
          ltrc=MIN(NAT,itrc)

# ifdef SPLINES_VDIFF
          IF (.not.((Hadvection(itrc,ng)%MPDATA).and.                   &
     &              (Vadvection(itrc,ng)%MPDATA))) THEN
            ...
          ELSE
# endif
            ...

# ifdef SPLINES_VDIFF
          END IF
# endif
        END DO
      END DO J_LOOP2

Again, many thanks to Chuning Wang for reporting for bringing this logic problem to my attention. There is a wrong combination of the CPP option and IF-conditional.

Made similar changes to the TLM, RPM, ADM versions of step3d_t.F. Luckily, the MPDATA is not supported in the adjoint-based algorithms.

#843 kate Fixed Subscript out of bounds on river tracer source when using HSIMT
Description

The following error is issued when using HSIMT tracer advection:

forrtl: severe (408): fort: (2): Subscript #2 of the array HVOM has value 73 which is greater than the upper bound of 72

Image              PC                Routine            Line        Source             
oceanG             000000000305D9E6  Unknown               Unknown  Unknown
oceanG             00000000014BED29  step3d_t_mod_mp_s         703  step3d_t.f90
oceanG             00000000014622DA  step3d_t_mod_mp_s          78  step3d_t.f90

On this particular tile, Hvom is dimensioned (0:326,0:72), but the test goes out to Jendp3 which is 73:

                  IF ((Hadvection(itrc,ng)%MPDATA).or.                    &
       &              (Hadvection(itrc,ng)%HSIMT)) THEN
                    LapplySrc=(IstrUm2.le.Isrc).and.                      &
       &                      (Isrc.le.Iendp2i).and.                      &
       &                      (JstrVm2.le.Jsrc).and.                      &
       &                      (Jsrc.le.Jendp3)

I have HSIMT set for the advection type in this case. This is probably not a new bug and I in fact stumbled on it when trying to track something else down.

#844 arango Done IMPORTANT: Some enhacements
Description

Added coupled of enhancements:

  • Added the capability to write surface air temperature (Tair) to history, quicksave and average, output NetCDF files. Sometimes it is advantageous to write out the air temperature used in the net surface heat fluxes when BULK_FLUX or atmospheric coupling is activated.

The standard input script roms.in includes:

...
Hout(idTair) == F       ! Tair               surface air temperature
...
Qout(idTair) == F       ! Tair               surface air temperature
...
Aout(idTair) == F       ! Tair               surface air temperature

Warning: All the ROMS standard input files were modified to include the logical switches to write out surface air temperature including the one on the test repository.

Code was added to the output routines def_avg.F, wrt_avg.F, wrt_his.F, and wrt_quick.F. The files def_his.F and def_quick.F already have the definitions for adding Tair.

  • Modified diag.F and close_io.F to provide more information when ROMS blows-up. The blowup_string in diag.F stores the reason why the model is blowing-up. For example, we can get:
    Blowing-up: Saving latest model state into  RESTART file
        REASON: MaxDensity =  9.1E+03
    
  • Updated ESMF coupling input script coupling_esmf.in to include the nested grid number (NestedGrid keyword) when merging field from DATA and ESM components.
    ! Weighted coefficients for the merging of DATA component fields with the same
    ! field from other ESM components. Melding coefficients are positive and MUST
    ! add to unity. They are read from an input NetCDF file ('WeightsFile'). The
    ! user needs to specify the NetCDF variable names for the weights for the DATA
    ! ('VnameDATA') and ESM ('VnameESM') components. Also, specify which grid
    ! ('NestedGrid') needs a merged field from DATA and ESM components. Currently,
    ! the weight values are only needed by the atmosphere component.
    
    WeightsFile(atmos) =  meld_weights_atm.nc
      VnameDATA(atmos) =  data_weight
       VnameESM(atmos) =  ocean_weight
     NestedGrid(atmos) =  1
    
    It is possible to couple directly with one of the nested grids only, for example:

https://www.myroms.org/trac/landsea_temp.png

Here, the red box is the regional ROMS grid, while the black domains are the atmospheric coarser (45km) and finer nest (15km) grids. The coupling between the ROMS and the atmospheric model can be done with either the coarser grid (NestedGrid(atmos)=1) or the refined grid (NestedGrid(atmos)=2). The DATA component is used to provide SST in grid cells not covered by ROMS. The weighted coefficients are used to meld DATA (SST from HyCOM) and ROMS components.

  • Added new item (debug_write) to coupling metadata file coupling_esmf.dat to specify which excanged field(s) are written into NetCDF files during debugging (DebugLevel > 2) to avoid generating lot and lots of files:
    'SST'
      'sea_surface_temperature'                        ! standard name
      'sea surface temperature'
      't(:,:,N,itemp)', 'ROMS'                         ! source variable, ROMS
      'C'                                              ! source units
      'Center'                                         ! source grid-cell
      'tsea', 'COAMPS'                                 ! destination variable, COAMPS
      'K'                                              ! destination units
      'Center'                                         ! destination grid-cell
      'SST'                                            ! DATA Model file variable
      'bilinear'                                       ! regridding method
      'none'                                           ! unmapped extrapolation method
      .TRUE.                                           ! connected to coupler
      .FALSE.                                          ! debug write into a NetCDF file
      273.15d0                                         ! importing add offset
      1.0d0                                            ! importing scale
    
Batch Modify
Note: See TracBatchModify for help on using batch modify.
Note: See TracQuery for help on using queries.