Neko 1.0.0
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
average_fields_in_time.f90
Go to the documentation of this file.
1
4 use neko
5 implicit none
6
7 character(len=NEKO_FNAME_LEN) :: inputchar, mesh_fname, fld_fname, output_fname
8 type(file_t) :: fld_file, part_file, output_file
9 real(kind=rp) :: start_time
10 type(fld_file_data_t) :: fld_data, fld_data_avg
11 integer :: argc, i
12
13 character(len=LOG_SIZE) :: log_buf
14
15 argc = command_argument_count()
16
17 if ((argc .lt. 3) .or. (argc .gt. 3)) then
18 if (pe_rank .eq. 0) then
19 write(*,*) 'Usage: ./average_fields_in_time field_series_name.fld start_time output_name.fld'
20 write(*,*) 'Example command: ./average_fields_in_time mean_field104.fld 103.2 mean_field_avg.fld'
21 write(*,*) 'Computes the average field over the fld files described in mean_field104.nek5000'
22 write(*,*) 'The start time is the time at which the first file startsto collect stats'
23 write(*,*) 'The files need to be aranged chronological order.'
24 write(*,*) 'The average field is then stored in a fld series, i.e. output_name.nek5000 and output_name.f00000'
25 end if
26 stop
27 end if
28
29 call neko_init
30
31 call get_command_argument(1, inputchar)
32 read(inputchar, *) fld_fname
33 call fld_file%init(trim(fld_fname))
34 call get_command_argument(2, inputchar)
35 read(inputchar, *) start_time
36 call get_command_argument(3, inputchar)
37 read(inputchar, *) output_fname
38
39 call fld_data%init()
40 call fld_data_avg%init()
41
42 call fld_file%read(fld_data_avg)
43
44 write (log_buf, '(A, g0)') "dt: ", fld_data_avg%time - start_time
45 call neko_log%message(log_buf)
46
47 call fld_data_avg%scale(fld_data_avg%time-start_time)
48
49 do i = 1, fld_data_avg%meta_nsamples-1
50 call fld_file%read(fld_data)
51 call fld_data%scale(fld_data%time-fld_data_avg%time)
52 call fld_data_avg%add(fld_data)
53
54 write (log_buf, '(A, g0)') "dt: ", fld_data%time - fld_data_avg%time
55 call neko_log%message(log_buf)
56
57 fld_data_avg%time = fld_data%time
58 end do
59 call fld_data_avg%scale(1.0_rp/(fld_data_avg%time-start_time))
60
61 call output_file%init(trim(output_fname))
62
63 call neko_log%message('Writing file: ' // trim(output_fname))
64 call output_file%write(fld_data_avg, fld_data_avg%time)
65 call neko_log%message('Done')
66
67 call neko_finalize
68
69end program average_fields_in_time
program average_fields_in_time
Program to sum up averaged fields computed for statistics and mean field Martin Karp 27/01-23.
NEKTON fld file format.
Definition fld_file.f90:35
Master module.
Definition neko.f90:34
void neko_finalize()
void neko_init()