Weird, I tried various values of kMaxnSLices down to 1500 with no effect.
I was able to work around the problem by moving lScanResX and friends
to global variables, as per the attached patch.
It builds on armhf, but someone familiar should verify program
functionality (on amd64 should be fine).
--- a/dcm2nii/parconvert.pas
+++ b/dcm2nii/parconvert.pas
@@ -9,6 +9,9 @@
implementation
uses dialogsx;
+var
+ lAPFOV,lFHFOV,lRLFOV,
+ lScanResX,lScanResY,lAngleA,lAngleB,lAngleC,lOffset1,lOffset2,lOffset3{,lXFOV,lYFOV}: double;
procedure PAR2DICOMstudyDate(var lDicomData: DICOMdata);
{input: lDicomData.StudyDate = 2002.12.29 / 19:48:58.0000
@@ -425,8 +428,6 @@
//lDTIra: TDTIra;
//lHFSStr,
lErrorStr,lInStr,lUpCaseStr,lReportedTRStr: string;
- lAPFOV,lFHFOV,lRLFOV,
- lScanResX,lScanResY,lAngleA,lAngleB,lAngleC,lOffset1,lOffset2,lOffset3{,lXFOV,lYFOV}: double;
lSliceIndexRAx,lSliceSequenceRA,lSortedSliceSequence: int64P;
//lSliceIndexRA: array [1..kMaxnSlices] of longint;
//lSSx,lRSx,lRIx: array [1..kMaxnSlices] of single;