Helper subroutine to create FFT plan with automatic cuFFTMp fallback
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout) | :: | plan | |||
| logical, | intent(inout) | :: | use_cufftmp | |||
| integer, | intent(in) | :: | nx | |||
| integer, | intent(in) | :: | ny | |||
| integer, | intent(in) | :: | nz | |||
| integer, | intent(in) | :: | plan_type | |||
| character(len=*), | intent(in) | :: | plan_name | |||
| integer(kind=int_ptr_kind()), | intent(out), | optional | :: | worksize_out |
Set to cufftMakePlan3D's reported workspace size (bytes) when present. Optional and unused by every real solver call site (init, below); added only so the static memory estimator can read the exact FFT workspace size without a second, duplicate cufftMakePlan3D call. |
|
| integer, | intent(out), | optional | :: | stat |
When present, a failed plain cuFFT plan creation returns its cuFFT error code here instead of stopping. Used only by the static memory estimator; the solver call sites leave it out and keep the stop. |
|
| logical, | intent(in), | optional | :: | auto_alloc_off |
When present and true, a cuFFTMp plan is made with auto-allocation off. The plan then reports its workspace size in worksize_out and does not allocate the workspace. Used only by the static memory estimator. |