Custom Query (964 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (409 - 411 of 964)

Ticket Owner Reporter Resolution Summary
#515 arango arango Fixed IMPORTANT: serious bug in step3d_uv.F
Description

In src:ticket:512 (June 3, 2011) I reported and corrected a parallel bug in step3d_uv.F. It turns out that this did not affected the double-periodic applications (EW_PERIODIC plus NS_PERIODIC) and north-south periodic applications (NS_PERIODIC), but unnecessarily introduced an new bug in other applications. I was completely blinded by the debugger which operates on the *.f90 files and not on the full *.F. My bad!!! The logic in the section of the routine is delicate and complicated because we cannot have redundant assignments in the adjoint model.

I screw-up royally here. I sincerely apologize. If you updated or downloaded the code after June 3, 2011, YOU NEED TO UPDATE. This is a serious parallel bug. It is very serious in the adjoint model and their algorithms. I have been hunting for this new bug that I introduced since last month. It was extremely difficult to catch this bug in the new version of the code that will be released soon. This new version removed all the lateral boundary conditions CPP options because of the nesting algorithm (a massive change). We now use logical switches that are set-up in ocean.in.

We need to have the following conditionals around line 1122:

# if !defined EW_PERIODIC && !defined COMPOSED_GRID
        IF (DOMAIN(ng)%Western_Edge(tile)) THEN
          ...
        END IF
        IF (DOMAIN(ng)%Eastern_Edge(tile)) THEN
          ...
        END IF
# endif
# if !defined NS_PERIODIC && !defined COMPOSED_GRID
        IF (j.eq.0) THEN
          ...
        END IF
        IF (j.eq.Mm(ng)+1) THEN
          ...
        END IF
# endif

Similar logic need to be corrected for the coupling of the southern and northern boundary values for v component. The problem here is the that J-loop is pipelined and we cannot use the DOMAIN(ng)%Southern_Edge(tile) or DOMAIN(ng)%Northern_Edge(tile) resulting in a serious bug. My apologies...

The TLM, RPM, and ADM versions of these routines are also corrected.

#516 arango arango Done Miscelaneous updates
Description

Several updates are made in preparation for ROMS 3.6 release. Some changes were required to allow debugging of next ROMS major upgrade which includes phase II of nesting:

  • Introduced a new CPP option POSITIVE_ZERO to impose positive zero data in output NetCDF files. Starting F95, zero values can be signed (-0.0 or +0.0) following the IEEE 754 floating-point standard. This may produce different output data in serial and parallel applications. Changes are made to output routines nf_fwrite2d, nf_fwrite3d, nf_fwrite4d, nf_fwrite2d_bry, and nf_fwrite3d_bry to enforce positive output data when this option is activated. This essential when comparing serial and parallel solutions to guarantee a code free of parallel bugs.
  • Added calls to periodic boundary conditions in set_avg.F to guarantee periodic output in the time-averaged NetCDF file. The full ranges (IstrR,JstrR) and (IendR,JendR) have different values in periodic applications. Their values are not longer the full range of the C-grid, resulting in non-periodic boundaries with zero values instead. Many thanks to John Wilkin for bringing this to my attention. This has been in the code for years... I guess that we never looked in detail if the averaged data was really periodic. This only affects applications with periodic boundary conditions.
  • Corrected a bug in inquire.F when processing multiple files (time split data). It turns out that the local variable Fcount is not assigned after the first field is processed in a new file. For example, the temperature is processed correctly but not the salinity in a time split climatology files. The logic failed to initialize Fcount when processing salinity. Compilers treat uninitialized data differently. New logic is added to correct this problem and report uninitialized Fcount failures in the future. Many thanks Fred Castruccio for reporting this problem. I also added logic, suggested by Kate, to take into account a C-language null termination character in NetCDF string variable attributes. This occurs when creating NetCDF file with C-programs.
  • Changed the default ot the NetCDF creation mode (CMODE) to allow large file support in mod_netcdf.F:
    !
    !  Netcdf file basic creation mode flag. Its value is further modified
    !  in "netcdf_create" using the IOR function to include additional
    !  flags, like "nf90_clobber" to overwrite existing file. 
    !
    #if defined HDF5
    !     integer :: CMODE = nf90_hdf5         ! NetCDF-4/HDF5 format file
          integer :: CMODE = nf90_netcdf4      ! NetCDF-4/HDF5 format file
    #else
          integer :: CMODE = nf90_64bit_offset ! NetCDF 64-bit offset format
    !                                            (large file support)
    #endif
    
    The values of CMODE variable are further modified in netcdf_create using the IOR intrinsic function to include additional creation flags.
    #if defined PARALLEL_IO && defined DISTRIBUTE
          my_cmode=nf90_clobber
    !     my_cmode=IOR(nf90_mpiio, nf90_clobber) ! not available in old libs
          my_cmode=IOR(my_cmode, CMODE)
          ...
    #else
          my_cmode=IOR(nf90_clobber, CMODE)
          ...
    #endif
    
    The parallel I/O is still broken with the newer versions of the NetCDF/HDF libraries. It works with NetCDF version 4.1.1. The parameter nf90_mpiio is a newer parameter not available in older versions of the NetCDF library. Correcting the parallel I/O in ROMS with latest version of the NetCDF library is in my to-do list. Please be patient.
  • Removed the global NetCDF attribute header_file when DEBUGGING is activated to facilitate tracking parallel bugs in ROMS version 3.6 to be released shortly.
  • Corrected all the full I- and J-ranges in set_depths.F, tl_set_depths.F, rp_set_depths.F, and ad_set_depths.F to be IstrT:IendT and JstrT:JendT, respectively.
  • Added the sponge areas for application WC13 in routine ana_hmixcoef for backward compatibility with ROMS 3.6 and higher.
#517 arango arango Done Increased dimension of information parameters
Description

Various updates:

  • Increased dimension of Mvars to 800 in mod_netcdf.F. This is done to allow EcoSim (61 biological tracers) to run correctly. The metadata of ROMS is still growing ...
  • Similarly, increased dimension of MV and NV to 950 in mod_ncparam.F.
  • Corrected few misspellings in documentation.
Batch Modify
Note: See TracBatchModify for help on using batch modify.
Note: See TracQuery for help on using queries.