summaryrefslogtreecommitdiff
path: root/Dragon/src/SAL_GEOMETRY_MOD.f90
diff options
context:
space:
mode:
authorAlain Hebert <alainhebert@Alains-MacBook-Pro.local>2025-10-19 11:39:22 +0200
committerAlain Hebert <alainhebert@Alains-MacBook-Pro.local>2025-10-19 11:39:22 +0200
commitfd2671c00d2aa6659d51cd676d9d0a01016cd248 (patch)
tree446377010774826f3d24fa3e8f52905a14c0a7ea /Dragon/src/SAL_GEOMETRY_MOD.f90
parentf00eea9ff4dd094374672f5ef73939ed6a4dd9d5 (diff)
#8: Improve epsilon tests and error detection in module SALT:
Diffstat (limited to 'Dragon/src/SAL_GEOMETRY_MOD.f90')
-rw-r--r--Dragon/src/SAL_GEOMETRY_MOD.f9039
1 files changed, 37 insertions, 2 deletions
diff --git a/Dragon/src/SAL_GEOMETRY_MOD.f90 b/Dragon/src/SAL_GEOMETRY_MOD.f90
index 1056016..4bce6e8 100644
--- a/Dragon/src/SAL_GEOMETRY_MOD.f90
+++ b/Dragon/src/SAL_GEOMETRY_MOD.f90
@@ -16,7 +16,7 @@ MODULE SAL_GEOMETRY_MOD
USE SAL_GEOMETRY_TYPES
USE PRECISION_AND_KINDS, ONLY : PDB, PI,TWOPI,HALFPI
- USE SAL_NUMERIC_MOD, ONLY : SAL141
+ USE SAL_NUMERIC_MOD, ONLY : SAL141
USE SALGET_FUNS_MOD
CONTAINS
@@ -341,7 +341,7 @@ CONTAINS
!
!---------------------------------------------------------------------
!
- USE SAL_GEOMETRY_TYPES, ONLY : ALLSUR,PREC
+ USE SAL_GEOMETRY_TYPES, ONLY : TYPGEO,ALLSUR,PREC
!****
IMPLICIT NONE
! in variable
@@ -351,6 +351,7 @@ CONTAINS
INTEGER, PARAMETER :: N_DATAIN=25
INTEGER, DIMENSION (N_DATAIN) :: DATAIN
INTEGER :: ELEM,I,TYPE,NBER
+ CHARACTER(LEN=131) :: HSMG
INTEGER, PARAMETER, DIMENSION(0:4) :: READ_BC_LEN=(/1,1,3,3,3/)
INTEGER, PARAMETER :: FOUT =6
REAL(PDB) :: ANGLE,BCDATA_TDT(3)
@@ -409,9 +410,43 @@ CONTAINS
GG%BCDATAREAD(I)%BCDATA(6)=1._PDB
LBCDIAG=LBCDIAG.OR.((GG%BCDATAREAD(I)%BCDATA(1)==0._PDB).AND.(GG%BCDATAREAD(I)%BCDATA(2)==0._PDB) &
.AND.(GG%BCDATAREAD(I)%BCDATA(5)==PI/4._PDB))
+ IF((TYPGEO.EQ.3).OR.(TYPGEO.EQ.6).OR.(TYPGEO.EQ.6)) THEN
+ IF((ANGLE/=0.0).AND.(ANGLE/=PI/2._PDB)) THEN
+ WRITE(HSMG,100) ANGLE,I,TYPGEO
+ CALL XABORT(HSMG)
+ ENDIF
+ ELSE IF(TYPGEO.EQ.7) THEN
+ IF((ANGLE/=0.0).AND.(ANGLE/=PI/2._PDB).AND.(ANGLE/=PI/4._PDB)) THEN
+ WRITE(HSMG,100) ANGLE,I,TYPGEO
+ CALL XABORT(HSMG)
+ ENDIF
+ ELSE IF((TYPGEO.EQ.8).OR.(TYPGEO.EQ.10)) THEN
+ IF((ANGLE/=0.0).AND.(ANGLE/=PI/3._PDB).AND.(ANGLE/=2._PDB*PI/3._PDB)) THEN
+ WRITE(HSMG,100) ANGLE,I,TYPGEO
+ CALL XABORT(HSMG)
+ ENDIF
+ ELSE IF(TYPGEO.EQ.9) THEN
+ IF((ANGLE/=0.0).AND.(ANGLE/=PI/6._PDB).AND.(ANGLE/=2._PDB*PI/3._PDB).AND. &
+ & (ANGLE/=PI).AND.(ANGLE/=7._PDB*PI/6._PDB).AND.(ANGLE/=5._PDB*PI/3._PDB)) THEN
+ WRITE(HSMG,100) ANGLE,I,TYPGEO
+ CALL XABORT(HSMG)
+ ENDIF
+ ELSE IF(TYPGEO.EQ.11) THEN
+ IF((ANGLE/=0.0).AND.(ANGLE/=PI/3._PDB)) THEN
+ WRITE(HSMG,100) ANGLE,I,TYPGEO
+ CALL XABORT(HSMG)
+ ENDIF
+ ELSE IF(TYPGEO.EQ.12) THEN
+ IF((ANGLE/=0.0).AND.(ANGLE/=PI/6._PDB).AND.(ANGLE/=2._PDB*PI/3._PDB)) THEN
+ WRITE(HSMG,100) ANGLE,I,TYPGEO
+ CALL XABORT(HSMG)
+ ENDIF
+ ENDIF
ENDIF
ENDDO
ENDIF
+ 100 FORMAT(34HSALINP: FORBIDDEN PERIMETER ANGLE=,1P,E13.4,18H RADIANS FOR SIDE=,I3, &
+ & 12H AND TYPGEO=,I3,1H.)
END SUBROUTINE SALINP
!
SUBROUTINE SAL126(RPAR,IPAR)