FIXME : Add documentation
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(field_matrix_type), | private, | dimension (:), allocatable | :: | aminv | |||
logical, | public | :: | skip_initialisation | = | .false. |
A variable to help with running benchmarks... do not set true unless you know what you are doing. If true, the response matrix will not be initialised and set to zero. The results of any simulation will be garbage |
|
integer, | private | :: | nfield | ||||
integer, | private | :: | nidx | ||||
logical, | private | :: | initialized | = | .false. | ||
logical, | public | :: | field_subgath | ||||
logical, | public | :: | dump_response | = | .false. | ||
logical, | public | :: | read_response | = | .false. | ||
integer, | private, | dimension(:), allocatable | :: | recvcnts | |||
integer, | private, | dimension(:), allocatable | :: | displs |
FIXME : Add documentation
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
complex, | public, | dimension(:), allocatable | :: | supercell |
FIXME : Add documentation
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(dcell_type), | public, | dimension (:), allocatable | :: | dcell |
FIXME : Add documentation
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
logical, | intent(in), | optional | :: | gf_lo |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex, | intent(out), | dimension (:,:,:) | :: | fl | ||
complex, | intent(in), | dimension (-ntgrid:,:,:) | :: | phi | ||
complex, | intent(in), | dimension (-ntgrid:,:,:) | :: | apar | ||
complex, | intent(in), | dimension (-ntgrid:,:,:) | :: | bpar |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex, | intent(in), | dimension (0:) | :: | u |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex, | intent(in), | dimension (-ntgrid:,:,:) | :: | phi | ||
complex, | intent(in), | dimension (-ntgrid:,:,:) | :: | apar | ||
complex, | intent(in), | dimension (-ntgrid:,:,:) | :: | bpar |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | istep | |||
logical, | intent(in) | :: | remove_zonal_flows_switch |
FIXME : Add documentation
This generates a field line average of phi_in and writes it to phi_average. If ik_only is supplied, it will only calculate the field line average for that ky, leaving the rest of phi_avg unchanged. EGH
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex, | intent(in), | dimension (-ntgrid:,:,:) | :: | phi_in | ||
complex, | intent(out), | dimension (-ntgrid:,:,:) | :: | phi_average | ||
integer, | intent(in), | optional | :: | ik_only |
FIXME : Add documentation
FIXME : Add documentation
Pretty sure this barrier is not needed
call barrier
if (proc0) write(,) 'beginning class ',i,' with size ',nidxN_class(i)
Allocate matrix am. First dimension is basically theta along the entire
connected domain for each field. Second dimension is the local section
of the M_class(i)N_Class(i)(2ntgrid+1)nfield compound domain.
Clearly this will
allocate (am(nidxN_class(i), f_lo(i)%llim_proc:f_lo(i)%ulim_alloc))
Do we need to zero all 8 arrays on every loop? This can be more expensive than might think.
am = 0.0
call init_inverse_matrix (am, i)
Free memory
deallocate (am)
end do
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | ifield | |||
complex, | intent(inout), | dimension(:,f_lo(ic)%llim_proc:) | :: | am | ||
integer, | intent(in) | :: | ic | |||
integer, | intent(in) | :: | n |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex, | intent(inout), | dimension(:,f_lo(ic)%llim_proc:) | :: | am | ||
integer, | intent(in) | :: | ic |
FIXME : Add documentation
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(out) | :: | i | |||
integer, | intent(out) | :: | n | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it |
A routine to dump the current response matrix to file
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in), | optional | :: | suffix |
A routine to read the response matrix from file and populate the implicit response storage, note we also allocate the response storage objects DD>It may be anticipated that we need to fix the boundary points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
logical, | intent(out) | :: | could_read | |||
character(len=*), | intent(in), | optional | :: | suffix |
A subroutine to allocate the response matrix storage objects