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.
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
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
Code: Select all
FLT(ng)%Ftype(nc)=Ftype(i,ng)
(*) */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_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
(*) 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), &