|
[Fortran] 纯文本查看 复制代码 002 | dimension fixed ( 160 ) , equat ( 60 ) , vecrv ( 160 ) , gload ( 60 ) , gstif ( 1830 ) , estif ( 16 , 16 ) , & |
003 | iffix ( 160 ) , nacva ( 60 ) , locel ( 16 ) , ndest ( 16 ) |
004 | common / Contro / npoin , nelem , nnode , ndofn , ndime , nstre , ntype , ngaus , nprop , nmats , nvfix , nevab , & |
005 | icase , ncase , itemp , iprob , nprob |
006 | common / Lgdata / coord ( 80 , 2 ) , props ( 10 , 5 ) , presc ( 40 , 2 ) , asdis ( 160 ) , eload ( 25 , 16 ) , strin ( 3 , 225 ) , & |
007 | nofix ( 40 ) , ifpre ( 40 , 2 ) , lnods ( 25 , 8 ) , matno ( 25 ) |
008 | common / Work / elcod ( 2 , 8 ) , shape ( 8 ) , deriv ( 2 , 8 ) , dmatx ( 3 , 3 ) , cartd ( 2 , 8 ) , dbmat ( 3 , 16 ) , bmatx ( 3 , 16 ) , & |
009 | smatx ( 3 , 16 , 9 ) , posgp ( 3 ) , weigp ( 3 ) , gpcod ( 2 , 9 ) , neror ( 24 ) |
015 | nfunc ( i , j ) = ( j * j - j ) / 2 + i |
029 | iffix ( ngash ) = ifpre ( ivfix , idofn ) |
030 | 110 fixed ( ngash ) = presc ( ivfix , jdofn ) |
039 | if ( lnods ( ielem , inode ) .ne. ipoin ) goto 120 |
044 | if ( klast .ne. 0 ) lnods ( klast , nlast ) = - ipoin |
075 | nposi = ( inode -1 ) * ndofn + idofn |
076 | locno = lnods ( ielem , inode ) |
077 | if ( locno .gt. 0 ) locel ( nposi ) = ( locno -1 ) * ndofn - idofn |
078 | if ( locno .lt. 0 ) locel ( nposi ) = ( locno +1 ) * ndofn - idofn |
084 | nikno = iabs ( locel ( ievab ) ) |
087 | if ( nikno .ne. nacva ( ifron ) ) goto 180 |
092 | if ( kexis .ne. 0 ) goto 210 |
098 | if ( nacva ( ifron ) .ne. 0 ) goto 190 |
107 | 200 if ( nedst ( kevab ) .gt. nfron ) nfron = ndest ( kevab ) |
114 | gload ( idest ) = gload ( idest ) + eload ( ielem , ievab ) |
119 | if ( icase .gt. 1 ) goto 230 |
122 | ngash = nfunc ( idest , jdest ) |
123 | ngish = nfunc ( jdest , idest ) |
124 | if ( jdest .ge. idest ) gstif ( ngash ) = gstif ( ngash ) + estif ( ievab , jevab ) |
125 | if ( jdest .lt. idest ) gstif ( ngish ) = gstif ( ngish ) + estif ( ievab , jevab ) |
135 | if ( nikno .le. 0 ) goto 370 |
141 | if ( nacva ( ifron ) .ne. nikno ) goto 350 |
146 | if ( icase .gt. 1 ) goto 260 |
148 | if ( ifron .lt. jfron ) nloca = nfunc ( ifron , jfron ) |
149 | if ( ifron .ge. jfron ) nloca = nfunc ( jfron , ifron ) |
150 | equat ( jfron ) = gstif ( nloca ) |
163 | if ( icase .gt. 1 ) goto 270 |
164 | write ( 4 , * ) equat , eqrhs , ifron , nikno |
167 | read ( 4 , * ) wquat , dummy , idumm , nikno |
178 | if ( iffix ( nikno ) .eq. 0 ) goto 300 |
183 | 290 gload ( jfron ) = gload ( jfron ) - fixed ( nikno ) * equat ( jfron ) |
189 | 300 do 330 jfron = 1 , nfron |
190 | gload ( jfron ) = gload ( jfron ) - equat ( jfron ) * eqrhs / pivot |
194 | if ( icase .gt. 1 ) goto 320 |
195 | if ( equat ( jfron ) .eq. 0.0 ) goto 330 |
199 | 310 gstif ( ngash ) = gstif ( ngash ) - equat ( jfron ) * equat ( lfron ) / pivot |
202 | 340 equat ( ifron ) = pivot |
214 | 360 if ( nacva ( nfron ) .ne. 0 ) goto 370 |
216 | if ( nfron .gt. 0 ) goto 360 |
228 | read ( 4 , * ) equat , eqrhs , ifron , nikno |
230 | if ( icase .eq. 1 ) goto 390 |
240 | if ( iffix ( nikno ) .eq. 1 ) vecrv ( ifron ) = fixed ( nikno ) |
241 | if ( iffix ( nikno ) .eq. 0 ) equat ( ifron ) = 0.0 |
246 | 400 eqrhs = eqrhs - vecrv ( jfron ) * equat ( jfron ) |
250 | if ( iffix ( nikno ) .eq. 0 ) vecrv ( ifron ) = eqrhs / pivot |
251 | if ( iffix ( nikno ) .eq. 1 ) fixed ( nikno ) = - eqrhs |
252 | asdis ( nikno ) = vecrv ( ifron ) |
255 | 900 format ( 1 ho , 5 x , 13 hDisplacements ) |
256 | if ( ndofn .ne. 2 ) goto 430 |
257 | if ( ndime .ne. 1 ) goto 420 |
259 | 905 format ( 1 ho , 5 x , 4 hnode , 6 x , 5 hDisp. , 7 x , 8 hRotation ) |
262 | 910 format ( 1 ho , 5 x , 4 hNode , 5 x , 7 hX - disp. , 7 x , 7 hY - disp. ) |
264 | 915 format ( 1 ho , 5 x , 4 hNode , 5 x , 7 hX - disp. , 7 x , 7 hY - disp. ) |
269 | 450 write ( 12 , 920 ) ipoin , ( asdis ( igash ) , igash = ngish , ngash ) |
270 | 920 format ( i 10 , 3 e 14.6 ) |
272 | 925 format ( 1 ho , 5 x , 9 hReactions ) |
273 | if ( ndofn .ne. 2 ) goto 470 |
274 | if ( ndime .ne. 1 ) goto 460 |
276 | 930 format ( 1 ho , 5 x , 4 hNode , 6 x , 5 hForce , 8 x , 6 hMomnet ) |
279 | 935 format ( 1 ho , 5 x , 4 hNode , 5 x , 7 hX - force , 7 x , 7 hY - froce ) |
282 | 940 format ( 1 ho , 5 x , 4 hNode , 6 x , 5 hForce , 6 x , 9 hXz - moment , 5 x , 9 hYz - moment ) |
285 | nloca = ( ipoin -1 ) * ndofn |
288 | if ( iffix ( ngush ) .gt. 0 ) goto 500 |
293 | write ( 12 , 945 ) ipoin , ( fixed ( igash ) , igash = ngish , ngash ) |
295 | 945 format ( i 10 , 3 e 14.6 ) |
302 | 520 lnods ( ielem , inode ) = iabs ( lnods ( ielem , inode ) ) |
|
|