List of small bugs with ROMS/TOMS Version 2.2

Bug reports, work arounds and fixes

Moderators: arango, robertson

Post Reply
Message
Author
User avatar
arango
Site Admin
Posts: 1351
Joined: Wed Feb 26, 2003 4:41 pm
Location: DMCS, Rutgers University
Contact:

List of small bugs with ROMS/TOMS Version 2.2

#1 Unread post by arango »

This post contains small bugs in ROMS/TOMS Version 2.2. They will be corrected in the next version. For now, please download the following tar file and untar from the ROMS/TOMS tree directory (where the Version file is located):

http://www.myroms.org/links/corrections-2-2.tar.gz (updated on December 11, 2006).

All the files below will be replaced with the new ones. I recommend to visit this posting frequently for updates. Many thanks to all of you who reported this bugs. Here is the summary of the bugs that we have so far:

(*) AIX-xlf.mk: remove the colon form FC macro definition to allow MPI applications.

(*) bulk_flux.F: Need to store latent heat of vaporization (Hlv) in a 2D private array because of the EMINUSP option.

(*) diag.F: Corrected a bug in the computation of volume-averaged kinetic energy.

(*) distribute.F: Corrected a parallel bug for unbalanced partitions where the automatic private arrays communication between nodes are of different size. Fixed a problem in routine mp_boundary.

(*) ecosim.h: Added new formulation for the pigment calculation and corrected a bug in the growth of pigment biomass.

(*) grid_coords.F: Corrected a bug in the computation of the grid coordinates for floats and stations from (lon,lat) values. This problem is only found at the tile boundaries.

(*) extract_sta.F: Multyply interpolated station data with scale parameter Ascl. This ocurrs in several places in routines extract_sta2d and extract_sta3d.

(*) get_state.F: In order to read the inert and biology tracers from the NetCDF file, change line 106:

Code: Select all

from

    get_var(inert(itrc))=.TRUE.

to

    get_var(idTvar(inert(itrc)))=.TRUE.
and line 135:

Code: Select all

from

    get_var(idbio(itrc))=.TRUE.

to

    get_var(idTvar(idbio(itrc)))=.TRUE.


(*) get_state.F change the argument to varnam starting at line 183:

Code: Select all

from

#  ifdef BEDLOAD
        DO itrc=1,NST
          IF (TRIM(varnam(itrc)).eq.TRIM(Vname(1,idUbld(itrc)))) THEN
            have_var(idUbld(itrc))=.TRUE.
          END IF
          IF (TRIM(varnam(itrc)).eq.TRIM(Vname(1,idVbld(itrc)))) THEN
            have_var(idVbld(itrc))=.TRUE.
          END IF
        END DO
#  endif

to

#  ifdef BEDLOAD
        DO itrc=1,NST
          IF (TRIM(varnam(i)).eq.TRIM(Vname(1,idUbld(itrc)))) THEN
            have_var(idUbld(itrc))=.TRUE.
          END IF
          IF (TRIM(varnam(i)).eq.TRIM(Vname(1,idVbld(itrc)))) THEN
            have_var(idVbld(itrc))=.TRUE.
          END IF
        END DO
#  endif

(*) initial.F: Remove conditional to allow correct restart starting at line 402:

Code: Select all

from

#ifdef INI_FILE
      IF (nrrec.eq.0) THEN
        CALL get_state (ng, iNLM, 1, INIname(ng), IniRec, Tindex)
      END IF
#else
      IF (nrrec.ne.0) THEN
        CALL get_state (ng, iNLM, 1, INIname(ng), IniRec, Tindex)
      END IF
#endif

to

#ifdef INI_FILE
      CALL get_state (ng, iNLM, 1, INIname(ng), IniRec, Tindex)
#else
      IF (nrrec.ne.0) THEN
        CALL get_state (ng, iNLM, 1, INIname(ng), IniRec, Tindex)
      END IF
#endif
(*) inp_par.F: This file is evolving continuously as new information is added. The Ftype information from the floats file was not being stored in the FLT(ng) structure under some conditions (Fcount > 1 and Fdt = 0). Add following statement at line 4276:

Code: Select all

                FLT(ng)%Ftype(nc)=Ftype(i,ng)
(*) makefile: Close parenthesis at the end of the objects macro definition.

(*) */Module.mk: The MAC requires that ranlib be run on the libraries so the last line is needed in all the Module.mk files for libraries:

Code: Select all

$(local_lib): $(local_objs)
	$(AR) $(ARFLAGS) $@ $^
	$(RANLIB) $@
(*) mod_forces.F: remove dependency of awave on SWAN. It will be allocated whenever a BBL is activated. This had caused a conflict when using BULK_FLUXES, BBL and SWAN.

(*) mod_iounits: Added new files to process adjoint solution.

(*) mod_param.F: Added new parameter TileSize as the maximum size for the distributed-memory communication buffers.

(*) sediment.F: Pass and declare masking arrays umask and vmask for bedload computations. Corrected bug in suspended load and bed mass.

(*) set_data.F: add distributed-memory exchanges for point data.

(*) timers.F: Remove the following statements starting at line 160 for the time profiling since the biology model is no longer called inside step3d_t:

Code: Select all

        Csum(35,iNLM,ng)=Csum(35,iNLM,ng)-Csum(15,iNLM,ng)
# ifdef TANGENT
        Csum(35,iTLM,ng)=Csum(35,iTLM,ng)-Csum(15,iTLM,ng)
# endif
# ifdef ADJOINT
        Csum(35,iADM,ng)=Csum(35,iADM,ng)-Csum(15,iADM,ng)
# endif
Also remove lines 196, 221, and 244 for the same reasons.

(*) u2dbc_im.F: A closing parenthesis is missing at the end of line 275.

(*) v2dbc_im.F: A continuation symbol (&) is mising at the end of line 268.

(*) varinfo.dat: The righ-hand-side comments now start at column 52 to avoid conflits with free-format reading in some compilers.

(*) wrt_station.F Change line 959 since it expands after column 72 during CPP (see below). Added missing iNLM argument when writing rain.

Code: Select all

from

     &                        scale, OCEAN(ng)%bed_mass(:,:,:,NOUT,i),  &

to

     &                        scale,                                    &
     &                        OCEAN(ng)%bed_mass(:,:,:,NOUT,i),         &

Last edited by arango on Mon Dec 11, 2006 5:16 pm, edited 9 times in total.

User avatar
arango
Site Admin
Posts: 1351
Joined: Wed Feb 26, 2003 4:41 pm
Location: DMCS, Rutgers University
Contact:

#2 Unread post by arango »

Corrected a small bug in the computation of bed mass in the sediment routine, sediment.F. Please get the new file from the corrections tar above.

User avatar
arango
Site Admin
Posts: 1351
Joined: Wed Feb 26, 2003 4:41 pm
Location: DMCS, Rutgers University
Contact:

#3 Unread post by arango »

Corrected a problem with the use of mpi_allgather in routine mp_boundary (file distribute.F). The size of the buffers to exchange must be of the same size for all the nodes in the communication group. Therefore, the local variable Npts is set to TileSize(ng). Notice that now the Asend communication buffer is initialized to zero first before packing the data to exchange.

This correction is only relevant for tidal forcing applications. However, please update your distribute.F with the new one. I redisgned the distribute-memory communications of ROMS to do aggregation of variables during the halo exchange. This improved the efficiency of ROMS mpi applications. It will be availabe in the next release of the model.

User avatar
arango
Site Admin
Posts: 1351
Joined: Wed Feb 26, 2003 4:41 pm
Location: DMCS, Rutgers University
Contact:

#4 Unread post by arango »

I updated the makefile structure to allow compiling with native MPI libraries or the the generic compiling script mpif90.

A new macro switch, MPIF90, has been added to the makefile. This will solve the problem of MPI compilation in the same system with several compilers. See my replay to the following posting for more details:

viewtopic.php?t=261

User avatar
arango
Site Admin
Posts: 1351
Joined: Wed Feb 26, 2003 4:41 pm
Location: DMCS, Rutgers University
Contact:

#5 Unread post by arango »

Updated ROMS 2.2 corrections tar file to fix a bug in the computation of initial grid coordinates from (lon,lat) for floats and stations. See my replay to the following posting for more details:

viewtopic.php?t=399

Also corrected a bug in the computaion of kinetic energy (diag.F), writing of rain to the station file (wrt_stations.F), and a couple of bugs in ecosim.h.

User avatar
arango
Site Admin
Posts: 1351
Joined: Wed Feb 26, 2003 4:41 pm
Location: DMCS, Rutgers University
Contact:

#6 Unread post by arango »

Updated ROMS 2.2 corrections tar file to fix several small bugs in set_data.F for point data forcing. Point-data is rarely used nowadays in ROMS applications. However, this option is useful when forcing data is not available at every grid point in some applications. See my reply to the following posting for more details:

viewtopic.php?t=426

bronwyn
Posts: 26
Joined: Sun Nov 27, 2005 10:54 pm
Location: Free University Berlin

line change still needed in get_state.F

#7 Unread post by bronwyn »

This change in get_state.F has not been implemented in the new corrections-2.2.tar file. It's need to read in initial conditions for biological tracers.

line 135:

Code:

from

get_var(idbio(itrc))=.TRUE.

to

get_var(idTvar(idbio(itrc)))=.TRUE.

longmtm
Posts: 55
Joined: Tue Dec 13, 2005 7:23 pm
Location: Univ of Maryland Center for Environmental Science

roms 2.2 corrections tar file uptodate?

#8 Unread post by longmtm »

Hi

Since ROMS has now been hosted by SVN. After we retrieve the 2.2 version, we still need to apply corrections file for bugs reported above.

Yet if I follow the post above and download:

http://www.myroms.org/links/corrections-2-2.tar.gz

And untar this corrections-2-2.tar.gz file, under ./Utilitiy/get_state.F
the get_var(idbio(itrc))=.TRUE. --> get_var(idTvar(idbio(itrc)))=.TRUE. bug is still there not corrected. I'm afraid this is also same to the other bugs on this post

So I wonder whether the upper link to the corrections-2-2.tar.gz
is up to date, If not, where should we get the correct one?

Thanks,

Wen Long

Post Reply