Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Fortran code to average hourly data into daily values 1

Status
Not open for further replies.

ASRC8367

Technical User
Apr 11, 2021
2
0
0
US
Hello All,

I am new to using Fortan and doing research work with hourly observation data and computing 24 hour times periods down to daily averaged vaule. I have did a search online and found a Fortran script similar to what my needs are for data computation. The script runs as far as line 101 then crashes. Not sure what the issues is with the script. Does anyone have any suggustions? Also how would I output the two columns of date and data to a new file say one named datatest.txt? I have file format and the script being used to below.....

Thank you

20101002 15:00 0.4
20101002 16:00 0.4
20101002 17:00 0.4
20101002 18:00 0.7
20101002 19:00 0.8
20101002 20:00 0.8
20101002 21:00 0.6
20101002 22:00 0.4

program control_break
! Single-Level Control Break Processing

implicit none

integer :: stat, nr_records
real :: dummy
! global variables
integer :: date, date_save, col02, nr_col03, tnr_col03
real :: col03, sum_col03, tsum_col03
common date, date_save, col02, col03, &
nr_col03, sum_col03, &
tnr_col03, tsum_col03

! open file
open (1, file="C:\\Users\\Jason\\Desktop\\GEOS-CHEM-Data\\County005-CO-0133.txt", status='old', iostat=stat)
if (stat .ne. 0) then
write(*,*) 'File cannot be opened !'
go to 99
end if

write(*, '(80A)') '*******************************************************'
! process file
nr_records = 0
date_save = 0

do while (.true.)
! read record
read(1, *, end=99) dummy, col02, col03
nr_records = nr_records + 1
call process_record
call save_keys
enddo

99 continue
! at end print totals
call print_daily_summary
call print_total_summary
write(*, 10) nr_records
write(*, '(80A)') '*******************************************************'
! close file
close(1)

10 format('Processing of',1X, I0, 1X, 'lines finished.')
end program control_break

subroutine process_record
implicit none
! global variables
integer :: date, date_save, col02, nr_col03, tnr_col03
real :: col03, sum_col03, tsum_col03
common date, date_save, col02, col03, &
nr_col03, sum_col03, &
tnr_col03, tsum_col03

! compute date
date = col02

! if not on first record
if (date_save .ne. 0) then
! process control break
call process_control_break
end if

! print line
write(*, 10) col02, col03

! compute sum of col03
if (col03 .ne. -999.0) then
nr_col03 = nr_col03 + 1
sum_col03 = sum_col03 + col03
tnr_col03 = tnr_col03 + 1
tsum_col03 = tsum_col03 + col03
end if

10 format(5X, I10, 1X, f8.2, 1X, f8.2)
end subroutine process_record

subroutine process_control_break
implicit none
! global variables
integer :: date, date_save, col02, nr_col03, tnr_col03
real :: col03, col07, sum_col03, tsum_col03
common date, date_save, col02, col03, &
nr_col03, sum_col03, &
tnr_col03, tsum_col03

if (date .ne. date_save) then
call print_daily_summary
end if
end subroutine process_control_break

subroutine print_daily_summary
implicit none
! global variables
integer :: date, date_save, col02, nr_col03, tnr_col03
real :: col03, sum_col03, tsum_col03
common date, date_save, col02, col03 &
nr_col03, sum_col03, &
tnr_col03, tsum_col03

write(*, *)
write(*, 10) date_save
write(*, 20) sum_col03
write(*, 30) nr_col03
write(*, 40) sum_col03/nr_col03
write(*, *)

10 format('* Summary for date',1x,I8,':')
20 format('* sum:',9x, f8.2, 1x, f8.2)
30 format('* count:',7x,I8,1x,I8)
40 format('* average:',5x, f8.2, 1x, f8.2)

! initialize gloabal variables
sum_col03 = 0
nr_col03 = 0
end subroutine print_daily_summary

subroutine print_total_summary
implicit none
! global variables
integer :: date, date_save, col02, nr_col03, tnr_col03
real :: col03, sum_col03, tsum_col03
common date, date_save, col02, col03, &
nr_col03, sum_col03, &
tnr_col03, tsum_col03

write(*, 10)
write(*, 20) tsum_col03
write(*, 30) tnr_col03
write(*, 40) tsum_col03/tnr_col03

10 format('** Summary for all dates:')
20 format('** sum:',9x, f8.2, 1x, f8.2)
30 format('** count:',7x,I8,1x,I8)
40 format('** average:',5x, f8.2, 1x, f8.2)
end subroutine print_total_summary

subroutine save_keys
implicit none
! global variables
integer :: date, date_save, col02, nr_col03, tnr_col03
real :: col03, sum_col03, tsum_col03
common date, date_save, col02, col03, &
nr_col03, sum_col03, &
tnr_col03, tsum_col03

date_save = date
end subroutine save_keys
 
I adapted the program temperatures.f95 from
Try this:
Code:
[COLOR=#a020f0]module[/color] glob_vars
  [COLOR=#0000ff]! declaration of global variables[/color]
  [COLOR=#2e8b57][b]implicit[/b][/color] [COLOR=#2e8b57][b]none[/b][/color]
  [COLOR=#2e8b57][b]integer[/b][/color] :: nr_records
  [COLOR=#0000ff]! file record fields[/color]
  [COLOR=#2e8b57][b]integer[/b][/color] :: date
  [COLOR=#2e8b57][b]character[/b][/color]([COLOR=#ff00ff]5[/color]) :: time
[COLOR=#2e8b57][b]  real[/b][/color] :: val
  [COLOR=#0000ff]! save fields[/color]
  [COLOR=#2e8b57][b]integer[/b][/color] :: date_save
  [COLOR=#2e8b57][b]character[/b][/color]([COLOR=#ff00ff]5[/color]) :: time_save
[COLOR=#2e8b57][b]  real[/b][/color] :: val_save
  [COLOR=#0000ff]! daily result fields[/color]
  [COLOR=#2e8b57][b]integer[/b][/color] :: nr_val
[COLOR=#2e8b57][b]  real[/b][/color] :: min_val, max_val, sum_val
  [COLOR=#2e8b57][b]character[/b][/color]([COLOR=#ff00ff]5[/color]) :: min_time, max_time
  [COLOR=#0000ff]! total result fields[/color]
  [COLOR=#2e8b57][b]integer[/b][/color] :: tmin_date, tmax_date, tnr_val
[COLOR=#2e8b57][b]  real[/b][/color] :: tmin_val, tmax_val, tsum_val
  [COLOR=#2e8b57][b]character[/b][/color]([COLOR=#ff00ff]5[/color]) :: tmin_time, tmax_time  
[COLOR=#a020f0]end module[/color] glob_vars

[COLOR=#a020f0]program[/color] control_break2
  [COLOR=#0000ff]! Single-Level Control Break Processing[/color]

  [COLOR=#a020f0]use[/color] glob_vars

  [COLOR=#2e8b57][b]implicit[/b][/color] [COLOR=#2e8b57][b]none[/b][/color]
  
  [COLOR=#2e8b57][b]integer[/b][/color] :: stat [COLOR=#0000ff]! file status[/color]

  [COLOR=#0000ff]! open file[/color]
  [COLOR=#804040][b]open[/b][/color] ([COLOR=#ff00ff]1[/color], [COLOR=#804040][b]file[/b][/color][COLOR=#804040][b]=[/b][/color][COLOR=#ff00ff]'control_break2.dat'[/color], [COLOR=#804040][b]status[/b][/color][COLOR=#804040][b]=[/b][/color][COLOR=#ff00ff]'old'[/color], [COLOR=#804040][b]iostat[/b][/color][COLOR=#804040][b]=[/b][/color]stat)
  [COLOR=#804040][b]if[/b][/color] (stat [COLOR=#804040][b].ne.[/b][/color] [COLOR=#ff00ff]0[/color]) [COLOR=#804040][b]then[/b][/color]
    [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color],[COLOR=#804040][b]*[/b][/color]) [COLOR=#ff00ff]'File cannot be opened !'[/color]
    [COLOR=#804040][b]go to[/b][/color] [COLOR=#ff00ff]99[/color]
  [COLOR=#804040][b]end if[/b][/color]

  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#ff00ff]'(80A)'[/color]) [COLOR=#ff00ff]'*******************************************************'[/color]
  [COLOR=#0000ff]! process file[/color]
  nr_records [COLOR=#804040][b]=[/b][/color] [COLOR=#ff00ff]0[/color]
  date_save [COLOR=#804040][b]=[/b][/color] [COLOR=#ff00ff]0[/color]

  [COLOR=#804040][b]do[/b][/color] [COLOR=#804040][b]while[/b][/color] ([COLOR=#ff00ff].true.[/color])
    [COLOR=#0000ff]! read record[/color]
    [COLOR=#804040][b]read[/b][/color]([COLOR=#ff00ff]1[/color], [COLOR=#804040][b]*[/b][/color], [COLOR=#804040][b]end[/b][/color][COLOR=#804040][b]=[/b][/color][COLOR=#804040][b]99[/b][/color]) date, time, val
    nr_records [COLOR=#804040][b]=[/b][/color] nr_records [COLOR=#804040][b]+[/b][/color] [COLOR=#ff00ff]1[/color]
    [COLOR=#008080]call[/color] process_record
    [COLOR=#008080]call[/color] save_keys
  [COLOR=#804040][b]enddo[/b][/color]

[COLOR=#804040][b]  99 continue[/b][/color]
  [COLOR=#0000ff]! at end print totals[/color]
  [COLOR=#008080]call[/color] print_daily_summary
  [COLOR=#008080]call[/color] print_total_summary
  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#ff00ff]10[/color]) nr_records
  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#ff00ff]'(80A)'[/color]) [COLOR=#ff00ff]'*******************************************************'[/color]
  [COLOR=#0000ff]! close file[/color]
  [COLOR=#804040][b]close[/b][/color]([COLOR=#ff00ff]1[/color])

  [COLOR=#6a5acd]10[/color] [COLOR=#804040][b]format[/b][/color]([COLOR=#ff00ff]'Processing of'[/color], [COLOR=#008080]1X[/color], I0, [COLOR=#008080]1X[/color], [COLOR=#ff00ff]'lines finished.'[/color])
[COLOR=#a020f0]end program[/color] control_break2

[COLOR=#a020f0]subroutine[/color] process_record
  [COLOR=#a020f0]use[/color] glob_vars
  [COLOR=#2e8b57][b]implicit[/b][/color] [COLOR=#2e8b57][b]none[/b][/color]

  [COLOR=#0000ff]! on 1.record initialize min and max values[/color]
  [COLOR=#804040][b]if[/b][/color] (nr_records [COLOR=#804040][b].eq.[/b][/color] [COLOR=#ff00ff]1[/color]) [COLOR=#804040][b]then[/b][/color]
    [COLOR=#0000ff]! daily values[/color]
    min_time [COLOR=#804040][b]=[/b][/color] time
    min_val [COLOR=#804040][b]=[/b][/color] val
    max_time [COLOR=#804040][b]=[/b][/color] time
    max_val [COLOR=#804040][b]=[/b][/color] val
    [COLOR=#0000ff]! total values[/color]
    tmin_date [COLOR=#804040][b]=[/b][/color] date
    tmin_time [COLOR=#804040][b]=[/b][/color] time
    tmin_val [COLOR=#804040][b]=[/b][/color] val
    tmax_date [COLOR=#804040][b]=[/b][/color] date
    tmax_time [COLOR=#804040][b]=[/b][/color] time
    tmax_val [COLOR=#804040][b]=[/b][/color] val 
  [COLOR=#804040][b]end if[/b][/color]

  [COLOR=#0000ff]! if not on 1.record[/color]
  [COLOR=#804040][b]if[/b][/color] (date_save [COLOR=#804040][b].ne.[/b][/color] [COLOR=#ff00ff]0[/color]) [COLOR=#804040][b]then[/b][/color]
    [COLOR=#0000ff]! process control break[/color]
    [COLOR=#008080]call[/color] process_control_break
  [COLOR=#804040][b]end if[/b][/color]

  [COLOR=#0000ff]! print line[/color]
  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#ff00ff]10[/color]) nr_records, date, time, val

  [COLOR=#0000ff]! compute minimum[/color]
  [COLOR=#804040][b]if[/b][/color] (val [COLOR=#804040][b].lt.[/b][/color] min_val) [COLOR=#804040][b]then[/b][/color]
    [COLOR=#0000ff]! daily values[/color]
    min_time [COLOR=#804040][b]=[/b][/color] time
    min_val [COLOR=#804040][b]=[/b][/color] val
  [COLOR=#804040][b]end if[/b][/color]
  [COLOR=#804040][b]if[/b][/color] (val [COLOR=#804040][b].lt.[/b][/color] tmin_val) [COLOR=#804040][b]then[/b][/color]
    [COLOR=#0000ff]! total values[/color]
    tmin_date [COLOR=#804040][b]=[/b][/color] date
    tmin_time [COLOR=#804040][b]=[/b][/color] time
    tmin_val [COLOR=#804040][b]=[/b][/color] val
  [COLOR=#804040][b]end if[/b][/color]

  [COLOR=#0000ff]! compute maximum[/color]
  [COLOR=#804040][b]if[/b][/color] (val [COLOR=#804040][b].gt.[/b][/color] max_val) [COLOR=#804040][b]then[/b][/color] 
    [COLOR=#0000ff]! daily values[/color]
    max_time [COLOR=#804040][b]=[/b][/color] time
    max_val [COLOR=#804040][b]=[/b][/color] val 
  [COLOR=#804040][b]end if[/b][/color]
  [COLOR=#804040][b]if[/b][/color] (val [COLOR=#804040][b].gt.[/b][/color] tmax_val) [COLOR=#804040][b]then[/b][/color] 
    [COLOR=#0000ff]! total values[/color]
    tmax_date [COLOR=#804040][b]=[/b][/color] date
    tmax_time [COLOR=#804040][b]=[/b][/color] time
    tmax_val [COLOR=#804040][b]=[/b][/color] val 
  [COLOR=#804040][b]end if[/b][/color]

  nr_val [COLOR=#804040][b]=[/b][/color] nr_val [COLOR=#804040][b]+[/b][/color] [COLOR=#ff00ff]1[/color]
  sum_val [COLOR=#804040][b]=[/b][/color] sum_val [COLOR=#804040][b]+[/b][/color] val  
  tnr_val [COLOR=#804040][b]=[/b][/color] tnr_val [COLOR=#804040][b]+[/b][/color] [COLOR=#ff00ff]1[/color]
  tsum_val [COLOR=#804040][b]=[/b][/color] tsum_val [COLOR=#804040][b]+[/b][/color] val  
 
  [COLOR=#6a5acd]10[/color] [COLOR=#804040][b]format[/b][/color]([COLOR=#008080]5X[/color], i3, [COLOR=#008080]1x[/color], i8, [COLOR=#008080]1x[/color], a, [COLOR=#008080]1x[/color], [COLOR=#008080]f3.1[/color])  
[COLOR=#a020f0]end subroutine[/color] process_record

[COLOR=#a020f0]subroutine[/color] process_control_break
  [COLOR=#a020f0]use[/color] glob_vars
  [COLOR=#2e8b57][b]implicit[/b][/color] [COLOR=#2e8b57][b]none[/b][/color]
  [COLOR=#0000ff]![/color]
  [COLOR=#804040][b]if[/b][/color] (date [COLOR=#804040][b].ne.[/b][/color] date_save) [COLOR=#804040][b]then[/b][/color]
     [COLOR=#008080]call[/color] print_daily_summary
  [COLOR=#804040][b]end if[/b][/color]  
[COLOR=#a020f0]end subroutine[/color] process_control_break

[COLOR=#a020f0]subroutine[/color] print_daily_summary
  [COLOR=#a020f0]use[/color] glob_vars
  [COLOR=#2e8b57][b]implicit[/b][/color] [COLOR=#2e8b57][b]none[/b][/color]
  [COLOR=#0000ff]![/color]
  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#804040][b]*[/b][/color])
  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#ff00ff]10[/color]) date_save
  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#ff00ff]20[/color]) [COLOR=#ff00ff]'*  min:'[/color], min_time, min_val
  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#ff00ff]20[/color]) [COLOR=#ff00ff]'*  max:'[/color], max_time, max_val
  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#ff00ff]30[/color]) sum_val  
  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#ff00ff]40[/color]) nr_val
  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#ff00ff]50[/color]) sum_val [COLOR=#804040][b]/[/b][/color] nr_val  
  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#804040][b]*[/b][/color])

  [COLOR=#6a5acd]10[/color] [COLOR=#804040][b]format[/b][/color]([COLOR=#ff00ff]'*  Summary for date'[/color], [COLOR=#008080]1x[/color], i8,[COLOR=#ff00ff]':'[/color])
  [COLOR=#6a5acd]20[/color] [COLOR=#804040][b]format[/b][/color](a7, [COLOR=#008080]10x[/color], a, [COLOR=#008080]1x[/color], [COLOR=#008080]f3.1[/color])
  [COLOR=#6a5acd]30[/color] [COLOR=#804040][b]format[/b][/color]([COLOR=#ff00ff]'*  sum:'[/color], [COLOR=#008080]9x[/color], [COLOR=#008080]f8.2[/color])  
  [COLOR=#6a5acd]40[/color] [COLOR=#804040][b]format[/b][/color]([COLOR=#ff00ff]'*  count:'[/color], [COLOR=#008080]7x[/color], I8)
  [COLOR=#6a5acd]50[/color] [COLOR=#804040][b]format[/b][/color]([COLOR=#ff00ff]'*  average:'[/color], [COLOR=#008080]5x[/color], [COLOR=#008080]f8.4[/color])  

  [COLOR=#0000ff]! initialize gloabal variables[/color]
  min_time [COLOR=#804040][b]=[/b][/color] time
  min_val [COLOR=#804040][b]=[/b][/color] val
  max_time [COLOR=#804040][b]=[/b][/color] time
  max_val [COLOR=#804040][b]=[/b][/color] val
  nr_val [COLOR=#804040][b]=[/b][/color] [COLOR=#ff00ff]0[/color]
  sum_val [COLOR=#804040][b]=[/b][/color] [COLOR=#ff00ff]0[/color]
[COLOR=#a020f0]end subroutine[/color] print_daily_summary

[COLOR=#a020f0]subroutine[/color] print_total_summary
  [COLOR=#a020f0]use[/color] glob_vars
  [COLOR=#2e8b57][b]implicit[/b][/color] [COLOR=#2e8b57][b]none[/b][/color]
  [COLOR=#0000ff]![/color]
  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#804040][b]*[/b][/color])
  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#ff00ff]10[/color])
  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#ff00ff]20[/color]) [COLOR=#ff00ff]'** min:'[/color], tmin_date, tmin_time, tmin_val 
  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#ff00ff]20[/color]) [COLOR=#ff00ff]'** max:'[/color], tmax_date, tmax_time, tmax_val  
  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#ff00ff]30[/color]) tsum_val  
  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#ff00ff]40[/color]) tnr_val
  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#ff00ff]50[/color]) tsum_val [COLOR=#804040][b]/[/b][/color] tnr_val
  [COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color], [COLOR=#804040][b]*[/b][/color])

  [COLOR=#6a5acd]10[/color] [COLOR=#804040][b]format[/b][/color]([COLOR=#ff00ff]'** Summary for all dates:'[/color])
  [COLOR=#6a5acd]20[/color] [COLOR=#804040][b]format[/b][/color](a7, [COLOR=#008080]2x[/color], i8, [COLOR=#008080]1x[/color], a, [COLOR=#008080]1x[/color], [COLOR=#008080]f3.1[/color])
  [COLOR=#6a5acd]30[/color] [COLOR=#804040][b]format[/b][/color]([COLOR=#ff00ff]'** sum:'[/color], [COLOR=#008080]9x[/color], [COLOR=#008080]f8.2[/color])  
  [COLOR=#6a5acd]40[/color] [COLOR=#804040][b]format[/b][/color]([COLOR=#ff00ff]'** count:'[/color], [COLOR=#008080]7x[/color], I8)
  [COLOR=#6a5acd]50[/color] [COLOR=#804040][b]format[/b][/color]([COLOR=#ff00ff]'** average:'[/color], [COLOR=#008080]5x[/color], [COLOR=#008080]f8.4[/color])
  
[COLOR=#a020f0]end subroutine[/color] print_total_summary

[COLOR=#a020f0]subroutine[/color] save_keys
  [COLOR=#a020f0]use[/color] glob_vars
  [COLOR=#2e8b57][b]implicit[/b][/color] [COLOR=#2e8b57][b]none[/b][/color]
  [COLOR=#0000ff]![/color]
  date_save [COLOR=#804040][b]=[/b][/color] date
[COLOR=#a020f0]end subroutine[/color] save_keys

with this example data
Code:
20101002 15:00 0.4
20101002 16:00 0.4
20101002 17:00 0.4
20101002 18:00 0.7
20101002 19:00 0.8
20101002 20:00 0.8
20101002 21:00 0.6
20101002 22:00 0.4
20101003 15:00 0.1
20101003 16:00 0.2
20101003 17:00 0.3
20101004 18:00 0.9
20101004 19:00 0.8
20101005 20:00 0.8
20101005 21:00 0.6
20101005 22:00 0.4

the output is:
Code:
$ gfortran control_break2.f95 -o control_break2
$ control_break2
*******************************************************
       1 20101002 15:00 0.4
       2 20101002 16:00 0.4
       3 20101002 17:00 0.4
       4 20101002 18:00 0.7
       5 20101002 19:00 0.8
       6 20101002 20:00 0.8
       7 20101002 21:00 0.6
       8 20101002 22:00 0.4

*  Summary for date 20101002:
*  min:          15:00 0.4
*  max:          19:00 0.8
*  sum:             4.50
*  count:              8
*  average:       0.5625

       9 20101003 15:00 0.1
      10 20101003 16:00 0.2
      11 20101003 17:00 0.3

*  Summary for date 20101003:
*  min:          15:00 0.1
*  max:          17:00 0.3
*  sum:             0.60
*  count:              3
*  average:       0.2000

      12 20101004 18:00 0.9
      13 20101004 19:00 0.8

*  Summary for date 20101004:
*  min:          19:00 0.8
*  max:          18:00 0.9
*  sum:             1.70
*  count:              2
*  average:       0.8500

      14 20101005 20:00 0.8
      15 20101005 21:00 0.6
      16 20101005 22:00 0.4

*  Summary for date 20101005:
*  min:          22:00 0.4
*  max:          20:00 0.8
*  sum:             1.80
*  count:              3
*  average:       0.6000


** Summary for all dates:
** min:  20101003 15:00 0.1
** max:  20101004 18:00 0.9
** sum:             8.60
** count:             16
** average:       0.5375

Processing of 16 lines finished.
*******************************************************
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top