23 integer,
allocatable :: idx(:)
26 integer :: n_scalars = 0
27 real(kind=
rp) :: time = 0.0
28 integer :: glb_nelv = 0
30 integer :: offset_el = 0
34 integer :: t_counter = 0
36 integer :: meta_nsamples = 0
37 integer :: meta_start_counter = 0
38 character(len=1024) :: fld_series_fname
53 integer,
intent(in),
optional :: nelv, offset_el
55 if (
present(nelv)) this%nelv = nelv
56 if (
present(offset_el)) this%offset_el = offset_el
64 if(this%u%n .gt. 0) i = i + 1
65 if(this%v%n .gt. 0) i = i + 1
66 if(this%w%n .gt. 0) i = i + 1
67 if(this%p%n .gt. 0) i = i + 1
68 if(this%t%n .gt. 0) i = i + 1
69 i = i + this%n_scalars
76 integer,
intent(in) :: n
80 if(this%u%n .gt. 0)
then
81 ptr_list(i)%ptr => this%u
84 if(this%v%n .gt. 0)
then
85 ptr_list(i)%ptr => this%v
88 if(this%w%n .gt. 0)
then
89 ptr_list(i)%ptr => this%w
92 if(this%p%n .gt. 0)
then
93 ptr_list(i)%ptr => this%p
96 if(this%t%n .gt. 0)
then
97 ptr_list(i)%ptr => this%t
100 do j = 1, this%n_scalars
101 ptr_list(i)%ptr => this%s(j)
112 real(kind=
rp),
intent(in) :: c
115 if(this%u%n .gt. 0)
call cmult(this%u%x,c,this%u%n)
116 if(this%v%n .gt. 0)
call cmult(this%v%x,c,this%v%n)
117 if(this%w%n .gt. 0)
call cmult(this%w%x,c,this%w%n)
118 if(this%p%n .gt. 0)
call cmult(this%p%x,c,this%p%n)
119 if(this%t%n .gt. 0)
call cmult(this%t%x,c,this%t%n)
121 do i = 1, this%n_scalars
122 if(this%s(i)%n .gt. 0)
call cmult(this%s(i)%x,c,this%s(i)%n)
133 if(this%u%n .gt. 0)
call add2(this%u%x,fld_data_add%u%x,this%u%n)
134 if(this%v%n .gt. 0)
call add2(this%v%x,fld_data_add%v%x,this%v%n)
135 if(this%w%n .gt. 0)
call add2(this%w%x,fld_data_add%w%x,this%w%n)
136 if(this%p%n .gt. 0)
call add2(this%p%x,fld_data_add%p%x,this%p%n)
137 if(this%t%n .gt. 0)
call add2(this%t%x,fld_data_add%t%x,this%t%n)
139 do i = 1, this%n_scalars
140 if(this%s(i)%n .gt. 0)
call add2(this%s(i)%x,fld_data_add%s(i)%x,this%s(i)%n)
156 if (
allocated(this%s))
then
157 do i = 1, this%n_scalars
158 call this%s(i)%free()
170 this%meta_nsamples = 0
171 this%meta_start_counter = 0
Simple module to handle fld file series. Provides an interface to the different fields sotred in a fl...
integer function fld_file_data_size(this)
Get number of fields in this fld file.
subroutine fld_file_data_add(this, fld_data_add)
Add the values in another fld file to this.
subroutine fld_file_get_list(this, ptr_list, n)
Get a list with pointers to the fields in the fld file.
subroutine fld_file_data_free(this)
Deallocate fld file data type.
subroutine fld_file_data_init(this, nelv, offset_el)
Initialise a fld_file_data object with nelv elements with a offset_nel.
subroutine fld_file_data_scale(this, c)
Scale the values stored in this fld_file_data.
subroutine, public cmult(a, c, n)
Multiplication by constant c .
subroutine, public add2(a, b, n)
Vector addition .
integer, parameter, public rp
Global precision used in computations.