From ca43117d3ce80d4ea04e6ecb15bf7a61f2ce8c3f Mon Sep 17 00:00:00 2001 From: Gabriel Tyszka Date: Mon, 6 Jul 2026 13:39:10 +0200 Subject: [PATCH 1/2] Fix lightcurve generation: gracefully handle FITS write errors and ensure velocity columns are loaded for relativistic corrections --- src/analysis.f90 | 1 + src/lightcurve.f90 | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/analysis.f90 b/src/analysis.f90 index 83bb1069..ebc745b3 100644 --- a/src/analysis.f90 +++ b/src/analysis.f90 @@ -412,6 +412,7 @@ subroutine open_analysis(analysistype,required,ncolumns,ndim,ndimV,nsinks) required(ipmass) = .true. required(itemp) = .true. required(ikappa) = .true. + if (ivx > 0) required(ivx:ivx+ndimV-1) = .true. ! !--set filename and header line ! diff --git a/src/lightcurve.f90 b/src/lightcurve.f90 index 472d1251..e8a110e8 100644 --- a/src/lightcurve.f90 +++ b/src/lightcurve.f90 @@ -335,6 +335,7 @@ subroutine get_lightcurve(ncolumns,dat,npartoftype,masstype,itype,ndim,ntypes,& call write_fits_image('img_'//trim(specfile)//'_mom0.fits',img,(/npixx,npixy/),ierr) if (ierr /= 0) then write(*,"(a)") ' ERROR: mom0 FITS image not written; skipping cube' + ierr = 0 return endif @@ -349,7 +350,10 @@ subroutine get_lightcurve(ncolumns,dat,npartoftype,masstype,itype,ndim,ntypes,& !$omp end parallel do call write_fits_cube('img_'//trim(specfile)//'.fits',img_tmp,(/npixx,npixy,nfreq/),ierr) endif - if (ierr /= 0) write(*,*) 'Error writing to FITS cube !!!' + if (ierr /= 0) then + write(*,*) 'Error writing to FITS cube !!!' + ierr = 0 + endif if (allocated(img_tmp)) deallocate(img_tmp) endif From 86b16c1ef8710e45ff8f137a94a38db519e80d4d Mon Sep 17 00:00:00 2001 From: Gabriel Tyszka Date: Mon, 6 Jul 2026 15:18:35 +0200 Subject: [PATCH 2/2] Apply automated review suggestion: add upper bounds check for required velocity columns --- src/analysis.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/analysis.f90 b/src/analysis.f90 index ebc745b3..6e55222d 100644 --- a/src/analysis.f90 +++ b/src/analysis.f90 @@ -412,7 +412,7 @@ subroutine open_analysis(analysistype,required,ncolumns,ndim,ndimV,nsinks) required(ipmass) = .true. required(itemp) = .true. required(ikappa) = .true. - if (ivx > 0) required(ivx:ivx+ndimV-1) = .true. + if (ivx > 0 .and. ivx+ndimV-1 <= ncolumns) required(ivx:ivx+ndimV-1) = .true. ! !--set filename and header line !