49
56
57
58
59#include "implicit_f.inc"
60
61
62
63#include "scr17_c.inc"
64#include "com04_c.inc"
65#include "sphcom.inc"
66#include "param_c.inc"
67#include "units_c.inc"
68#include "r2r_c.inc"
69
70
71
72 INTEGER , LAG_NKF, LAG_NHF, ITAB(*), ITABM(*),
73 . ISKN(LISKN,*),IBUFNC(*),IBUFNN(*),IBUFDL(*),IBUFSK(*),
74 . IKINE(*),IKINE1LAG(*),ITAGND(*)
76 INTEGER NOM_OPT(LNOPT1,*)
77 TYPE(UNIT_TYPE_),INTENT(IN) ::UNITAB
78 TYPE(SUBMODEL_DATA), DIMENSION(*),INTENT(IN) :: LSUBMODEL
79
80
81
82 INTEGER I, II, J, ID, NOD, IDDL, ISKW, NUMC, KF, NOSYS, NMP
84 CHARACTER(LEN=NCHARTITLE) :: TITR
85 CHARACTER(LEN=NCHARKEY) :: KEY
86 CHARACTER :: MESS*40
87 DATA mess/'MULTI-POINT CONSTRAINTS '/
88 LOGICAL IS_AVAILABLE
89
90
91
92 INTEGER USR2SYS
93
94 WRITE(iout,1000)
95
96 is_available = .false.
97
99
100 kf = 0
101 nmp = 0
102 DO i=1,nummpc
103 nmp=nmp+1
104
105 IF(nsubdom>0)THEN
107 END IF
108
111 . option_titr = titr,
112 . keyword2 = key)
113
115 CALL fretitl(titr,nom_opt(lnopt1-ltitr+1,i),ltitr)
116
117 CALL hm_get_intv(
'number_of_nodes',numc,is_available,lsubmodel)
118 DO ii=1,numc
123 kf = kf + 1
124 IF (coef==zero) coef = one
125 rbuf(kf) = coef
127 IF (ns10e>0) THEN
128 IF(itagnd(nosys)/=0) THEN
129
131 . msgtype=msgerror,
132 . anmode=aninfo_blind_1,
133 . i1=itab(nosys),
134 . c1='MPC ',
136 . c2='MPC ')
137 ENDIF
138 END IF
139 CALL kinset(512,itab(nosys),ikine(nosys),7,0,ikine1lag(nosys))
140 ibufnn(kf) = nosys
142 ibufdl(kf) = iddl
143 ibufsk(kf) = 0
145 IF(iskw==iskn(4,j+1)) THEN
146 ibufsk(kf) = j+1
147 GO TO 10
148 ENDIF
149 ENDDO
150 CALL ancmsg(msgid=137,anmode=aninfo,msgtype=msgerror,
151 . c1='MPC',
152 . c2='MPC',
153 . i1=
id,i2=iskw,c3=titr)
154 10 CONTINUE
155 IF (iskw==0) THEN
156 lag_nkf = lag_nkf + 1
157 ELSE
158 lag_nkf = lag_nkf + 3
159 ENDIF
160 ENDDO
161 ibufnc(i) = numc
162 WRITE(iout,1101)
id,numc
163 WRITE(iout,1102) (itab(ibufnn(j)),ibufdl(j),iskn(4,ibufsk(j)),rbuf(j),
164 . j=kf-numc+1,kf)
165 ENDDO
166
167 lag_nhf = lag_nhf + nummpc*(nummpc-1)
168 lag_ncf = lag_ncf + nummpc
169
170 RETURN
171 1000 FORMAT(//
172 .' MULTI-POINT CONSTRAINTS '/
173 . ' ---------------------- ')
174 1101 FORMAT( 10x,'MPC ID. . . . . . . . . . . . . .',i10
175 . /10x,'NUMBER OF POINTS. . . . . . . . .',i10
176 . /10x,'CONSTRAINT LIST :'
177 . /5x, ' NODE DDL SKEW COEFFICIENT'/)
178 1102 FORMAT( 3i10,1pg20.13/)
179
180 RETURN
subroutine ifrontplus(n, p)
subroutine hm_get_float_array_index(name, rval, index, is_available, lsubmodel, unitab)
subroutine hm_get_int_array_index(name, ival, index, is_available, lsubmodel)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_start(entity_type)
subroutine kinset(ik, node, ikine, idir, isk, ikine1)
integer, parameter nchartitle
integer, parameter ncharkey
integer, dimension(:), allocatable tagmpc
subroutine hm_sz_r2r(tag, val, lsubmodel)
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)
integer function usr2sys(iu, itabm1, mess, id)