OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_perturb.F File Reference
#include "implicit_f.inc"
#include "com04_c.inc"
#include "scr17_c.inc"
#include "param_c.inc"
#include "sphcom.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_perturb (mat_param, ipart, rnoise, ipartc, ipartg, ipartsp, igrpart, ipm, iparts, perturb, qp_iperturb, qp_rperturb, lsubmodel, unitab)

Function/Subroutine Documentation

◆ hm_read_perturb()

subroutine hm_read_perturb ( type (matparam_struct_), dimension(nummat), intent(inout) mat_param,
integer, dimension(lipart1,*) ipart,
rnoise,
integer, dimension(*) ipartc,
integer, dimension(*) ipartg,
integer, dimension(*) ipartsp,
type (group_), dimension(ngrpart) igrpart,
integer, dimension(npropmi,*) ipm,
integer, dimension(*) iparts,
integer, dimension(nperturb) perturb,
integer, dimension(nperturb,6) qp_iperturb,
qp_rperturb,
type(submodel_data), dimension(*) lsubmodel,
type (unit_type_), intent(in) unitab )

Definition at line 38 of file hm_read_perturb.F.

42C-----------------------------------------------
43C M o d u l e s
44C-----------------------------------------------
45 USE message_mod
46 USE groupdef_mod
47 USE unitab_mod
48 USE submodel_mod
50 USE mat_elem_mod
51C-----------------------------------------------
52C I m p l i c i t T y p e s
53C-----------------------------------------------
54#include "implicit_f.inc"
55C-----------------------------------------------
56C C o m m o n B l o c k s
57C-----------------------------------------------
58#include "com04_c.inc"
59#include "scr17_c.inc"
60#include "param_c.inc"
61#include "sphcom.inc"
62C-----------------------------------------------
63C D u m m y A r g u m e n t s
64C-----------------------------------------------
65 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
67 . rnoise(nperturb,numelc+numeltg+numels+numsph),
68 . qp_rperturb(nperturb,4)
69c . RNOISE(*)
70 INTEGER IPART(LIPART1,*),IPARTC(*),IPARTSP(*),IPARTG(*),IPARTS(*),
71 . IPM(NPROPMI,*),PERTURB(NPERTURB),QP_IPERTURB(NPERTURB,6)
72 TYPE(SUBMODEL_DATA) LSUBMODEL(*)
73 TYPE (MATPARAM_STRUCT_) ,DIMENSION(NUMMAT) ,INTENT(INOUT) :: MAT_PARAM
74C-----------------------------------------------
75 TYPE (GROUP_) , DIMENSION(NGRPART) :: IGRPART
76C-----------------------------------------------
77C L o c a l V a r i a b l e s
78C-----------------------------------------------
79 INTEGER ITYP,IDPERTURB(NPERTURB),
80 . NPART_SHELL,NPART_SOLID,OFFS
81 INTEGER, DIMENSION(:), ALLOCATABLE :: INDEX,INDEX_ITYP
82 my_real bid
83 CHARACTER MESS*40
84C-----------------------------------------------
85C E x t e r n a l F u n c t i o n s
86C-----------------------------------------------
87 DATA mess/'PERTURBATION DEFINITION '/
88C=======================================================================
89 ! Initialization and allocation of tables
90 ityp = 0
91 offs = 0
92 bid = zero
93 idperturb(1:nperturb) = 0
94c
95 ALLOCATE(index(numelc+numeltg+numels+numsph))
96 ALLOCATE(index_ityp(numelc+numeltg+numels+numsph))
97 index(:) = 0
98 index_ityp(:) = 0
99c
100c Counting PERTURB type
101 CALL hm_option_count('/PERTURB/PART/SHELL',npart_shell)
102 CALL hm_option_count('/PERTURB/PART/SOLID',npart_solid)
103c
104c /PERTURB/PART/SHELL
105c
106 IF (npart_shell > 0) THEN
107 ! Reading routine
109 . ipart ,rnoise ,ipartc ,ipartg ,igrpart ,
110 . ipm ,perturb ,lsubmodel,unitab ,idperturb ,
111 . index ,index_ityp,npart_shell,offs,qp_iperturb,
112 . qp_rperturb)
113 ! Computing the offset
114 offs = offs + npart_shell
115 ENDIF
116c
117c /PERTURB/PART/SOLID
118c
119 IF (npart_solid > 0) THEN
120 ! Reading routine
122 . ipart ,rnoise ,igrpart ,ipm ,iparts ,
123 . perturb,lsubmodel ,unitab ,idperturb,index ,
124 . index_ityp,npart_solid ,offs ,qp_iperturb,
125 . qp_rperturb)
126 ! Computing the offset
127 offs = offs + npart_solid
128 ENDIF
129c
130c /PERTURB/FAIL/BIQUAD
131c
132 CALL hm_read_perturb_fail(mat_param,
133 . ipart ,rnoise ,ipartc ,ipartg ,ipartsp ,
134 . igrpart ,iparts ,perturb ,idperturb,
135 . index ,index_ityp,npart_shell,offs ,qp_iperturb,
136 . qp_rperturb,lsubmodel,unitab)
137c
138c-------------------------------------------------------------
139 ! Checking for doubled IDs
140 CALL udouble(idperturb,1,nperturb,mess,0,bid)
141c-------------------------------------------------------------
142 IF (ALLOCATED(index)) DEALLOCATE(index)
143 IF (ALLOCATED(index_ityp)) DEALLOCATE(index_ityp)
144c-----------
145 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine hm_option_count(entity_type, hm_option_number)
subroutine hm_read_perturb_fail(mat_param, ipart, rnoise, ipartc, ipartg, ipartsp, igrpart, iparts, perturb, idperturb, index, index_ityp, npart_shell, offs, qp_iperturb, qp_rperturb, lsubmodel, unitab)
subroutine hm_read_perturb_part_shell(ipart, rnoise, ipartc, ipartg, igrpart, ipm, perturb, lsubmodel, unitab, idperturb, index, index_ityp, npart_shell, offs, qp_iperturb, qp_rperturb)
subroutine hm_read_perturb_part_solid(ipart, rnoise, igrpart, ipm, iparts, perturb, lsubmodel, unitab, idperturb, index, index_ityp, npart_solid, offs, qp_iperturb, qp_rperturb)
subroutine udouble(list, ilist, nlist, mess, ir, rlist)
Definition sysfus.F:573