GLOMAP

Backward-Euler with tracer advection fix

For the Backward-Euler and Newton-Raphson runs the tracers have been advected through both EG_CORRECT_TRACERS and EG_CORRECT_TRACERS_UKCA - effectively twice, when this should only be done through EG_CORRECT_TRACERS_UKCA. Mohit has written a new branch to correct this (although the last change in eg_correct_tracers_ukca.F90 does require high_order_schem changing to high_order_scheme.

My run for 4 months (the latest facec), suggested the output is the same as before (/data/cr/ukesm/facec29_7_14).

Profiling

This changed hasn't noticeably altered the time taking in EG_CORRECT_TRACERS_UKCA (it's 168s total time), as you'd expect, but the total time in EG_CORRECT_TRACERS has been reduced from 214s to 28s - a saving of 186s. The table below gives the total time devoted to tracer advection.

Run Routines used for tracer advection Time
Old Backward-Euler (facec29_7_14) EG_CORRECT_TRACERS + EG_CORRECT_TRACERS_UKCA 214s + 167s = 381s
CLASSIC (faced) EG_CORRECT_TRACERS 112s
Backward-Euler with Mohit's advection fix (facec) EG_CORRECT_TRACERS + EG_CORRECT_TRACERS_UKCA 28s + 168s = 196s

With the advection fix, the tracer advection in the Backward-Euler run is 84s more than CLASSIC, about 75% more.

Top 5 reasons why GLOMAP is slower

After applying the Mohit's tracer advection fix an update of the summary at the bottom of the Comparing the Backward-Euler profiles with CLAISSIC page, which gives the main reason why the Backward-Euler run is slower, is

No UKCA_MAIN1 1,464s
Extra time in SWAP_* routines (extra fields) 286s+
No UKCA_RADAER_BAND_AVERAGE 272s
A big reduction in the use of LSP_SUBGRID (including LSP_QCLEAR and an average of 166 million calls to QWIDTH) 101s
Combined UKCA_CORRECT_TRACERS_UKCA + EG_CORRECT_TRACERS is greater than CLASSIC's EG_CORRECT_TRACERS (mostly because more fields are being advected) 84s
Total 2,207s+
+ some of the extra SWAP_* time will come from UK_MAIN1, so this time will have been double counted here, but it shouldn't be that much.