Custom Query (964 matches)
Results (346 - 348 of 964)
Ticket | Owner | Reporter | Resolution | Summary |
---|---|---|---|---|
#273 | Done | Allow or not processing of ghost points during reading/scattering | ||
Description |
Allowed for now to process the scattering of data into ghost points in distributed-memory applications during reading. I don't like this that much but for now it is the way to go until we solve all missing exchanges in the adjoint-based algorithms during the processing of the state vector. A new cpp option NO_READ_GHOST is introduced to track these missing exchanges until we fix them. I prefer not scatter data into ghost points in mp_scatter2d and mp_scatter3d but instead use any of the routines in mp_exchange.F. This will give us complete control of such operations. I also corrected a bug in obs_read.F that caused the model to hang-up when the VERIFICATION option is activated. Many thanks to Gregoire Broquet for reporting this problem several weeks ago. I was finally able to reproduce the problem and track it in the debugger. I also changed the order in which the stats are reported in routines get_ngfld*.F get_2dfld*.F, and get_3dfld*.F to facilitate the reading of such detailed information. It was easy to miss the information due to the size of input file names. |
|||
#274 | Invalid | Avoid time checking on frequency variables | ||
Description |
I added code in get_cycle.F to avoid checking available time for variables where the time is in terms of frequency. This is the case for tide forcing variables. The previous logic resulted in error under special conditions as reported in the forum. Also corrected few typos in normarlization.F, ad_variability.F, state_copy.F, and state_initialize.F. Many thanks to Gregoire Broquet for reporting these typos. I added new options when compiling with ifort to facilitate the trapping of uninitialized variables: -check uninit -ftrapuv These are good flags to have when debugging. I just discovered an uninitialized ad_cff1 in ad_ini_fields.F. This can be a potential adjoint bug depending how compilers treat uninitialized variables. |
|||
#275 | Fixed | Corrected I/O bug when periodic conditions are activated | ||
Description |
There are couple of bugs in mp_scatter2d and mp_scatter3d when either EW_PERIODIC or NS_PERIODIC are activated. This only happen when processing input fields from NetCDF files. The periodic applications are usually configured with analytical fuctions instead of NetCDF files. I was using the wrong structure to determine the global number of points to process in the I- and J-directions. The computational structure BOUNDS(ng) was used instead of the I/O structure IOBOUNDS(ng). The correct code is to use: SELECT CASE (MyType) CASE (p2dvar, p3dvar) Io=IOBOUNDS(ng) % ILB_psi Ie=IOBOUNDS(ng) % IUB_psi Jo=IOBOUNDS(ng) % JLB_psi Je=IOBOUNDS(ng) % JUB_psi Ioff=0 Joff=1 CASE (r2dvar, r3dvar) Io=IOBOUNDS(ng) % ILB_rho Ie=IOBOUNDS(ng) % IUB_rho Jo=IOBOUNDS(ng) % JLB_rho Je=IOBOUNDS(ng) % JUB_rho Ioff=1 Joff=0 CASE (u2dvar, u3dvar) Io=IOBOUNDS(ng) % ILB_u Ie=IOBOUNDS(ng) % IUB_u Jo=IOBOUNDS(ng) % JLB_u Je=IOBOUNDS(ng) % JUB_u Ioff=0 Joff=0 CASE (v2dvar, v3dvar) Io=IOBOUNDS(ng) % ILB_v Ie=IOBOUNDS(ng) % IUB_v Jo=IOBOUNDS(ng) % JLB_v Je=IOBOUNDS(ng) % JUB_v Ioff=1 Joff=1 CASE DEFAULT ! RHO-points Io=IOBOUNDS(ng) % ILB_rho Ie=IOBOUNDS(ng) % IUB_rho Jo=IOBOUNDS(ng) % JLB_rho Je=IOBOUNDS(ng) % JUB_rho Ioff=1 Joff=0 END SELECT I also corrected mp_gather2d and mp_gather3d. Non-periodic applications are fine. The issue here is that in periodic applications the computational I-RHO (EW_PERIODIC) and J-RHO (NS_PERIODIC) starts at 1 instead of 0. Many thanks to Paul Budgell for reporting this problem and giving a good clue. |