CEMPD / SMOKE

Create emissions inputs for multiple air quality modeling systems with unmatched speed and flexibility
https://www.cmascenter.org/smoke/
45 stars 21 forks source link

Incorrect format statement in subroutine RDMRCLIST #88

Closed hnqtran closed 5 months ago

hnqtran commented 5 months ago

This issue was reported by Carlie J. Coats on January 03, 2024.

The original code forf RDMRCLIST has the following at lines 273-275:

WRITE( MESG, 94010 ) 'ERROR: No factor file found ' //
& 'for reference county', MCREFIDX( I,1 ), 'in ' //
& 'reference county factors list.'

Subroutine RDMRCLIST (src/movesmrg/rdmrclist.f) uses variable MCREFIDX from module MODMBSET (src/emmod/modmbset.f) which defines it as a character variable: CHARACTER(FIPLEN3), ALLOCATABLE, PUBLIC :: MCREFIDX ( :,: ) ! index into MCREF by ref. county

Here is how format 94010 is specified in RDMRCLIST, which expects MCREFIDX to be an integer variable: 94010 FORMAT( 10( A, :, I8, :, 1X ) ) Format 94010 was found to be applied correctly for various WRITE statements in this subroutine except for MCREFIDX.

A fix was developed following Carlie's suggestion by rewrite this statement (line 273-275) as:

WRITE( MESG, '(A)') 'ERROR: No factor file found ' //
& 'for reference county '//MCREFIDX( I,1 )//' in ' //
& 'reference county factors list.’