OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
ecran2.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| ecran2 ../starter/source/initial_conditions/detonation/ecran2.f
25!||--- called by ------------------------------------------------------
26!|| m5in2 ../starter/source/initial_conditions/detonation/m5in2.F
27!|| m5in2t ../starter/source/initial_conditions/detonation/m5in2t.F
28!||--- calls -----------------------------------------------------
29!|| iombr ../starter/source/initial_conditions/detonation/iombr.F
30!||--- uses -----------------------------------------------------
31!|| detonators_mod ../starter/share/modules1/detonators_mod.F
32!||====================================================================
33 SUBROUTINE ecran2(DETONATOR_WAVE_SHAPER,X,VDET)
34C-----------------------------------------------
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C D u m m y A r g u m e n t s
42C-----------------------------------------------
43 my_real x(3,numnod)
44 my_real,INTENT(IN)::vdet
45 TYPE(detonator_wave_shaper_struct_),TARGET ::DETONATOR_WAVE_SHAPER
46C-----------------------------------------------
47C C o m m o n B l o c k s
48C-----------------------------------------------
49#include "scr11_c.inc"
50#include "com04_c.inc"
51C-----------------------------------------------
52C L o c a l V a r i a b l e s
53C-----------------------------------------------
54 INTEGER,POINTER,DIMENSION(:) :: IECR, IORDR, IFLG
55 my_real,POINTER,DIMENSION(:) :: dtime
56 INTEGER J, I, II, NPE
57 my_real ddmx, dtos
58C-----------------------------------------------
59C E x t e r n a l F u n c t i o n s
60C-----------------------------------------------
61 INTEGER,EXTERNAL :: IOMBR
62C-----------------------------------------------
63
64 npe=detonator_wave_shaper%NUMNOD
65 iecr => detonator_wave_shaper%NODES(1:npe)
66 iordr => detonator_wave_shaper%IORDR(1:npe)
67 dtime => detonator_wave_shaper%TIME(1:npe)
68
69C---------------------------------------
70C COMPUTING DETONATION:TIME FOR ONE ELEMENT (CENTROID)
71C---------------------------------------
72C 1) DETONATION ORIGIN: USER DETONATION POINT
73C check if the target can be directly lightened from detonation origin.
74C yes if no crossing with the screen (IOMBR returns 0)
75C no otherwise (IOMBR return 1)
76C---------------------------------------
77 ddmx=ep20
78 IF(iombr(detonator_wave_shaper,x,iecr,ddmx,vdet) == 0)RETURN !Vdet is optional velocity from origin (default is material velocity VDTO)
79
80C-----------------------------------------
81C 2) DETONATION ORIGIN:EACH POINT OF THE SCREEN PATH
82C-----------------------------------------
83 dtos=ep20
84
85 npe=detonator_wave_shaper%NUMNOD
86 DO j=1,npe
87 i=iordr(j)
88 ii=iecr(i)
89 yd=x(2,ii)
90 zd=x(3,ii)
91 dto0=dtime(i)
92 IF(iombr(detonator_wave_shaper,x,iecr,ddmx,vdto) == 0)THEN
93 dtos= min(dtos,dto) !keep minimum value (first arrival time)
94 ENDIF
95 END DO !J=1,NPE
96
97 dto=dtos
98
99 RETURN
100 END
#define my_real
Definition cppsort.cpp:32
subroutine ecran2(detonator_wave_shaper, x, vdet)
Definition ecran2.F:34
#define min(a, b)
Definition macros.h:20
program starter
Definition starter.F:39