OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
freupwm.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!|| freupwm ../engine/source/input/freupwm.F
25!||--- called by ------------------------------------------------------
26!|| freform ../engine/source/input/freform.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../engine/source/output/message/message.F
29!|| arret ../engine/source/system/arret.F
30!|| get_keys_id ../engine/source/input/freoutp.F
31!|| wriusc2 ../engine/source/input/wriusc2.F
32!||--- uses -----------------------------------------------------
33!|| ale_mod ../common_source/modules/ale/ale_mod.F
34!|| message_mod ../engine/share/message_module/message_mod.F
35!|| names_and_titles_mod ../common_source/modules/names_and_titles_mod.F
36!||====================================================================
37 SUBROUTINE freupwm(IKAD,KEY0,KUPWM)
38C-----------------------------------------------
39C D e s c r i p t i o n
40C-----------------------------------------------
41C This subroutine is reading /UPWM/SUPG card.
42C parameter is CUPM=1.0 by default.
43C CARD IS OBSOLETE
44C In case of /ALE/SUPG/OFF is used then this
45C card has no influence and a warning is output
46C-----------------------------------------------
47C M o d u l e s
48C-----------------------------------------------
49 USE message_mod
50 USE ale_mod
52C-----------------------------------------------
53C I m p l i c i t T y p e s
54C-----------------------------------------------
55#include "implicit_f.inc"
56C-----------------------------------------------
57C D u m m y A r g u m e n t s
58C-----------------------------------------------
59 INTEGER IKAD(0:*),KUPWM
60 CHARACTER KEY0(*)*5
61C-----------------------------------------------
62C C o m m o n B l o c k s
63C-----------------------------------------------
64#include "units_c.inc"
65C-----------------------------------------------
66C L o c a l V a r i a b l e s
67C-----------------------------------------------
68 INTEGER IKEY,ID
69 CHARACTER(LEN=NCHARLINE100):: TMPLINE
70 CHARACTER KEY2*5, KEY3*5,KEY4*5
71C
72 ikey=kupwm
73 IF(ikad(ikey)/=ikad(ikey+1))THEN
74 READ(iusc1,rec=ikad(ikey),fmt='(A)',err=9990)tmpline
75 CALL get_keys_id(tmpline, key2, key3,key4, id)
76 IF(key3(1:3)/='OFF' .AND. key3(1:2)/='ON')THEN
77 READ(iusc1,rec=ikad(ikey),fmt='(7X,A4)',err=9990)key2
78 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
79 READ(iusc2,*,err=9990)ale%UPWIND%CUPWM
80 ELSEIF(key3(1:3)=='OFF')THEN
81 ! /UPWM/SUPG/OFF (obsolete, replaced by /ALE/SUPG/OFF)
82 ale%UPWIND%UPWM = 0
83 ale%UPWIND%UPW_UPDATE = 0
84 ale%UPWIND%I_SUPG_ON_OFF = 2
85 RETURN
86 ENDIF
87
88 IF(ale%UPWIND%CUPWM==0.)ale%UPWIND%CUPWM=1.
89 IF(key2(1:3)=='STD') THEN
90 ale%UPWIND%UPWM=1
91 ELSEIF(key2(1:2)=='TG') THEN
92 ale%UPWIND%UPWM=2
93 ELSEIF(key2(1:4)=='SUPG')THEN
94 ale%UPWIND%I_SUPG_ON_OFF = 1
95 ale%UPWIND%UPWM=3
96 CALL get_keys_id(tmpline, key2, key3,key4, id)
97 IF(ale%UPWIND%I_SUPG_ON_OFF==2)THEN
98 CALL ancmsg(msgid=034,anmode=aninfo)
99 ale%UPWIND%UPWM=0
100 ENDIF
101 ELSE
102 GOTO 9990
103 ENDIF
104 ELSE
105 IF(ale%UPWIND%I_SUPG_ON_OFF /= 2)THEN
106 ale%UPWIND%UPWM=3
107 ale%UPWIND%CUPWM=1.
108 ELSE
109 ale%UPWIND%UPWM=0
110 ENDIF
111 ENDIF
112C
113 RETURN
114C
115 9990 CONTINUE
116 CALL ancmsg(msgid=73,anmode=aninfo,c1=key0(ikey))
117 CALL arret(0)
118 END
subroutine get_keys_id(cart, key2, key3, key4, id)
Definition freoutp.F:582
subroutine freupwm(ikad, key0, kupwm)
Definition freupwm.F:38
type(ale_) ale
Definition ale_mod.F:249
integer, parameter ncharline100
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:889
subroutine arret(nn)
Definition arret.F:87
subroutine wriusc2(irec, nbc, key0)
Definition wriusc2.F:60