Thu Jun 13 12:28:40 EDT 2019
============================================================================ ck_ctms.F
diff: /work/ROMO/users/bkx/cmaq/testgit/chk13sep2018/POST/hr2day/scripts/BLD_hr2day_v521_intel17.0/ck_ctms.F: No such file or directory
============================================================================ getTZ.F
Files /work/ROMO/users/bkx/cmaq/testgit/chk13sep2018/POST/hr2day/scripts/BLD_hr2day_v521_intel17.0/getTZ.F and getTZ.F are identical
============================================================================ hr2day.F
51a52,55
>       USE ENV_VARS
>       USE M3FILES
>       USE GRID_DATA
>       USE TIME_STEP
67,71c71,74
<       integer hroffset
<       integer startHr, endHr
<       logical useLocal
<       logical useDST  
<       logical partDay 
---
> 
>       character*(256)  MSG
>       character*(16)  PNAME
>       DATA  PNAME       / 'hr2day'  /
83,91c86,112
< C... open input file
<       if( .not. open3('INFILE',fsread3, 'hr2day')) then
<         Call m3err('hr2day', 0, 0, 'Could not open INPUT_FILE', .TRUE.)
<         endif
< 
< C... load file description from INFILE
<       if( .not. desc3('INFILE')) then
<         Call m3err ('hr2day', 0, 0, 'Could not load file description from IN_FILE', .TRUE.)
<         endif
---
> ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
> c  Get the Models-3 file(s) to process and the other environment   
> c  variables
> ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
> 
>       CALL OPEN_M3FILES
> 
> ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
> c  Check the file(s) for consistency and make sure the requested   
> c  species is on the file(s)
> ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
>       CALL CK_M3FLS()
> 
> ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
> c  Get the grid definition and the tsteps from the M3 files
> ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
>       CALL GET_M3GRID
> 
>       CALL GET_TSTEPS
> 
> 
> C... load file description from first INFILE
>       IF( .NOT. DESC3 ( M3_FLNAME( 1 ) ) ) THEN
>          MSG = 'Could not read DESC of  ' // M3_FLNAME( 1 ) 
>      &         // ' file'
>          CALL M3ERR( PNAME, 0, 0, MSG, .TRUE. )
>       ENDIF
95c116
<         Call m3err('hr2day', 0, 0, 'Input file must have One hour time step', .TRUE.)
---
>         Call m3err(PNAME, 0, 0, 'Input file must have One hour time step', .TRUE.)
97a119,120
> C... get environment variables
>       call GET_ENVS 
106c129
<         Call m3err ('hr2day', 0, 0, 'Lambert projection setup error', .TRUE.)
---
>         Call m3err (PNAME, 0, 0, 'Lambert projection setup error', .TRUE.)
111c134
<         Call m3err ('hr2day', 0, 0, 'Polar Stereographic projection setup error', .TRUE.)
---
>         Call m3err (PNAME, 0, 0, 'Polar Stereographic projection setup error', .TRUE.)
114c137
<        Call m3err ('hr2day', 0, 0, 'Grid projection not supported', .TRUE.)   
---
>        Call m3err (PNAME, 0, 0, 'Grid projection not supported', .TRUE.)   
117,123c140,144
< C... Compute last date and time to process                    
<       first_date = SDATE3D
<       first_time = STIME3D                                      
<       last_date = SDATE3D
<       last_time = STIME3D                                      
<       runlen = SEC2TIME( (MXREC3D-1) * TIME2SEC( TSTEP3D ))
<       Call NEXTIME( last_date, last_time, runlen ) 
---
> C... store first and last day/time to process from module_tstep (across all input files)                    
>       first_date = STEP_DATE(1)
>       first_time = STEP_TIME(1)                                      
>       last_date = STEP_DATE(NSTEPS)
>       last_time = STEP_TIME(NSTEPS)                                      
125,126c146
< C... get species definitions from system variables
<       Call loadSpecies()
---
> c... adjust first and last date based on START_DATE and END_DATE envvars
128,129c148,149
< C... get compute partial day switch
<       partDay = ENVYN('PARTIAL_DAY',"Compute partial day values", .FALSE., status)
---
>       first_date = MAX( first_date, START_DATE)
>       last_date  = MIN( last_date, END_DATE)
131,145c151,152
< C... get use local time switch
<       useLocal = ENVYN('USELOCAL',"Use local time", .FALSE., status)
< 
< C... get use daylight savings time switch id uselocal
<       useDST = .false.
<       if( useLocal ) then
<         useDST = ENVYN('USEDST',"Use Daylight Savings time", .FALSE., status)
<         endif
< 
< C... get hour offset
<       hroffset = ENVINT('HROFFSET',"Hour offset", 0, status)
< 
< C... get starting and ending hours for time window
<       startHr = ENVINT('START_HOUR',"Starting Hour of time window", 0, status)
<       endHr = ENVINT('END_HOUR',"Ending Hour of time window", 23, status)
---
> C... get species definitions from system variables
>       Call loadSpecies()
159,160c166,167
<        if(.not. open3('OUTFILE',3,'hr2day')) then
<         if(.not. open3('OUTFILE',2,'hr2day')) then
---
>       if(.not. open3('OUTFILE',3,PNAME)) then
>        if(.not. open3('OUTFILE',2,PNAME)) then
185c192
<               Call m3err ('hr2day', 0, 0, 'Lat/Lon conversion error', .TRUE.)
---
>               Call m3err (PNAME, 0, 0, 'Lat/Lon conversion error', .TRUE.)
189c196
<               Call m3err ('hr2day', 0, 0, 'Lat/Lon conversion error', .TRUE.)
---
>               Call m3err (PNAME, 0, 0, 'Lat/Lon conversion error', .TRUE.)
192c199
<              Call m3err ('hr2day', 0, 0, 'Grid projection not supported', .TRUE.)   
---
>              Call m3err (PNAME, 0, 0, 'Grid projection not supported', .TRUE.)   
201,203c208,212
<       if( .not. desc3('INFILE')) then
<         Call m3err ('hr2day', 0, 0, 'Could not load file description from IN_FILE', .TRUE.)
<         endif
---
>       IF( .NOT. DESC3 ( M3_FLNAME( 1 ) ) ) THEN
>          MSG = 'Could not read DESC of  ' // M3_FLNAME( 1 ) 
>      &         // ' file'
>          CALL M3ERR( PNAME, 0, 0, MSG, .TRUE. )
>       ENDIF
208,209c217,218
<         curDate = SDATE3D
<         curTime = STIME3D
---
>         curDate = first_date
>         curTime = first_time
224,225c233,234
<             if( (SECSDIFF(first_date, first_time, cdate, ctime) .ge. 0)
<      &    .and. (SECSDIFF(cdate, ctime, last_date, last_time) .ge. 0) ) then
---
>             if( (SECSDIFF(STEP_DATE(1), STEP_TIME(1), cdate, ctime) .ge. 0)
>      &      .and. (SECSDIFF(cdate, ctime, STEP_DATE(NSTEPS), STEP_TIME(NSTEPS)) .ge. 0) ) then
233c242
<             Call sumValues(hrValues, dayValues, offset, startHr, endHr, partDay)
---
>             Call sumValues(hrValues, dayValues, offset)
237c246
<             Call avgValues(hrValues, dayValues, offset, startHr, endHr, partDay)
---
>             Call avgValues(hrValues, dayValues, offset)
241c250
<             Call minValues(hrValues, dayValues, offset, startHr, endHr, partDay)
---
>             Call minValues(hrValues, dayValues, offset)
245c254
<             Call maxValues(hrValues, dayValues, offset, startHr, endHr, partDay)
---
>             Call maxValues(hrValues, dayValues, offset)
249c258
<             Call minHrValues(hrValues, dayValues, offset, startHr, endHr, partDay)
---
>             Call minHrValues(hrValues, dayValues, offset)
253c262
<             Call maxHrValues(hrValues, dayValues, offset, startHr, endHr, partDay)
---
>             Call maxHrValues(hrValues, dayValues, offset)
257c266
<             Call maxTValues(hrValues, dayValues, offset, curDate, startHr, endHr, partDay)
---
>             Call maxTValues(hrValues, dayValues, offset, curDate)
261c270
<             Call maxDifValues(hrValues, dayValues, offset, startHr, endHr, partDay)
---
>             Call maxDifValues(hrValues, dayValues, offset)
265c274
<             Call max8hr(hrValues, dayValues, offset, partDay)
---
>             Call max8hr(hrValues, dayValues, offset)
269c278
<             Call w126(hrValues, dayValues, offset, SPECVARS(n)%UNITS, partDay)
---
>             Call w126(hrValues, dayValues, offset, SPECVARS(n)%UNITS)
273c282
<             Call maxO3Values(hrValues, dayValues, offset, curDate, partDay)
---
>             Call maxO3Values(hrValues, dayValues, offset, curDate)
277c286
<             Call max8hrHour(hrValues, dayValues, offset, partDay)
---
>             Call max8hrHour(hrValues, dayValues, offset)
281c290
<             Call sum06(hrValues, dayValues, offset, SPECVARS(n)%UNITS, partDay)
---
>             Call sum06(hrValues, dayValues, offset, SPECVARS(n)%UNITS)
286c295
<           Call m3err ('hr2day', curDate, 0, 'Write Error for ' // SPECVARS(n)%NAME, .TRUE.)
---
>           Call m3err (PNAME, curDate, 0, 'Write Error for ' // SPECVARS(n)%NAME, .TRUE.)
315c324
<       Subroutine sumValues(hrValues, dayValues, tzoffset, startHr, endHr, partDay)  
---
>       Subroutine sumValues(hrValues, dayValues, tzoffset)  
317a327
>       USE ENV_VARS
325,326d334
<       Integer startHr, endHr
<       Logical partDay
357c365
<       Subroutine avgValues(hrValues, dayValues, tzoffset, startHr, endHr, partDay)  
---
>       Subroutine avgValues(hrValues, dayValues, tzoffset)  
359a368
>       USE ENV_VARS
367,368d375
<       Integer startHr, endHr
<       Logical partDay
400c407
<       Subroutine minValues(hrValues, dayValues, tzoffset, startHr, endHr, partDay)
---
>       Subroutine minValues(hrValues, dayValues, tzoffset)
402a410
>       USE ENV_VARS
410,411d417
<       Integer startHr, endHr
<       Logical partDay
442c448
<       Subroutine minHrValues(hrValues, dayValues, tzoffset, startHr, endHr, partDay)
---
>       Subroutine minHrValues(hrValues, dayValues, tzoffset)
444a451
>       USE ENV_VARS
452,453d458
<       Integer startHr, endHr
<       Logical partDay
490c495
<       Subroutine maxValues(hrValues, dayValues, tzoffset, startHr, endHr, partDay)
---
>       Subroutine maxValues(hrValues, dayValues, tzoffset)
492a498
>       USE ENV_VARS
500,501d505
<       Integer startHr, endHr
<       Logical partDay
532c536
<       Subroutine maxHrValues(hrValues, dayValues, tzoffset, startHr, endHr, partDay)
---
>       Subroutine maxHrValues(hrValues, dayValues, tzoffset)
534a539
>       USE ENV_VARS
542,543d546
<       Integer startHr, endHr
<       Logical partDay
580c583
<       Subroutine maxTValues(hrValues, dayValues, tzoffset, curDate, startHr, endHr, partDay)
---
>       Subroutine maxTValues(hrValues, dayValues, tzoffset, curDate)
582a586,588
>       USE ENV_VARS
>       USE M3FILES
>       USE TIME_STEP
591,592d596
<       Integer startHr, endHr
<       Logical partDay
602d605
<       Character*(16) tempvar
604a608
>       INTEGER ISTEP
613,614d616
<         Call ENVSTR('TEMPERATURE','Temperature species used in @MAXT operation',
<      &              'TEMP2', tempvar, status)  
617,623c619,628
<         ! Compute last date and time to process                    
<         first_date = SDATE3D
<         first_time = STIME3D                                      
<         last_date = SDATE3D
<         last_time = STIME3D                                      
<         runlen = SEC2TIME( (MXREC3D-1) * TIME2SEC( TSTEP3D ))
<         Call NEXTIME( last_date, last_time, runlen ) 
---
> C... store first and last day/time to process from module_tstep (across all input files)                    
>         first_date = STEP_DATE(1)
>         first_time = STEP_TIME(1)                                      
>         last_date = STEP_DATE(NSTEPS)
>         last_time = STEP_TIME(NSTEPS)                                      
> 
> c... adjust first and last date based on START_DATE and END_DATE envvars
> 
>         first_date = MAX( first_date, START_DATE)
>         last_date  = MIN( last_date, END_DATE)
628c633,634
<       ctime = 0
---
>       ctime = -36 * 10000
>       call NEXTIME(cDate,cTime,0) !reformat to make sure hours are between 0 and 23
631,633c637,643
<         if( (SECSDIFF(first_date, first_time, cdate, ctime) .ge. 0)
<      &    .and. (SECSDIFF(cdate, ctime, last_date, last_time) .ge. 0) ) then
<           if(.not.READ3('INFILE', tempvar, 1, cdate, ctime, tvalues(h,:,:)) ) then
---
> 
>         if( (SECSDIFF(STEP_DATE(1), STEP_TIME(1), cdate, ctime) .ge. 0)
>      &    .and. (SECSDIFF(cdate, ctime, STEP_DATE(NSTEPS), STEP_TIME(NSTEPS)) .ge. 0) ) then
> 
>           ISTEP = FIND2( CDATE, CTIME, NSTEPS, STEP_DATE, STEP_TIME)
> 
>           if(.not.READ3(M3_FLNAME(STEP_FILE(ISTEP)), tempvar, 1, cdate, ctime, tvalues(h,:,:)) ) then
636a647
> 
669c680
<       Subroutine maxO3Values(hrValues, dayValues, tzoffset, curDate, partDay)
---
>       Subroutine maxO3Values(hrValues, dayValues, tzoffset, curDate)
671a683,685
>       USE ENV_VARS
>       USE M3FILES
>       USE TIME_STEP
680c694
<       Logical partDay
---
>       INTEGER ISTEP
689c703
<       Character*(16) ozonevar
---
> c      Character*(16) ozonevar
697c711
<       INTEGER HOURS_8HRMAX          ! number of 8hr values to compute 8hr max     
---
> c      INTEGER HOURS_8HRMAX          ! number of 8hr values to compute 8hr max     
703,712d716
< C... Get the HOURS_8HRMAX environment variable (default is 24)                                                          
<        ENV_DESC = 'Number of 8hr values to use when computing DM8HR'                                               
<        HOURS_8HRMAX= ENVINT( 'HOURS_8HRMAX', ENV_DESC, 24, STATUS)  
< 	 
<        if ( ( HOURS_8HRMAX .NE. 24) .AND. ( HOURS_8HRMAX .NE. 17) ) THEN                                
< 
<         MSG = '**Error** Invalid value for HOURS_8HRMAX, use 24 or 17'
<         CALL M3ERR( PNAME, 0, 0, MSG, .TRUE. ) 
<         Stop
<        Endif
718,719d721
<         Call ENVSTR('OZONE','Ozone species used in @8HRMAXO3 operation',
<      &              'O3', ozonevar, status)  
720a723,727
> C... store first and last day/time to process from module_tstep (across all input files)                    
>         first_date = STEP_DATE(1)
>         first_time = STEP_TIME(1)                                      
>         last_date = STEP_DATE(NSTEPS)
>         last_time = STEP_TIME(NSTEPS)                                      
722,728c729,732
<         ! Compute last date and time to process                    
<         first_date = SDATE3D
<         first_time = STIME3D                                      
<         last_date = SDATE3D
<         last_time = STIME3D                                      
<         runlen = SEC2TIME( (MXREC3D-1) * TIME2SEC( TSTEP3D ))
<         Call NEXTIME( last_date, last_time, runlen ) 
---
> c... adjust first and last date based on START_DATE and END_DATE envvars
> 
>         first_date = MAX( first_date, START_DATE)
>         last_date  = MIN( last_date, END_DATE)
737,739c741,746
<         if( (SECSDIFF(first_date, first_time, cdate, ctime) .ge. 0)
<      &    .and. (SECSDIFF(cdate, ctime, last_date, last_time) .ge. 0) ) then
<           if(.not.READ3('INFILE', ozonevar, 1, cdate, ctime, O3values(h,:,:)) ) then
---
>         if( (SECSDIFF(STEP_DATE(1), STEP_TIME(1), cdate, ctime) .ge. 0)
>      &   .and. (SECSDIFF(cdate, ctime, STEP_DATE(NSTEPS), STEP_TIME(NSTEPS)) .ge. 0) ) then
> 
>           ISTEP = FIND2( CDATE, CTIME, NSTEPS, STEP_DATE, STEP_TIME)
> 
>           if(.not.READ3(M3_FLNAME(STEP_FILE(ISTEP)), ozonevar, 1, cdate, ctime, O3values(h,:,:)) ) then
741a749
> 
818c826
<       Subroutine maxDifValues(hrValues, dayValues, tzoffset, startHr, endHr, partDay)
---
>       Subroutine maxDifValues(hrValues, dayValues, tzoffset)
820a829
>       USE ENV_VARS
828,829d836
<       Integer startHr, endHr
<       Logical partDay
864c871
<       Subroutine max8hr(hrValues, dayValues, tzoffset, partDay)
---
>       Subroutine max8hr(hrValues, dayValues, tzoffset)
866a874
>       USE ENV_VARS
874d881
<       Logical partDay
880c887
<       INTEGER HOURS_8HRMAX          ! number of 8hr values to compute 8hr max     
---
> c      INTEGER HOURS_8HRMAX          ! number of 8hr values to compute 8hr max     
887,888c894,895
<        ENV_DESC = 'Number of 8hr values to use when computing DM8HR'                                               
<        HOURS_8HRMAX= ENVINT( 'HOURS_8HRMAX', ENV_DESC, 24, STATUS)  
---
> c       ENV_DESC = 'Number of 8hr values to use when computing DM8HR'                                               
> c       HOURS_8HRMAX= ENVINT( 'HOURS_8HRMAX', ENV_DESC, 24, STATUS)  
890c897
<        if ( ( HOURS_8HRMAX .NE. 24) .AND. ( HOURS_8HRMAX .NE. 17) ) THEN                                
---
> c       if ( ( HOURS_8HRMAX .NE. 24) .AND. ( HOURS_8HRMAX .NE. 17) ) THEN                                
892,895c899,902
<         MSG = '**Error** Invalid value for HOURS_8HRMAX, use 24 or 17'
<         CALL M3ERR( PNAME, 0, 0, MSG, .TRUE. ) 
<         Stop
<        Endif
---
> c        MSG = '**Error** Invalid value for HOURS_8HRMAX, use 24 or 17'
> c        CALL M3ERR( PNAME, 0, 0, MSG, .TRUE. ) 
> c        Stop
> c       Endif
957c964
<       Subroutine max8hrHour(hrValues, dayValues, tzoffset, partDay)
---
>       Subroutine max8hrHour(hrValues, dayValues, tzoffset)
959a967
>       USE ENV_VARS
967d974
<       Logical partDay
974c981
<       INTEGER HOURS_8HRMAX          ! number of 8hr values to compute 8hr max     
---
> c      INTEGER HOURS_8HRMAX          ! number of 8hr values to compute 8hr max     
981,982c988,989
<        ENV_DESC = 'Number of 8hr values to use when computing DM8HR'                                               
<        HOURS_8HRMAX= ENVINT( 'HOURS_8HRMAX', ENV_DESC, 24, STATUS)  
---
> c       ENV_DESC = 'Number of 8hr values to use when computing DM8HR'                                               
> c       HOURS_8HRMAX= ENVINT( 'HOURS_8HRMAX', ENV_DESC, 24, STATUS)  
984c991
<        if ( ( HOURS_8HRMAX .NE. 24) .AND. ( HOURS_8HRMAX .NE. 17) ) THEN                                
---
> c       if ( ( HOURS_8HRMAX .NE. 24) .AND. ( HOURS_8HRMAX .NE. 17) ) THEN                                
986,989c993,996
<         MSG = '**Error** Invalid value for HOURS_8HRMAX, use 24 or 17'
<         CALL M3ERR( PNAME, 0, 0, MSG, .TRUE. ) 
<         Stop
<        Endif
---
> c        MSG = '**Error** Invalid value for HOURS_8HRMAX, use 24 or 17'
> c        CALL M3ERR( PNAME, 0, 0, MSG, .TRUE. ) 
> c        Stop
> c       Endif
1060c1067
<       Subroutine w126(hrValues, dayValues, tzoffset, units, partDay)
---
>       Subroutine w126(hrValues, dayValues, tzoffset, units)
1062a1070
>       USE ENV_VARS
1071d1078
<       Logical partDay
1110c1117
<       Subroutine sum06(hrValues, dayValues, tzoffset, units, partDay)
---
>       Subroutine sum06(hrValues, dayValues, tzoffset, units)
1112a1120
>       USE ENV_VARS
1121d1128
<       Logical partDay
============================================================================ module_envvar.F
diff: /work/ROMO/users/bkx/cmaq/testgit/chk13sep2018/POST/hr2day/scripts/BLD_hr2day_v521_intel17.0/module_envvar.F: No such file or directory
============================================================================ module_evaluator.F
561a562,563
>       USE M3FILES
>       USE TIME_STEP
570a573
>       INTEGER ISTEP
572c575,577
<       KSWIT = READ3('INFILE', field, ilayer, idate, itime, specValue)
---
>       ISTEP = FIND2( IDATE, ITIME, NSTEPS, STEP_DATE, STEP_TIME)
> 
>       KSWIT = READ3(M3_FLNAME(STEP_FILE(ISTEP)), field, ilayer, idate, itime, specValue)
============================================================================ module_file.F
diff: /work/ROMO/users/bkx/cmaq/testgit/chk13sep2018/POST/hr2day/scripts/BLD_hr2day_v521_intel17.0/module_file.F: No such file or directory
============================================================================ module_grid.F
diff: /work/ROMO/users/bkx/cmaq/testgit/chk13sep2018/POST/hr2day/scripts/BLD_hr2day_v521_intel17.0/module_grid.F: No such file or directory
============================================================================ module_spec.F
Files /work/ROMO/users/bkx/cmaq/testgit/chk13sep2018/POST/hr2day/scripts/BLD_hr2day_v521_intel17.0/module_spec.F and module_spec.F are identical
============================================================================ module_tstep.F
diff: /work/ROMO/users/bkx/cmaq/testgit/chk13sep2018/POST/hr2day/scripts/BLD_hr2day_v521_intel17.0/module_tstep.F: No such file or directory
============================================================================ parser.F
Files /work/ROMO/users/bkx/cmaq/testgit/chk13sep2018/POST/hr2day/scripts/BLD_hr2day_v521_intel17.0/parser.F and parser.F are identical
