From fd2671c00d2aa6659d51cd676d9d0a01016cd248 Mon Sep 17 00:00:00 2001 From: Alain Hebert Date: Sun, 19 Oct 2025 11:39:22 +0200 Subject: #8: Improve epsilon tests and error detection in module SALT: --- Dragon/src/SALTLS.f90 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'Dragon/src/SALTLS.f90') diff --git a/Dragon/src/SALTLS.f90 b/Dragon/src/SALTLS.f90 index 32a4500..2ce2c4f 100644 --- a/Dragon/src/SALTLS.f90 +++ b/Dragon/src/SALTLS.f90 @@ -77,6 +77,7 @@ SUBROUTINE SALTLS(IFTEMP,IPRINT,IGTRK,NFREG,NBANGL,NQUAD,RENO,NBDR,IFMT,DENUSR, REAL(PDB), DIMENSION(2) :: THETA0 REAL(PDB), ALLOCATABLE, DIMENSION(:) :: VOLN,SURFN,CURRN REAL(PDB), ALLOCATABLE, DIMENSION(:,:) :: FACNRM ! aux for normalisation + CHARACTER(LEN=131) :: HSMG REAL, PARAMETER :: EPS3 = 1E-3 INTEGER, PARAMETER :: FOUT =6 ! @@ -174,7 +175,10 @@ SUBROUTINE SALTLS(IFTEMP,IPRINT,IGTRK,NFREG,NBANGL,NQUAD,RENO,NBDR,IFMT,DENUSR, II0=CNT0+1 IF(IPRINT > 3) CALL SAL231(RTRAC2(II0:),ITRAC2(II0:),DELX,EX0,EY0,ANGLE) DO II=1,ITRAC2(II0) - IF(RTRAC2(II0+II+NNN-1) <= 0.0) CALL XABORT('SALTLS: INVALID SEGMENT LENGTH') + IF(RTRAC2(II0+II+NNN-1) <= -EPSILON_PDB) THEN + WRITE(HSMG,'(39HSALTLS: INVALID SEGMENT LENGTH (RTRAC2=,1P,E12.4,1H))') RTRAC2(II0+II+NNN-1) + CALL XABORT(HSMG) + ENDIF ENDDO ! compute volumes CALL SAL232(ITRAC2(II0:),RTRAC2(II0:),FACNRM,GG,SURFN,CURRN) -- cgit v1.2.3