SWMM4 Fortran Changes post September 28, 1999

This file documents changes made to swmm44gu by Wayne Huber or others

since its first release on September 28, 1999.

WCH = Wayne Huber

RED = Robert Dickinson

CIM = Chuck Moore

MCH = Mitch Heineman

LR = Lew Rossman

  1. 10/11/99, C. Moore. Yroute: Correct C. Moore correction at line 118

to make akon = -1.0000001

The next changes, 2-13, were made about 10/15/99 by Chuck Moore:

  1. Subroutine CATCH around line 90. Change loop from 900 to NW.
  2. In GETCUR, you put in a check for raising zero to a power around line 443. This check is not needed if you do not turn the Fortran runtime power operations project setting on. This gives error if you raise a zero to a zero or a negative real number to a real power (e.g.: -2.32.0 is not valid but -2.32 is) I think that there is no need to use this switch.
  3. In GROUND near line 54 you put in checks that are not needed if the

power operations project setting run time error is not used.

  1. In GUTNR at two locations near line 171 and 179 you put in two checks

that are not need if power operations check is not used.

  1. I made some minor changes to INDAT1 that you should probably include..

A comment near line 1756, tests for zu less than z at line 1934 and 1963.

Change to format number 5270 and 5271 and added formats 8050 and 8055 to

provide error statement for negative zp.

  1. INDAT2 near lines 1127 and 1140. I added option for reading pon and

poff for type 4 pumps but have commented them out in my version due to

incompatibility issues with MIKE. These have been tested and I think

that these should be in your version. See documentation in

the EXTRAN44.DOC file.

  1. In OUTPUT.FOR near line 48. We found that models that had both input

from unformatted sequential and from K_ line produced a NAN in the

continuity summary. NAN stands for Not-a-number. From the online

reference "Not a Number (NaN) results from an operation involving

one or more invalid operands. For instance 0/0 and SQRT ( – 1) result

in NaN. In general, an operation involving a NaN produces another NaN."

The check in OUTPUT is a patch that seems to work. I didn’t have time to

go back an trace where exactly the NAN is occurring in the computations.

Also have a check for case where node has a positive QQI and negative QOU.

This occurs when you are loading a storage junction that is also

overflowing and results in large continuity errors. Again this is a

patch for some other problem somewhere in the bowels of the code. Best

way to prevent this is to not load storage nodes that surcharge to land

surface elevations.

  1. QSHED near line 197 you put in check for power operation that is not


  1. RDIIRES. I changed format on statements 7010 and 7011 to make things

line up. (28X to 32X). This was needed because I changed width of

subcatchment ID’s in first line of statement.

  1. RHYDRO1 near line 332. Changed loop from 900 to NG. Yes people are

running models with more than 9000 catchments and conduits!

  1. STRIP near 72. Added zeros to end of H1 lines in EXTRAN. Used for

optional input of JON and JOFF for pump type 4. (see comments 7 above).

  1. wrtflow.for. Changed format statement 7000 to prevent wrapping.

Leave a Reply