summaryrefslogtreecommitdiff
path: root/Dragon/src/SYB7TW.f
diff options
context:
space:
mode:
authorstainer_t <thomas.stainer@oecd-nea.org>2025-09-08 13:48:49 +0200
committerstainer_t <thomas.stainer@oecd-nea.org>2025-09-08 13:48:49 +0200
commit7dfcc480ba1e19bd3232349fc733caef94034292 (patch)
tree03ee104eb8846d5cc1a981d267687a729185d3f3 /Dragon/src/SYB7TW.f
Initial commit from Polytechnique Montreal
Diffstat (limited to 'Dragon/src/SYB7TW.f')
-rw-r--r--Dragon/src/SYB7TW.f111
1 files changed, 111 insertions, 0 deletions
diff --git a/Dragon/src/SYB7TW.f b/Dragon/src/SYB7TW.f
new file mode 100644
index 0000000..5333169
--- /dev/null
+++ b/Dragon/src/SYB7TW.f
@@ -0,0 +1,111 @@
+*DECK SYB7TW
+ SUBROUTINE SYB7TW (NRD,MRE,XICOTE,IRMIN,DELTCW,DELTCS,ORIPH6,
+ & ORIPHI,COSPH6,SINPHI,ISW2,LGTRAW,DELTAW)
+*
+*-----------------------------------------------------------------------
+*
+*Purpose:
+* Compute the intersection lenghts of a track in a sectorized hexagonal
+* cell, following a singular point at west.
+*
+*Copyright:
+* Copyright (C) 2002 Ecole Polytechnique de Montreal
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License as published by the Free Software Foundation; either
+* version 2.1 of the License, or (at your option) any later version
+*
+*Author(s): A. Hebert
+*
+*Parameters: input
+* NRD one plus the number of tubes in the cell.
+* MRE first radius intersection the side or first region in contact
+* with the external side.
+* XICOTE intersections with the side.
+* IRMIN region index in contact with the external side.
+* DELTCW distance from the south-west corner.
+* DELTCS distance from the south-east corner.
+* ORIPH6 distance at the middle of south-west side.
+* ORIPHI distance at the middle of south side.
+* COSPH6 cosinus ($\\pi$/6-Phi).
+* SINPHI sinus (Phi).
+*
+*Parameters: input/output
+* ISW2 half side on west (2-3 followed by 4-5 or SW (N-S) followed by
+* south (W-E)).
+*
+*Parameters: output
+* LGTRAW removing/addition flag of the next intersection. The formula
+* corresponding to case ISW2=5 is complex. In this case, the
+* tangent can pass on both sides.
+* DELTAW distance of the next track.
+*
+*-----------------------------------------------------------------------
+*
+*----
+* SUBROUTINE ARGUMENTS
+*----
+ INTEGER NRD,MRE,IRMIN,ISW2
+ REAL XICOTE(NRD-1),DELTCW,DELTCS,ORIPH6,ORIPHI,COSPH6,SINPHI,
+ & DELTAW
+ LOGICAL LGTRAW
+*
+** Le cas le plus courant est : Secteur Suivant (Sud)
+** Le cas general est nettement plus complexe :
+*
+* NE PAS CONFONDRE
+* Intervalle et Limite
+*
+* Le Suivant depasse le Milieu du Cote Sud-West
+ IF (ISW2 .EQ. 2) THEN
+ IF (IRMIN .LE. MRE) THEN
+ ISW2 = 3
+ ENDIF
+ ENDIF
+*
+* Le Suivant depasse le Milieu du Cote Sud
+ IF (ISW2 .EQ. 4) THEN
+ IF (IRMIN .LE. MRE) THEN
+ ISW2 = 5
+ ENDIF
+ ENDIF
+*
+* Limite suivante Sud-West Nord (Haut)
+ IF (ISW2 .EQ. 2) THEN
+ LGTRAW = .TRUE.
+ DELTAW = ORIPH6 - XICOTE(IRMIN-1) * COSPH6
+*
+* Limite suivante de Sud-West Sud (Bas)
+ ELSEIF (ISW2 .EQ. 3) THEN
+*
+ LGTRAW = IRMIN .EQ. NRD
+*
+* Limite suivante (secteur) coin SSW
+ IF (LGTRAW) THEN
+ DELTAW = DELTCW
+*
+* Limite suivante egalement Sud-West Sud (Bas)
+ ELSE
+ DELTAW = ORIPH6 + XICOTE(IRMIN) * COSPH6
+ ENDIF
+*
+* Limite suivante de Sud West (Horizontal Gauche)
+ ELSEIF (ISW2 .EQ. 4) THEN
+ LGTRAW = .TRUE.
+ DELTAW = ORIPHI - XICOTE(IRMIN-1) * SINPHI
+*
+* Limite suivante de Sud West (Horizontal Gauche)
+ ELSE
+*
+* Limite suivante (secteur) coin Extreme SSE
+ IF (IRMIN .GE. NRD) THEN
+ LGTRAW = .FALSE.
+ DELTAW = DELTCS
+ ELSE
+ LGTRAW = .TRUE.
+ DELTAW = ORIPHI + XICOTE(IRMIN) * SINPHI
+ ENDIF
+ ENDIF
+*
+ RETURN
+ END