Opened 5 years ago
Closed 5 years ago
#867 closed upgrade (Done)
Impotant: Miscellaneous Update
Reported by: | arango | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | Release ROMS/TOMS 3.9 |
Component: | Nonlinear | Version: | 3.9 |
Keywords: | Cc: |
Description (last modified by )
Several changes are made to support new capabilities that will be released in the future. It is a safeguard for uniformity between official and research repositories.
- mod_scalars.F: Added LreadFRC and LreadQCK switches that will be used in adjoint-based applications when NL_BULK_FLUXES is activated to process basic state, nonlinear surface fluxes from the QCK instead of the FWD (or HIS) NetCDF file. This change is needed for coupled 4D-Var applications.
- cgradient.F: Corrected the reading of the converged Ritz eigenvalues in routine cg_read. We need to have:
! ! Read in converged Ritz eigenvalues. ! CALL netcdf_get_fvar (ng, model, DAV(ng)%name, & & 'Ritz', Ritz, & & ncid = DAV(ng)%ncid, & & start = (/1/), & & total = (/Ninner/)) IF (FoundError(exit_flag, NoError, __LINE__, & & __FILE__)) RETURN
- initial.F: Corrected a shared-memory bug in the scaling of the nesting interpolation weights with the Land/Sea masking. We need to have:
! !----------------------------------------------------------------------- ! If nesting and Land/Sea masking, scale horizontal interpolation ! weights to account for land contact points. !----------------------------------------------------------------------- ! DO ng=1,Ngrids CALL nesting (ng, iNLM, nmask) END DO
instead of! !----------------------------------------------------------------------- ! If nesting and Land/Sea masking, scale horizontal interpolation ! weights to account for land contact points. !----------------------------------------------------------------------- ! DO ng=1,Ngrids DO tile=first_tile(ng),last_tile(ng),+1 CALL nesting (ng, iNLM, nmask) END DO !$OMP BARRIER END DO
Many thanks to Andy Moore for bringing this to my attention.
- extract_obs.F: A new CPP option ALLOW_BOTTOM_OBS is introduced to avoid rejecting observations (default behavior) in the lower bottom grid cell (k=1). That is, between -h < Zobs < Adepth(:,:,1).
# ifndef ALLOW_BOTTOM_OBS ! ! Reject observations that lie in the lower bottom grid cell (k=1) to ! avoid clustering due shallowing of bathymetry during smoothing and ! coarse level half-thickness (-h < Zobs < Adepth(:,:,1)) in deep ! water. ! IF ((Zobs(iobs).gt.0.0_r8).and.(Zobs(iobs).le.1.0_r8)) THEN ObsVetting(iobs)=0.0_r8 END IF # endif
- edit_multifile.F: Added loading I/O structure QCK into BLK:
! ! Load QCK information into the BLK structure so it can be used to ! process the NLM background surface forcing to be read and processed ! by the TLM, RPM, and ADM kernels. ! CASE ('QCK2BLK') IF (ndefQCK(ng).gt.0) THEN IF (QCK(ng)%ncid.ne.-1) THEN CALL netcdf_close (ng, iNLM, QCK(ng)%ncid) END IF Nfiles=ntimes(ng)/ndefQCK(ng) IF (nQCK(ng).eq.ndefQCK(ng)) Nfiles=Nfiles+1 CALL edit_file_struct (ng, Nfiles, BLK) DO ifile=1,Nfiles BLK(ng)%files(ifile)=TRIM(QCK(ng)%files(ifile)) END DO BLK(ng)%name=TRIM(BLK(ng)%files(1)) ELSE BLK(ng)%ncid=-1 BLK(ng)%name=TRIM(QCK(ng)%name) BLK(ng)%files(1)=TRIM(QCK(ng)%name) END IF
- stdinp_mod.F: Updated stdinp_unit function to take into account the different standard input script and unit in coupling applications.
! !----------------------------------------------------------------------- ! Determine ROMS standard input unit. !----------------------------------------------------------------------- #ifdef DISTRIBUTE ! ! In distributed-memory configurations, the input physical parameters ! script is opened as a regular file. It is read and processed by all ! parallel nodes. This is to avoid a very complex broadcasting of the ! input parameters to all nodes. # ifdef MODEL_COUPLING ! However, in ESM coupling, the submission argument is 'coupling.in' ! and the Iname was read and processed in the coupling configuration ! elsewhere. # endif ! InpUnit=1 # ifndef MODEL_COUPLING IF (localPET.eq.0) CALL my_getarg (1, Iname) CALL mp_bcasts (1, 1, Iname) # endif OPEN (InpUnit, FILE=TRIM(Iname), FORM='formatted', STATUS='old', & & ERR=10) GotFile=.TRUE.
- makefile: The ROMS executable logically so the BIN macro value can be overwritten in the build script.
#-------------------------------------------------------------------------- # Set ROMS/TOMS executable file name. #-------------------------------------------------------------------------- ifdef USE_DEBUG BIN ?= $(BINDIR)/romsG else ifdef USE_MPI BIN ?= $(BINDIR)/romsM else ifdef USE_OpenMP BIN ?= $(BINDIR)/romsO else BIN ?= $(BINDIR)/romsS endif endif endif
- nesting.F: Added missing IF-directives in fine2coarse to avoid uncessary exchanges.
Change History (1)
comment:1 by , 5 years ago
Description: | modified (diff) |
---|---|
Resolution: | → Done |
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.