Bug report and fix from Do, Jong-Gwan, Cray Korea Inc.:
1. external/io_int/diffwrf.F and external/io_netcdf/diffwrf.F90
In the end of code near 393 line is as follows.
IF ( rms2 .NE. 0 ) THEN
tmp1 = 1.0d0/( ( abs( rms1 - rms2 ) ) / rms2 )
IF ( tmp1 .NE. 0 ) THEN
digits = log10(tmp1)
ENDIF
ENDIF
This will produce "divide by zero" if rms1 and rms2 is equal.
So I tried the below change since digits are set 15 if rms1 and rms2 is equal.
IF ( rms2 .NE. 0 .AND. digits .NE. 15 ) THEN
tmp1 = 1.0d0/( ( abs( rms1 - rms2 ) ) / rms2 )
IF ( tmp1 .NE. 0 ) THEN
digits = log10(tmp1)
ENDIF
ENDIF
---------------------------------------------------------
Do, Jong-Gwan Cray Korea Inc.
Application Analyst
Phone : +82-2-834-0956 / (KMA Internal : 464)
Mobile : +82-16-288-1855
E-mail : jgdo@cray.com
---------------------------------------------------------
Additional note. Once you have made the changes to the two files listed above, remove the .o, .f (lower-case f only), and .a files in the external/io_int and external/io_netcdf directories, then recompile the code. It is not be necessary to completely clean and recompile WRF to effect these changes.