Error in running COMBINE for CMAQ5.3.1

What you want is a relative tolerance (with the tolerance scaled by XCELL), not an absolute one. Note that if XCELL is 45.0D3 ( for 45KM cell-size), then your 1e-5 represents a difference in the tenth significant digit – way within the realm of potential round-off error problems. Instead:

if( abs (XCELL-XCELL3D).gt.(1e-5*XCELL) ) ...

or

if ( ((XCELL-XCELL3D)**2 .gt. (1e-5*XCELL)**2 ) ...

which is slightly more efficient computationally.

2 Likes