Custom Query (964 matches)
Results (385 - 387 of 964)
Ticket | Owner | Reporter | Resolution | Summary |
---|---|---|---|---|
#488 | Fixed | Water points and the GST propagators | ||
Description |
Several changes were made to the internal masking arrays and the computation of water points in src:ticket:483. The internal masking arrays are set in routine set_masks and the water points counters are computed in routine wpoints. In that ticket, the calls to these routines were moved from initial to main2d/main3d because we need to know the location of the point sources (via analytical expressions) to process internal masking arrays pmask_io, rmask_io, umask_io, and vmask_io. It turns out that this breaks the logic to the Generalized Stability Theory (GST) propagators. We need to the call towpoints much earlier to allocated the state arrays that we use to communicate with ARPACK/PARPACK libraries. Therefore, the calls to set_masks and wpoints are moved back to initial (including ADM, TLM, and RPM versions). The solution is to have a call to ana_psource in routine get_idata (and respective ADM, TLM, and RPM versions), so the locations of the point sources is known before set_masks and wpoints are called. Notice that the point sources locations were already processed in routine get_idata but when reading from input NetCDF forcing file. Now, it also processes analytical point sources locations. Added an MPI exchange to routine scale_omega to we get identical files in different distributed memory partitions. See src:ticket:487 for previous change. |
|||
#489 | Done | Suggestion for standard input files | ||
Description |
Friendly suggestion: I modified all my input files to help users more easily identify the output variable name with the associated Hout selection. For example i use: Hout(idUvel) == T ! u 3D U-velocity Hout(idVvel) == T ! v 3D V-velocity Hout(idWvel) == T ! w 3D W-velocity Hout(idOvel) == T ! omega omega vertical velocity Hout(idUbar) == T ! ubar 2D U-velocity Hout(idVbar) == T ! vbar 2D V-velocity Hout(idFsur) == T ! zeta free-surface Hout(idBath) == T ! bath time-dependent bathymetry Hout(idTvar) == T F ! temp, salt temperature and salinity Hout(idUair) == F ! Uwind surface U-wind Hout(idVair) == F ! Vwind surface V-wind Hout(idUsms) == F ! sustr surface U-stress Hout(idVsms) == F ! svstr surface V-stress Hout(idUbms) == F ! bustr bottom U-stress Hout(idVbms) == F ! bvstr bottom V-stress Hout(idUbrs) == T ! bustrc bottom U-current stress Hout(idVbrs) == T ! bvstrc bottom V-current stress Hout(idUbws) == T ! bustrw bottom U-wave stress Hout(idVbws) == T ! bvstrw bottom V-wave stress Hout(idUbcs) == T ! bustrcwmax bottom max wave-current U-stress Hout(idVbcs) == T ! bvstrcwmax bottom max wave-current V-stress Hout(idUVwc) == F ! bstrcwmax bottom max wave-current stress magnitude Hout(idTsur) == F ! shflux surface net heat and salt flux Hout(idLhea) == F ! latent latent heat flux Hout(idShea) == F ! sensible sensible heat flux Hout(idLrad) == F ! lwrad longwave radiation flux Hout(idSrad) == F ! swrad shortwave radiation flux Hout(idEmPf) == F ! EminusP E-P flux Hout(idevap) == F ! evaporation evaporation rate Hout(idrain) == F ! rain precipitation rate Hout(idDano) == F ! rho density anomaly Hout(idVvis) == T ! AKv vertical viscosity Hout(idTdif) == F ! AKt vertical T-diffusion Hout(idSdif) == F ! AKs vertical Salinity diffusion Hout(idHsbl) == F ! Hsbl depth of surface boundary layer Hout(idHbbl) == F ! Hbbl depth of bottom boundary layer Hout(idMtke) == T ! tke turbulent kinetic energy Hout(idMtls) == T ! gls turbulent generic length scale |
|||
#490 | Fixed | Corrected adjoint time management logic in get_cycle.F | ||
Description |
Corrected the lower time value (Tstr) in get_cycle.F for adjoint applications. Now we have the following statements around line 161: tstart=Tmin IF (model.eq.iADM) THEN ! backward time logic DO i=2,ntime IF ((tstart.lt.mday).and.(mday.le.Tval(i))) THEN Tindex=i-1 Tstr=tstart EXIT END IF tstart=Tval(i) END DO ELSE ! forward time logic DO i=2,ntime IF ((tstart.le.mday).and.(mday.lt.Tval(i))) THEN Tindex=i-1 Tstr=tstart EXIT END IF tstart=Tval(i) END DO END IF We need to have a different inequality in the IF-statement for backward time logic in adjoint applications. This was affecting the GST drivers when selecting the initial snapshot times to interpolate the forward trajectory. It is weird that we didn't noticed this problem in the 4D-Var algorithms. The reason for that is that the time window between the NLM and ADM is the same. In the GST algorithms, we can have smaller time-window from the forward trajectory and the bug appears... I also initialized the local LwrtGST switch in the afte_ocean.h driver to allow check-pointing. There is a parallel issue with the GST drivers. There is an MPI hang-on during the iterations. I am hunting for this elusive parallel (MPI) problem. |