Model Change Bulletin MCB#3 7/18/91 CTDMPLUS (dated 91107) This Model Change Bulletin documents the changes made to the CTDMPLUS model and its associated programs since the version dated 91051. In earlier model versions, the effective stack height was not being reset to its initial value. This occurred after finishing calculations for receptors utilizing transitional plume rise. These changes correct that problem. Concentration results should vary from previous model version results depending upon the height of the receptor with respect to the plume height. Also several improvements have been made to the menu driven program used in running the model. Model Changes Implemented: ========================= CTDMPLUS: 1. In the main program, CTDMPLUS, two of the header lines were changed to reflect the new CTDMPLUS julian date and model change bulletin number. The following two lines were changed from: C CTDMPLUS (DATED 91051) * C *** SEE CTDMPLUS MODEL CHANGE BULLETIN MCB#2 *** * to: C CTDMPLUS (DATED 91107) * C *** SEE CTDMPLUS MODEL CHANGE BULLETIN MCB#3 *** * 2. In the DAYCALC.FOR subroutine, the following changes were made to correctly model situations in which transitional plume rise is used. a) The coding was changed from: C RISE, XFIN ARE RETURNED to: C ADDED FLAG ITRANPR - A 1 MEANS THAT TRANPR WAS CALLED. THIS IS C NECESSARY BECAUSE IF WE RESET THE EFFECTIVE STACK HEIGHT ARRAY, C WE NEED TO RESET IT AFTER OUR CALCULATIONS FOR THIS RECEPTOR ARE C COMPLETED -DJB 4/16/91 C RISE, XFIN ARE RETURNED b) The coding was changed from: IF (XP .GE. XF .OR. FB .EQ. 0.0) THEN TRISE = -999.0 to: IF (XP .GE. XF .OR. FB .EQ. 0.0) THEN ITRANPR = 0 TRISE = -999.0 c) The coding was changed from: ELSE CALL TRANPR(XP,TRISE) to: ELSE ITRANPR = 1 CALL TRANPR(XP,TRISE) d) The coding was changed from: IF (RISE .NE. TRISE) XF = XP HPL = HS + RISE EFFSH(1) = HPL EFFSH(2) = HPL EFFSH(3) = 2.0*XMH - HPL EFFSH(4) = 2.0*XMH - HPL EFFSH(5) = 2.0*XMH + HPL EFFSH(6) = 2.0*XMH + HPL ENDIF to: IF (RISE .NE. TRISE) XF = XP HPLTR = HS + RISE EFFSH(1) = HPLTR EFFSH(2) = HPLTR EFFSH(3) = 2.0*XMH - HPLTR EFFSH(4) = 2.0*XMH - HPLTR EFFSH(5) = 2.0*XMH + HPLTR EFFSH(6) = 2.0*XMH + HPLTR ENDIF e) The coding was changed from: 260 CONTINUE to: C IF WE CALLED TRANPR (ITRANPR = 1) THE RESET THE EFFSH ARRAY USING C FINAL PLUME HEIGHT (HPL) FOR NXT RECEPTOR IF (ITRANPR .GT. 0) THEN EFFSH(1) = HPL EFFSH(2) = HPL EFFSH(3) = 2.0*XMH - HPL EFFSH(4) = 2.0*XMH - HPL EFFSH(5) = 2.0*XMH + HPL EFFSH(6) = 2.0*XMH + HPL ENDIF 260 CONTINUE 3. In the PAGE.FOR subroutine the CTDMPLUS julian date was updated to reflect the model update. The coding was changed from: 6010 FORMAT('1','CTDMPLUS Dated(91051)',T72,'PAGE',1X,I3/) to: 6010 FORMAT('1','CTDMPLUS Dated(91107)',T72,'PAGE',1X,I3/) DRIVEIT : 1. The code was modified to better trap and display run-time errors returned by the FORTRAN programs. 2. The use of batch files to run the FORTRAN programs was eliminated; the DOS commands are issued directly from the menu driver now. 3. The program tests for the existence of the PSCRAT file and deletes it if it exists. 4. The program now determines the location of the COMMAND.COM file instead of assuming it to be in the root directory. RECGEN: 1. A format statement used in writing to the DUMMY.PDF scratch file was changed to eliminate problems encountered with large numbers that overran the field size.