home *** CD-ROM | disk | FTP | other *** search
- SUBROUTINE PRTERR(I) MOD05167
- COMMON/UNIT/IN,IO MOD05168
- COMMON/FRECNT/LINE(80) MOD05169
- IF(I.NE.0)GO TO 300 MOD05170
- WRITE(IO,303)LINE MOD05171
- 303 FORMAT(' ++ SYNTAX ERROR ON BELOW LINE +++ ',/,2X,80A1) MOD05172
- STOP MOD05173
- 300 GO TO (1,2,3,4,5,6,7,8,9,10),I MOD05174
- 1 WRITE(IO,101) MOD05175
- 101 FORMAT(' ++ F ++ TOTAL NUMBER OF NODES OR ELEMENTS ARE ZERO' MOD05176
- 1,/,' CHECK YOUR INPUT FOR TOTAL NUMBER OF NODES OR ELEMENTS')MOD05177
- STOP MOD05178
- 2 WRITE(IO,102) MOD05179
- 102 FORMAT(' ++ F ++ CORNER NODE SHOULD NOT BE ZERO ,CHECK MOD05180
- 1YOUR INPUT ') MOD05181
- STOP MOD05182
- 3 WRITE(IO,103) MOD05183
- 103 FORMAT(' ++ F ++ SURFACE GENERATION WILL BE TERMINATED MOD05184
- 1BECAUSE ;' MOD05185
- 2,/,' EITHER SOME OF THE SUPPLIED CORNER NODE NUMBER MOD05186
- 3ARE WRONG ' MOD05187
- 4,/,' OR THE INCREMENT ARE WRONG , CHECK YOUR INPUT ') MOD05188
- STOP MOD05189
- 4 WRITE(IO,104) MOD05190
- 104 FORMAT(' ++ F +++ NEGATIVE NODE NUMBER SPECIFIED FOR VOLUME MOD05191
- 1GENERATION ' MOD05192
- 2,/,' CHECK YOUR INPUT ') MOD05193
- STOP MOD05194
- 5 WRITE(IO,105) MOD05195
- 105 FORMAT(' ++ F ++ VOLUME GENERATION IS BEING TERMINATED ,' MOD05196
- 1,/,' CHECK ALL CORNER NODE NUMBERS ') MOD05197
- STOP MOD05198
- 6 WRITE(IO,106) MOD05199
- 106 FORMAT(' ++ F ++ MESH GENERATION IS NOT AVILABEL ') MOD05200
- STOP MOD05201
- 7 WRITE(IO,107) MOD05202
- 107 FORMAT(' ++ F ++ TOTAL GENRATED NODES ARE EXCEEDED THAN ::' MOD05203
- 1,/,' WHAT YOU SPECIFY IN YOUR INPUT') MOD05204
- STOP MOD05205
- 8 WRITE(IO,108) MOD05206
- 108 FORMAT(' ++ F ++ INSUFFICIENCE STORAGE ...' MOD05207
- 1,/,11X,' INCREASE THE SIZE OF ARRARY A IN COMMON A ') MOD05208
- STOP MOD05209
- 9 WRITE(IO,109) MOD05210
- 109 FORMAT(' ++ F ++ TOTAL GENERATED ELEMENTS ARE EXCEEDED THAN::' MOD05211
- 1,/,11X,' WHAT YOU SPECIFY IN YOUR INPUT ') MOD05212
- STOP MOD05213
- 10 WRITE(IO,110)LINE MOD05214
- 110 FORMAT(' ++ F ++ ELEMENT NUMBER IS LESS OR EQUAL ZERO ON LINE :' MOD05215
- 1,/,2X,80A1) MOD05216
- STOP MOD05217
- END MOD05218
- SUBROUTINE FCOPY1 MOD02474
- COMMON/ETITLE/TITLE(20) MOD02475
- COMMON/TOTAL/MAXELM,MAXNOD,MAXNDM MOD02476
- COMMON/UNIT/IN,IO,IP,INP,INPF,ITER,IS6 MOD02477
- DIMENSION IB(6),IC(8),IA(20) MOD02478
- DATA BLANK/1H / MOD02479
- REWIND 51 MOD02480
- REWIND IS6 MOD02481
- WRITE(IS6,2)TITLE MOD02482
- WRITE(IS6,4)MAXNOD,MAXELM,MAXNDM MOD02483
- 2 FORMAT(20A4) MOD02484
- 4 FORMAT(3I5) MOD02485
- DO 10 J=1,MAXNOD MOD02486
- READ(51)(IB(K),K=1,6),N,X,Y,Z MOD02487
- WRITE(IS6,11)N,(IB(K),K=1,6),X,Y,Z MOD02488
- 11 FORMAT(7I5,3F10.3) MOD02489
- 10 CONTINUE MOD02490
- 12 FORMAT(A4) MOD02491
- DO 20 J=1,MAXELM MOD02492
- READ(51)I,MT,(IC(K),K=1,8),N1,N2,N3,N4 MOD02493
- WRITE(IS6,21)I,MT,(IC(K),K=1,8),N1,N2,N3,N4 MOD02494
- 21 FORMAT(14I5) MOD02495
- IF(MT.EQ.10.OR.MT.EQ.16)GO TO 25 MOD02496
- GO TO 20 MOD02497
- 25 READ(51)(IA(K),K=1,12) MOD02498
- WRITE(IS6,26)(IA(K),K=1,12) MOD02499
- 26 FORMAT(12I5) MOD02500
- 20 CONTINUE MOD02501
- RETURN MOD02502
- END MOD02503
- SUBROUTINE PRCOOR(LIMIT,NSTOR,X,Y,Z,IBON,ISENEW) MOD04819
- INTEGER BLANK MOD04820
- REAL*8 X1,Y1,Z1 MOD04821
- COMMON/UNIT/IN,IO,IPL,INP,INPF MOD04822
- COMMON/SEQUEN/ISEQU,ISTART,INCRE MOD04823
- COMMON/SAP6/ISAP6 MOD04824
- COMMON/TOTAL/MAXELM,MAXNOD,MAXNDM MOD04825
- COMMON/ETITLE/TITLE(20) MOD04826
- DIMENSION IBON(LIMIT,6),NSTOR(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT) MOD04827
- 1,ISENEW(LIMIT) MOD04828
- DATA BLANK/1H / MOD04829
- LIMIT1=LIMIT MOD04830
- IZERO=0 MOD04831
- IUSA=0 MOD04832
- KNN=0 MOD04833
- MITWO=-2 MOD04834
- IF(ISEQU.EQ.0)GO TO 5 MOD04835
- K=1 MOD04836
- J=0 MOD04837
- DO 3 I=1,LIMIT MOD04838
- IF(NSTOR(I).LE.0)GO TO 3 MOD04839
- KO=NSTOR(I) MOD04840
- NSTOR(I)=0 MOD04841
- KN=ISTART+J MOD04842
- NSTOR(K)=KN MOD04843
- X(K)=X(I) MOD04844
- Y(K)=Y(I) MOD04845
- Z(K)=Z(I) MOD04846
- ISENEW(KO)=KN MOD04847
- K=K+1 MOD04848
- J=J+INCRE MOD04849
- DO 2 MM=1,6 MOD04850
- IBON(KN,MM)=IBON(KO,MM) MOD04851
- IF(KO.EQ.KN)GO TO 2 MOD04852
- IBON(KO,MM)=0 MOD04853
- 2 CONTINUE MOD04854
- 3 CONTINUE MOD04855
- 5 WRITE(IPL,10)TITLE MOD04856
- WRITE(IPL,11)MITWO MOD04857
- 10 FORMAT(20A4) MOD04858
- WRITE(IPL,11)LIMIT1 MOD04859
- 11 FORMAT(5X,I5) MOD04860
- I=0 MOD04861
- ICO=0 MOD04862
- 20 I=I+1 MOD04863
- IF(I.GT.LIMIT)GO TO 100 MOD04864
- IF(NSTOR(I).LE.0)GO TO 20 MOD04865
- ICO=ICO+1 MOD04866
- J=NSTOR(I) MOD04867
- WRITE(IPL,11)J MOD04868
- WRITE(IPL,12)X(J),Y(J),Z(J) MOD04869
- WRITE(15,15)J,(IBON(J,KK1),KK1=1,6) MOD04870
- 15 FORMAT(7I5) MOD04871
- 12 FORMAT(3E12.5) MOD04872
- X1=X(J) MOD04873
- Y1=Y(J) MOD04874
- Z1=Z(J) MOD04875
- IF(ISAP6.NE.1)GO TO 25 MOD04876
- WRITE(51)(IBON(J,MM),MM=1,6),J,X(J),Y(J),Z(J) MOD04877
- GO TO 20 MOD04878
- 25 WRITE(INP)BLANK,J,BLANK,(IBON(J,MM),MM=1,6),X1,Y1,Z1,KNN MOD04879
- WRITE(INPF,30)BLANK,J,BLANK,(IBON(J,MM),MM=1,6),X(J),Y(J),Z(J),KNNMOD04880
- 30 FORMAT(A1,I4,A1,I4,5I5,3F10.3,I5) MOD04881
- GO TO 20 MOD04882
- 100 IF(ICO.EQ.LIMIT1)GO TO 110 MOD04883
- WRITE(IO,200)ICO MOD04884
- 200 FORMAT(' ++ W ++ TOTAL NODES GENERATED ARE =',I5) MOD04885
- REWIND IPL MOD04886
- REWIND INP MOD04887
- REWIND INPF MOD04888
- REWIND 15 MOD04889
- REWIND 51 MOD04890
- LIMIT1=ICO MOD04891
- IUSA=1 MOD04892
- GO TO 5 MOD04893
- 110 WRITE(IPL,11)IZERO MOD04894
- 101 FORMAT(A1) MOD04895
- MAXNOD=LIMIT1 MOD04896
- IF(IUSA.EQ.1)RETURN MOD04897
- WRITE(IO,300)LIMIT1 MOD04898
- 300 FORMAT(' . . . TOTAL NODES GENERATED ARE = ',I5) MOD04899
- RETURN MOD04900
- END MOD04901
- SUBROUTINE PRELEM(LIMIT,NUMEL,MTYP,IPS,MATRI,THICK,BETA,ICON,IELD MOD04986
- 1,IELX,NTEMP,DENSIT,AREA,CDIS,CVEL,GAUSS1,ISENEW) MOD04987
- REAL*8 XBETA,XTHIC MOD04988
- COMMON/UNIT/IN,IO,IPL,INP,INPF MOD04989
- COMMON/ELARRY/NELAR(4,20) MOD04990
- COMMON/SEQUEN/ISEQU MOD04991
- COMMON/SAP6/ISAP6 MOD04992
- COMMON/EGROUP/ITYPEL,NONTYP MOD04993
- COMMON/TOTAL/MAXELM,ID001,ID002,MAXGRO MOD04994
- DIMENSION MTYP(NUMEL),IPS(NUMEL),MATRI(NUMEL),THICK(NUMEL) MOD04995
- 1,BETA(NUMEL),ICON(NUMEL,20),ICC(20),IELD(NUMEL),IELX(NUMEL) MOD04996
- 2,NTEMP(NUMEL),DENSIT(NUMEL),AREA(NUMEL),CDIS(NUMEL) MOD04997
- 3,CVEL(NUMEL),GAUSS1(LIMIT,2),ISENEW(LIMIT) MOD04998
- &,KDUM(9) MOD04999
- DATA BLANK/1H / MOD05000
- LOMGRO=MAXGRO+1 MOD05001
- IF(ISEQU.EQ.0)GO TO 5 MOD05002
- DO 3 I=1,NUMEL MOD05003
- IF(MTYP(I).EQ.0)GO TO 3 MOD05004
- DO 2 J=1,20 MOD05005
- KO=ICON(I,J) MOD05006
- IF(KO.EQ.0)GO TO 2 MOD05007
- KN=ISENEW(KO) MOD05008
- ICON(I,J)=KN MOD05009
- 2 CONTINUE MOD05010
- 3 CONTINUE MOD05011
- 5 CONTINUE MOD05012
- 11 FORMAT(5X,I5) MOD05013
- I=0 MOD05014
- ICO=0 MOD05015
- 20 I=I+1 MOD05016
- IF(I.GT.NUMEL)GO TO 100 MOD05017
- IF(MTYP(I).EQ.0)GO TO 20 MOD05018
- ICO=ICO+1 MOD05019
- MT=IABS(MTYP(I)) MOD05020
- MH=IELD(I) MOD05021
- IF(MH.LE.0)MH=NELAR(1,MT) MOD05022
- IELD(I)=MH MOD05023
- MT11=MT MOD05024
- IF(MT.NE.16)GO TO 450 MOD05025
- IELT=IELX(I) MOD05026
- IF(IELX(I).EQ.5)IELT=1 MOD05027
- IF(IELX(I).EQ.7)IELT=1 MOD05028
- IF(IELT.NE.1)GO TO 450 MOD05029
- IF(NELAR(1,MT).EQ.3)NELAR(1,MT)=4 MOD05030
- IF(NELAR(1,MT).EQ.6)NELAR(1,MT)=8 MOD05031
- IF(NELAR(1,MT).EQ.7)NELAR(1,MT)=9 MOD05032
- DO 410 IAG=1,3 MOD05033
- KDUM(IAG)=ICON(I,IAG) MOD05034
- 410 KDUM(IAG+3)=ICON(I,IAG+2) MOD05035
- DO 420 IAG=6,7 MOD05036
- 420 KDUM(IAG+2)=ICON(I,IAG) MOD05037
- KDUM(7)=ICON(I,3) MOD05038
- IF(IELD(I).EQ.3)KDUM(7)=0 MOD05039
- MH11=NELAR(1,MT) MOD05040
- WRITE(50)MT11,LOMGRO,MH11,DENSIT(I),AREA(I) MOD05041
- WRITE(50)I,(KDUM(J),J=1,MH11) MOD05042
- GO TO 460 MOD05043
- 450 CONTINUE MOD05044
- MH11=NELAR(1,MT) MOD05045
- WRITE(50)MT11,LOMGRO,MH11,DENSIT(I),AREA(I) MOD05046
- 14 FORMAT(5X,I5,6X,I5) MOD05047
- WRITE(50)I,(ICON(I,J),J=1,MH11) MOD05048
- 460 CONTINUE MOD05049
- IF(ISAP6.NE.1)GO TO 17 MOD05050
- N22=THICK(I) MOD05051
- N33=BETA(I) MOD05052
- WRITE(51)I,MT,(ICON(I,L1),L1=1,8),MATRI(I),N22,N33,IPS(I) MOD05053
- IF(MT.EQ.10.OR.MT.EQ.16)GO TO 19 MOD05054
- GO TO 20 MOD05055
- 19 WRITE(51)(ICON(I,L1),L1=9,20) MOD05056
- GO TO 20 MOD05057
- 17 IONE=1 MOD05058
- IZERO=0 MOD05059
- IK8=8 MOD05060
- IF(MT.NE.1)GO TO 25 MOD05061
- XBETA=BETA(I) MOD05062
- IF(MTYP(I).EQ.-1)GO TO 32 MOD05063
- WRITE(INP)I,ICON(I,1),ICON(I,2),MATRI(I),XBETA,IPS(I),IZERO MOD05064
- WRITE(INPF,26)I,ICON(I,1),ICON(I,2),MATRI(I),BETA(I),IPS(I),IZERO MOD05065
- 26 FORMAT(4I5,F10.3,2I5) MOD05066
- 27 FORMAT(4I5,F10.3,2I5,I5,F10.3,I5,2F10.3) MOD05067
- GO TO 20 MOD05068
- 32 WRITE(INP)I,ICON(I,1),ICON(I,2),MATRI(I),XBETA,IPS(I),IZERO MOD05069
- 1,IELD(I),CDIS(I),IELX(I),CVEL(I),THICK(I) MOD05070
- WRITE(INPF,27)I,ICON(I,1),ICON(I,2),MATRI(I),BETA(I),IPS(I),IZERO MOD05071
- 1,IELD(I),CDIS(I),IELX(I),CVEL(I),THICK(I) MOD05072
- GO TO 20 MOD05073
- 25 IF(MT.NE.2)GO TO 28 MOD05074
- INELKI=BETA(I) MOD05075
- INELKJ=THICK(I) MOD05076
- WRITE(INP)I,ICON(I,1),ICON(I,2),ICON(I,3),MATRI(I),IPS(I) MOD05077
- 1,IZERO,INELKI,INELKJ MOD05078
- WRITE(INPF,29)I,ICON(I,1),ICON(I,2),ICON(I,3),MATRI(I),IPS(I) MOD05079
- 1,IZERO,INELKI,INELKJ MOD05080
- 29 FORMAT(9I5) MOD05081
- GO TO 20 MOD05082
- 28 IF(MT.NE.17)GO TO 40 MOD05083
- IPOI1=MATRI(I) MOD05084
- IF(ISEQU.EQ.1)IPOI1=ISENEW(IPOI1) MOD05085
- RR=GAUSS1(IPOI1,1) MOD05086
- SS=GAUSS1(IPOI1,2) MOD05087
- WRITE(INP)I,IELD(I),IPS(I),BETA(I),RR,SS,IONE,MATRI(I) MOD05088
- 1,(ICON(I,J),J=1,8) MOD05089
- WRITE(INPF,41)I,IELD(I),IPS(I),BETA(I),RR,SS,IONE,MATRI(I) MOD05090
- 1,(ICON(I,J),J=1,8) MOD05091
- 41 FORMAT(3I5,3E12.5,10I5) MOD05092
- GO TO 20 MOD05093
- 40 IF(MT.EQ.16)IK8=9 MOD05094
- IF(MT.EQ.3.OR.MT.EQ.4)GO TO 66 MOD05095
- IF(MT.EQ.8.OR.MT.EQ.11)GO TO 66 MOD05096
- IF(MT.EQ.12.OR.MT.EQ.13)GO TO 66 MOD05097
- IF(MT.NE.18)GO TO 67 MOD05098
- IELD1=IELD(I) MOD05099
- IST=BETA(I) MOD05100
- IPES1=IELX(I) MOD05101
- NDLS=THICK(I) MOD05102
- NHKK=NTEMP(I) MOD05103
- WRITE(INP)I,IELD1,IPES1,NDLS,NHKK,IPS(I),MATRI(I),IST,IZERO MOD05104
- 1,(ICON(I,J),J=1,16) MOD05105
- WRITE(INPF,71)I,IELD1,IPES1,NDLS,NHKK,IPS(I),MATRI(I),IST,IZERO MOD05106
- 1,(ICON(I,J),J=1,16) MOD05107
- 71 FORMAT(I5,8I3,/,16I5) MOD05108
- GO TO 20 MOD05109
- 67 IELD1=MH MOD05110
- IELX1=IELX(I) MOD05111
- IF(IELX1.LE.0)IELX1=IELD1 MOD05112
- IST=BETA(I) MOD05113
- IF(MT.NE.16)GO TO 69 MOD05114
- NDLS=THICK(I) MOD05115
- WRITE(INP)I,IELD1,IELX(I),NDLS,IZERO,NTEMP(I) MOD05116
- &,IPS(I),MATRI(I),IZERO MOD05117
- 1,(ICON(I,J),J=1,9) MOD05118
- WRITE(INPF,68)I,IELD1,IELX(I),NDLS,IZERO,NTEMP(I) MOD05119
- &,IPS(I),MATRI(I),IZERO MOD05120
- 1,(ICON(I,J),J=1,9) MOD05121
- 68 FORMAT(I5,5I3,2I3,10I5) MOD05122
- GO TO 20 MOD05123
- 69 CONTINUE MOD05124
- NDIR=THICK(I) MOD05125
- WRITE(INP)I,IELD1,IELX1,IPS(I),MATRI(I),IST,IZERO,NDIR MOD05126
- WRITE(INPF,70)I,IELD1,IELX1,IPS(I),MATRI(I),IST,IZERO,NDIR MOD05127
- 70 FORMAT(8I5) MOD05128
- WRITE(INP)(ICON(I,J),J=1,IK8) MOD05129
- WRITE(INP)(ICON(I,J),J=9,20),IZERO MOD05130
- WRITE(INPF,72)(ICON(I,J),J=1,IK8) MOD05131
- WRITE(INPF,18)(ICON(I,J),J=9,20) MOD05132
- GO TO 20 MOD05133
- 72 FORMAT(8I5) MOD05134
- 66 XBETA=BETA(I) MOD05135
- XTHIC=THICK(I) MOD05136
- WRITE(INP)I,MH,IPS(I),XBETA,XTHIC,MATRI(I),IZERO MOD05137
- 1,(ICON(I,J),J=1,IK8) MOD05138
- WRITE(INPF,30)I,MH,IPS(I),BETA(I),THICK(I),MATRI(I),IZERO MOD05139
- 1,(ICON(I,J),J=1,IK8) MOD05140
- 30 FORMAT(I5,I3,I2,2F10.3,I5,I4,9I5) MOD05141
- 18 FORMAT(12I5) MOD05142
- GO TO 20 MOD05143
- 100 NUMEL1=ICO MOD05144
- MAXELM=MAXELM+ICO MOD05145
- MAXGRO=MAXGRO+1 MOD05146
- WRITE(IO,200)ICO,MAXGRO MOD05147
- IF(ISAP6.NE.1)WRITE(52)ICO,ITYPEL,NONTYP MOD05148
- 200 FORMAT(' . . . . TOTAL OF',I5,' ELEMENTS GENERATED FOR GROUP' MOD05149
- 1,' NUMBER =',I5) MOD05150
- DO 60 I=1,NUMEL1 MOD05151
- MTYP(I)=0 MOD05152
- IPS(I)=0 MOD05153
- MATRI(I)=0 MOD05154
- THICK(I)=0 MOD05155
- BETA(I)=0. MOD05156
- IELD(I)=0 MOD05157
- IELX(I)=0 MOD05158
- DO 61 J=1,20 MOD05159
- ICON(I,J)=0 MOD05160
- 61 CONTINUE MOD05161
- 60 CONTINUE MOD05162
- ITYPEL=0 MOD05163
- NONTYP=0 MOD05164
- RETURN MOD05165
- END MOD05166
- SUBROUTINE QUADM (N,ND,XM,XX,NOD5,IEL,THIC,DE,NND5,KIND) MOD00789
- CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC MOD00790
- IMPLICIT REAL*8(A-H,O-Z) MOD00791
- COMMON /SAP6/ ISAP6 MOD00792
- COMMON/JACHEK/ISEE,IERR MOD00793
- DIMENSION XM(1),D(16),XG(4,4),WGT(4,4),XX(2,8),NOD5(1) MOD00794
- DIMENSION H(8),P(2,8),IPERM(4),XJ(2,2) MOD00795
- DATA XG / 0., 0., 0., 0., MOD00796
- 1-.5773502691896D0, .5773502691896D0, 0.D0, 0.D0, MOD00797
- 2-.7745966692415D0, .00000000000D0, .7745966692415D0, 0.D0, MOD00798
- 3-.8611363115941D0,-.3399810435849D0, .3399810435849D0, MOD00799
- 4.8611363115941D0/ MOD00800
- DATA WGT / 2.000D0, 0.D0, 0.D0, 0.D0, MOD00801
- 11.00000000000D0,1.00000000000D0, 0.D0, 0.D0, MOD00802
- 2.5555555555556D0, .8888888888889D0, .5555555555556D0, 0.D0, MOD00803
- 3.3478548451375D0, .6521451548625D0, .6521451548625D0, MOD00804
- 4.3478548451375D0/ MOD00805
- DATA IPERM/2,3,4,1/ MOD00806
- IERR=0 MOD00807
- DO 7 I=1,IEL MOD00808
- 7 XM(I)=0. MOD00809
- DO 100 LX=1,3 MOD00810
- R=XG(LX,3) MOD00811
- DO 100 LY=1,3 MOD00812
- S=XG(LY,3) MOD00813
- WT=WGT(LX,3)*WGT(LY,3) MOD00814
- CALL FUNCT2 (R,S,H,P,NOD5,XJ,DET,XX,N,IEL,NND5) MOD00815
- IF(ISEE.EQ.1.AND.IERR.EQ.0)GO TO 100 MOD00816
- IF(ISEE.EQ.1.AND.IERR.EQ.1)RETURN MOD00817
- IF (ISAP6 .EQ. 0) GO TO 30 MOD00818
- IF (THIC .EQ. 0.0) GO TO 40 MOD00819
- GO TO 35 MOD00820
- 30 IF (KIND.EQ.4 .OR. KIND.EQ.11) GO TO 40 MOD00821
- 35 XBAR=THIC MOD00822
- GO TO 60 MOD00823
- 40 XBAR=0.0 MOD00824
- DO 50 K=1,IEL MOD00825
- 50 XBAR=XBAR + H(K)*XX(1,K) MOD00826
- 60 FAC=WT*XBAR*DET*DE MOD00827
- DO 325 I=1,IEL MOD00828
- FACM=FAC/IEL MOD00829
- 325 XM(I)=XM(I) + FACM MOD00830
- 100 CONTINUE MOD00831
- RETURN MOD00832
- END MOD00833
- CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC MOD00834
- SUBROUTINE TAREA(XYZ,NOD,I,J,K,TR,TVEC,ICH,NTOT) MOD00767
- CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC MOD00768
- IMPLICIT REAL*8 (A-H,O-Z) MOD00769
- DIMENSION XYZ(NTOT,1),NOD(1),TVEC(1),A(3),B(3) MOD00770
- SQRT(X)=DSQRT(X) MOD00771
- DO 100 L = 1, 3 MOD00772
- A(L) = XYZ(NOD(J),L) - XYZ(NOD(I),L) MOD00773
- B(L) = XYZ(NOD(K),L) - XYZ(NOD(I),L) MOD00774
- 100 CONTINUE MOD00775
- TVEC(1) = (A(2)*B(3) - A(3)*B(2)) / 2.0 MOD00776
- TVEC(2) = (A(3)*B(1) - A(1)*B(3)) / 2.0 MOD00777
- TVEC(3) = (A(1)*B(2) - A(2)*B(1)) / 2.0 MOD00778
- IF (ICH .EQ. 3) RETURN MOD00779
- AB = 0.0 MOD00780
- DO 200 L = 1, 3 MOD00781
- AB = AB + TVEC(L)**2 MOD00782
- 200 CONTINUE MOD00783
- AB = SQRT(AB) MOD00784
- TR = AB /3.0 MOD00785
- RETURN MOD00786
- END MOD00787
- CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC MOD00788
- SUBROUTINE FUNCT2 (R,S,H,P,NOD5,XJ,DET,XX,NEL,IEL,NND5) MOD01081
- CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC MOD01082
- IMPLICIT REAL*8(A-H,O-Z) MOD01083
- COMMON/JACHEK/ISEE1,IERR MOD01084
- DIMENSION H(1),P(2,1),NOD5(1),IPERM(4),XJ(2,2),XX(2,1) MOD01085
- DATA IPERM/2,3,4,1/ MOD01086
- ABS(X)=DABS(X) MOD01087
- RP = 1.0D0 + R MOD01088
- SP = 1.0D0 + S MOD01089
- RM = 1.0D0 - R MOD01090
- SM = 1.0D0 - S MOD01091
- R2 = 1.0D0 - R*R MOD01092
- S2 = 1.0D0 - S*S MOD01093
- H(1) = 0.25D0* RP* SP MOD01094
- H(2) = 0.25D0* RM* SP MOD01095
- H(3) = 0.25D0* RM* SM MOD01096
- H(4) = 0.25D0* RP* SM MOD01097
- P(1,1)=0.25D0*SP MOD01098
- P(1,2)=-P(1,1) MOD01099
- P(1,3)=-0.25D0*SM MOD01100
- P(1,4)=-P(1,3) MOD01101
- P(2,1)=0.25D0*RP MOD01102
- P(2,2)=0.25D0*RM MOD01103
- P(2,3)=-P(2,2) MOD01104
- P(2,4)=-P(2,1) MOD01105
- IF (IEL.EQ.4) GO TO 50 MOD01106
- I=0 MOD01107
- 2 I=I + 1 MOD01108
- IF (I.GT.NND5) GO TO 40 MOD01109
- NN=NOD5(I) - 4 MOD01110
- GO TO (5,6,7,8), NN MOD01111
- 5 H(5) = 0.50D0* R2* SP MOD01112
- P(1,5)=-R*SP MOD01113
- P(2,5)=0.50D0*R2 MOD01114
- GO TO 2 MOD01115
- 6 H(6) = 0.50D0* RM* S2 MOD01116
- P(1,6)=-0.50D0*S2 MOD01117
- P(2,6)=-RM*S MOD01118
- GO TO 2 MOD01119
- 7 H(7) = 0.50D0* R2* SM MOD01120
- P(1,7)=-R*SM MOD01121
- P(2,7)=-0.50D0*R2 MOD01122
- GO TO 2 MOD01123
- 8 H(8) = 0.50D0* RP* S2 MOD01124
- P(1,8)=0.50D0*S2 MOD01125
- P(2,8)=-RP*S MOD01126
- GO TO 2 MOD01127
- 40 IH=0 MOD01128
- 41 IH=IH + 1 MOD01129
- IF (IH.GT.NND5) GO TO 50 MOD01130
- IN=NOD5(IH) MOD01131
- I1=IN - 4 MOD01132
- I2=IPERM(I1) MOD01133
- H(I1)=H(I1) - 0.5D0*H(IN) MOD01134
- H(I2)=H(I2) - 0.5D0*H(IN) MOD01135
- H(IH + 4)=H(IN) MOD01136
- DO 45 J=1,2 MOD01137
- P(J,I1)=P(J,I1) - 0.5D0*P(J,IN) MOD01138
- P(J,I2)=P(J,I2) - 0.5D0*P(J,IN) MOD01139
- 45 P(J,IH + 4)=P(J,IN) MOD01140
- GO TO 41 MOD01141
- 50 DO 100 I=1,2 MOD01142
- DO 100 J=1,2 MOD01143
- DUM = 0.0D0 MOD01144
- DO 90 K=1,IEL MOD01145
- 90 DUM = DUM + P(I,K)* XX(J,K) MOD01146
- 100 XJ(I,J) = DUM MOD01147
- DET = XJ(1,1)* XJ(2,2) - XJ(2,1)* XJ(1,2) MOD01148
- IF(DET.GT.1.0D-8) GO TO 110 MOD01149
- WRITE (6,2000) NEL,DET MOD01150
- IERR=1 MOD01151
- RETURN MOD01152
- 110 CONTINUE MOD01153
- RETURN MOD01154
- 2000 FORMAT(' ++ F ++ NEGATIVE OR ZERO JACOBIAN' MOD01155
- 1,' ,ELEMENT NUMBER =',I5,' DET =',E15.7) MOD01156
- END MOD01157
- FUNCTION COMPNT(IG,II1,IC,IDEG,IW,ICC,NN) MOD01158
- DIMENSION IG(II1,1),IC(1),IDEG(1),IW(1),ICC(1) MOD01159
- DO 100 I=1,NN MOD01160
- ICC(I)=0 MOD01161
- IC(I)=0 MOD01162
- 100 CONTINUE MOD01163
- NC=0 MOD01164
- ICC(1)=1 MOD01165
- 110 DO 120 I=1,NN MOD01166
- IF(IC(I)) 120,130,120 MOD01167
- 120 COMPNT=NC MOD01168
- RETURN MOD01169
- 130 NC=NC+1 MOD01170
- KI=0 MOD01171
- KO=1 MOD01172
- IW(1)=I MOD01173
- IC(I)=NC MOD01174
- IF(NC-1)150,140,140 MOD01175
- 140 IS=ICC(NC)+1 MOD01176
- ICC(NC+1)=IS MOD01177
- 150 KI=KI+1 MOD01178
- II=IW(KI) MOD01179
- N=IDEG(II) MOD01180
- IF(N)160,110,160 MOD01181
- 160 DO 180 I=1,N MOD01182
- IA = IG(II,I) MOD01183
- IF(IC(IA)) 180,170,180 MOD01184
- 170 IC(IA)=NC MOD01185
- KO=KO+1 MOD01186
- IW(KO)=IA MOD01187
- IS=ICC(NC+1)+1 MOD01188
- ICC(NC+1)=IS MOD01189
- 180 CONTINUE MOD01190
- IF(KO-KI)110,110,150 MOD01191
- END MOD01192
- SUBROUTINE FUNCT (R,S,T,H,P,NOD9,XJ,DET,XX,IEL,NND9,IELX,IELD) MOD00835
- CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC MOD00836
- IMPLICIT REAL*8(A-H,O-Z) MOD00837
- COMMON /UNIT/ INN,IOUT,IP MOD00838
- COMMON /CGELE/ NEL MOD00839
- COMMON/JACHEK/ISEE1,IERR MOD00840
- DIMENSION H(1),P(3,1),NOD9(1),IPERM(8),XJ(3,3),XX(3,1) MOD00841
- DATA IPERM / 2,3,4,1,6,7,8,5 / MOD00842
- ABS(X)=DABS(X) MOD00843
- RP=1.0D0 + R MOD00844
- SP=1.0D0 + S MOD00845
- TP=1.0D0 + T MOD00846
- RM=1.0D0 - R MOD00847
- SM=1.0D0 - S MOD00848
- TM=1.0D0 - T MOD00849
- RR=1.0D0 - R*R MOD00850
- SS=1.0D0 - S*S MOD00851
- TT=1.0D0 - T*T MOD00852
- H(1)=0.125D0*RP*SP*TP MOD00853
- H(2)=0.125D0*RM*SP*TP MOD00854
- H(3)=0.125D0*RM*SM*TP MOD00855
- H(4)=0.125D0*RP*SM*TP MOD00856
- H(5)=0.125D0*RP*SP*TM MOD00857
- H(6)=0.125D0*RM*SP*TM MOD00858
- H(7)=0.125D0*RM*SM*TM MOD00859
- H(8)=0.125D0*RP*SM*TM MOD00860
- P(1,1)= 0.125D0*SP*TP MOD00861
- P(1,2)=-P(1,1) MOD00862
- P(1,3)=-0.125D0*SM*TP MOD00863
- P(1,4)=-P(1,3) MOD00864
- P(1,5)= 0.125D0*SP*TM MOD00865
- P(1,6)=-P(1,5) MOD00866
- P(1,7)=-0.125D0*SM*TM MOD00867
- P(1,8)=-P(1,7) MOD00868
- P(2,1)= 0.125D0*RP*TP MOD00869
- P(2,2)= 0.125D0*RM*TP MOD00870
- P(2,3)=-P(2,2) MOD00871
- P(2,4)=-P(2,1) MOD00872
- P(2,5)= 0.125D0*RP*TM MOD00873
- P(2,6)= 0.125D0*RM*TM MOD00874
- P(2,7)=-P(2,6) MOD00875
- P(2,8)=-P(2,5) MOD00876
- P(3,1)= 0.125D0*RP*SP MOD00877
- P(3,2)= 0.125D0*RM*SP MOD00878
- P(3,3)= 0.125D0*RM*SM MOD00879
- P(3,4)= 0.125D0*RP*SM MOD00880
- P(3,5)=-P(3,1) MOD00881
- P(3,6)=-P(3,2) MOD00882
- P(3,7)=-P(3,3) MOD00883
- P(3,8)=-P(3,4) MOD00884
- IF (IEL.EQ.8) GO TO 50 MOD00885
- I=0 MOD00886
- 2 I=I + 1 MOD00887
- IF (I.GT.NND9) GO TO 40 MOD00888
- NN=NOD9(I) - 8 MOD00889
- GO TO (9,10,11,12,13,14,15,16,17,18,19,20,21) ,NN MOD00890
- 9 H(9) =0.25D0*RR*SP*TP MOD00891
- P(1,9) =-0.50*R*SP*TP MOD00892
- P(2,9) = 0.25D0*RR*TP MOD00893
- P(3,9) = 0.25D0*RR*SP MOD00894
- GO TO 2 MOD00895
- 10 H(10)=0.25D0*RM*SS*TP MOD00896
- P(1,10)=-0.25D0*SS*TP MOD00897
- P(2,10)=-0.50*RM*S*TP MOD00898
- P(3,10)= 0.25D0*RM*SS MOD00899
- GO TO 2 MOD00900
- 11 H(11)=0.25D0*RR*SM*TP MOD00901
- P(1,11)=-0.50D0*R*SM*TP MOD00902
- P(2,11)=-0.25D0*RR*TP MOD00903
- P(3,11)= 0.25D0*RR*SM MOD00904
- GO TO 2 MOD00905
- 12 H(12)=0.25D0*RP*SS*TP MOD00906
- P(1,12)= 0.25D0*SS*TP MOD00907
- P(2,12)=-0.50D0*RP*S*TP MOD00908
- P(3,12)= 0.25D0*RP*SS MOD00909
- GO TO 2 MOD00910
- 13 H(13)=0.25D0*RR*SP*TM MOD00911
- P(1,13)=-0.50D0*R*SP*TM MOD00912
- P(2,13)= 0.25D0*RR*TM MOD00913
- P(3,13)=-0.25D0*RR*SP MOD00914
- GO TO 2 MOD00915
- 14 H(14)=0.25D0*RM*SS*TM MOD00916
- P(1,14)=-0.25D0*SS*TM MOD00917
- P(2,14)=-0.50D0*RM*S*TM MOD00918
- P(3,14)=-0.25D0*RM*SS MOD00919
- GO TO 2 MOD00920
- 15 H(15)=0.25D0*RR*SM*TM MOD00921
- P(1,15)=-0.50D0*R*SM*TM MOD00922
- P(2,15)=-0.25D0*RR*TM MOD00923
- P(3,15)=-0.25D0*RR*SM MOD00924
- GO TO 2 MOD00925
- 16 H(16)=0.25D0*RP*SS*TM MOD00926
- P(1,16)= 0.25D0*SS*TM MOD00927
- P(2,16)=-0.50D0*RP*S*TM MOD00928
- P(3,16)=-0.25D0*RP*SS MOD00929
- GO TO 2 MOD00930
- 17 H(17)=0.25D0*RP*SP*TT MOD00931
- P(1,17)= 0.25D0*SP*TT MOD00932
- P(2,17)= 0.25D0*RP*TT MOD00933
- P(3,17)=-0.50D0*RP*SP*T MOD00934
- GO TO 2 MOD00935
- 18 H(18)=0.25D0*RM*SP*TT MOD00936
- P(1,18)=-0.25D0*SP*TT MOD00937
- P(2,18)= 0.25D0*RM*TT MOD00938
- P(3,18)=-0.50D0*RM*SP*T MOD00939
- GO TO 2 MOD00940
- 19 H(19)=0.25D0*RM*SM*TT MOD00941
- P(1,19)=-0.25D0*SM*TT MOD00942
- P(2,19)=-0.25D0*RM*TT MOD00943
- P(3,19)=-0.50D0*RM*SM*T MOD00944
- GO TO 2 MOD00945
- 20 H(20)=0.25D0*RP*SM*TT MOD00946
- P(1,20)= 0.25D0*SM*TT MOD00947
- P(2,20)=-0.25D0*RP*TT MOD00948
- P(3,20)=-0.50D0*RP*SM*T MOD00949
- GO TO 2 MOD00950
- 21 H(21)=RR*SS*TT MOD00951
- P(1,21)=-2.0D0*R*SS*TT MOD00952
- P(2,21)=-2.0D0*S*RR*TT MOD00953
- P(3,21)=-2.0D0*T*RR*SS MOD00954
- GO TO 2 MOD00955
- 40 IH=0 MOD00956
- 41 IH=IH + 1 MOD00957
- IF (IH.GT.NND9) GO TO 50 MOD00958
- II=IH + 7 MOD00959
- IF (II.EQ.IELX) GO TO 51 MOD00960
- 42 IN=NOD9(IH) MOD00961
- IF (IN.GT.16) GO TO 46 MOD00962
- I1=IN - 8 MOD00963
- I2=IPERM(I1) MOD00964
- H(I1)=H(I1) - 0.5D0*H(IN) MOD00965
- H(I2)=H(I2) - 0.5D0*H(IN) MOD00966
- H(IH+8)=H(IN) MOD00967
- DO 45 J=1,3 MOD00968
- P(J,I1)=P(J,I1) - 0.5D0*P(J,IN) MOD00969
- P(J,I2)=P(J,I2) - 0.5D0*P(J,IN) MOD00970
- 45 P(J,IH+8)=P(J,IN) MOD00971
- GO TO 41 MOD00972
- 46 IF (IN.EQ.21) GO TO 30 MOD00973
- I1=IN - 16 MOD00974
- I2=I1 + 4 MOD00975
- H(I1)=H(I1) - 0.5D0*H(IN) MOD00976
- H(I2)=H(I2) - 0.5D0*H(IN) MOD00977
- H(IH+8)=H(IN) MOD00978
- DO 47 J=1,3 MOD00979
- P(J,I1)=P(J,I1) - 0.5D0*P(J,IN) MOD00980
- P(J,I2)=P(J,I2) - 0.5D0*P(J,IN) MOD00981
- 47 P(J,IH+8)=P(J,IN) MOD00982
- GO TO 41 MOD00983
- 30 IH=0 MOD00984
- 31 IH=IH + 1 MOD00985
- IN=NOD9(IH) MOD00986
- IF (IN.EQ.21) GO TO 35 MOD00987
- IF (IN.GT.16) GO TO 33 MOD00988
- I1=IN - 8 MOD00989
- I2=IPERM(I1) MOD00990
- H(I1)=H(I1) + 0.125D0*H(21) MOD00991
- H(I2)=H(I2) + 0.125D0*H(21) MOD00992
- DO 32 J=1,3 MOD00993
- P(J,I1)=P(J,I1) + 0.125D0*P(J,21) MOD00994
- 32 P(J,I2)=P(J,I2) + 0.125D0*P(J,21) MOD00995
- GO TO 31 MOD00996
- 33 I1=IN - 16 MOD00997
- I2=I1 + 4 MOD00998
- H(I1)=H(I1) + 0.125D0*H(21) MOD00999
- H(I2)=H(I2) + 0.125D0*H(21) MOD01000
- DO 34 J=1,3 MOD01001
- P(J,I1)=P(J,I1) + 0.125D0*P(J,21) MOD01002
- 34 P(J,I2)=P(J,I2) + 0.125D0*P(J,21) MOD01003
- GO TO 31 MOD01004
- 35 DO 36 I=1,8 MOD01005
- H(I)=H(I) - 0.125D0*H(21) MOD01006
- DO 36 J=1,3 MOD01007
- 36 P(J,I)=P(J,I) - 0.125D0*P(J,21) MOD01008
- NN=NND9 + 7 MOD01009
- IF (NN.EQ.8) GO TO 50 MOD01010
- DO 38 I=9,NN MOD01011
- H(I)=H(I) - 0.25D0*H(21) MOD01012
- DO 38 J=1,3 MOD01013
- 38 P(J,I)=P(J,I) - 0.25D0*P(J,21) MOD01014
- H(NND9+8)=H(21) MOD01015
- DO 39 J=1,3 MOD01016
- 39 P(J,NND9+8)=P(J,21) MOD01017
- 50 IF (IELX.LT.IELD) RETURN MOD01018
- 51 DO 100 I=1,3 MOD01019
- DO 100 J=1,3 MOD01020
- DUM=0.0D0 MOD01021
- DO 90 K=1,IELX MOD01022
- 90 DUM=DUM + P(I,K)*XX(J,K) MOD01023
- 100 XJ(I,J)=DUM MOD01024
- DET = XJ(1,1)*XJ(2,2)*XJ(3,3) MOD01025
- 1+ XJ(1,2)*XJ(2,3)*XJ(3,1) MOD01026
- 2+ XJ(1,3)*XJ(2,1)*XJ(3,2) MOD01027
- 3- XJ(1,3)*XJ(2,2)*XJ(3,1) MOD01028
- 4- XJ(1,2)*XJ(2,1)*XJ(3,3) MOD01029
- 5- XJ(1,1)*XJ(2,3)*XJ(3,2) MOD01030
- IF (DET.GT.1.0E-08) GO TO 110 MOD01031
- WRITE (IOUT,2000)NEL,DET MOD01032
- IERR=1 MOD01033
- RETURN MOD01034
- 110 IF (IELX.LT.IELD) GO TO 42 MOD01035
- RETURN MOD01036
- 2000 FORMAT(' ++ F ++ NEGATIVE OR ZERO JACOBIAN' MOD01037
- 1,' ,ELEMENT NUMBER =',I5,' DET =',E15.7) MOD01038
- END MOD01039
- CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC MOD01040
- SUBROUTINE QUADM3 (N,ND,XM,XX,NOD9,IST,IEL,IELX,DE,NND9) MOD01041
- CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC MOD01042
- IMPLICIT REAL*8(A-H,O-Z) MOD01043
- COMMON/JACHEK/ISEE,IERR MOD01044
- DIMENSION XM(1),XX(3,1),D(63),XG(4,4),WGT(4,4),NOD9(1) MOD01045
- DIMENSION H(21),P(3,21),XJ(3,3) MOD01046
- DATA XG / 0.0D0, 0.0D0, 0.0D0, 0.0D0, MOD01047
- 1-.5773502691896D0, .5773502691896D0, 0.D0, 0.D0, MOD01048
- 2-.7745966692415D0, .0000000000000D0, .7745966692415D0, 0.D0, MOD01049
- 3-.8611363115941D0,-.3399810435849D0, .3399810435849D0, MOD01050
- 4.8611363115941D0/ MOD01051
- DATA WGT / 2.000D0, 0.D0, 0.D0, 0.D0, MOD01052
- 11.0000000000000D0,1.0000000000000D0, 0.D0, 0.D0, MOD01053
- 2.5555555555556D0, .8888888888889D0, .5555555555556D0, 0.D0, MOD01054
- 3.3478548451375D0, .6521451548625D0, .6521451548625D0, MOD01055
- 4.3478548451375D0/ MOD01056
- NINTM=3 MOD01057
- IERR=0 MOD01058
- NINTZM=3 MOD01059
- DO 7 I=1 ,IEL MOD01060
- 7 XM(I)=0. MOD01061
- 10 DO 900 LX=1,NINTM MOD01062
- R=XG(LX,NINTM) MOD01063
- DO 900 LY=1,NINTM MOD01064
- S=XG(LY,NINTM) MOD01065
- DO 900 LZ=1,NINTZM MOD01066
- T=XG(LZ,NINTZM) MOD01067
- WT=WGT(LX,NINTM)*WGT(LY,NINTM)*WGT(LZ,NINTZM) MOD01068
- IELD = IELX MOD01069
- CALL FUNCT (R,S,T,H,P,NOD9,XJ,DET,XX,IEL,NND9,IELX,IELD) MOD01070
- IF(ISEE.EQ.1.AND.IERR.EQ.0)GO TO 900 MOD01071
- IF(ISEE.EQ.1.AND.IERR.EQ.1)RETURN MOD01072
- FAC = WT*DET*DE MOD01073
- DO 325 I=1,IEL MOD01074
- FACM=FAC/IEL MOD01075
- 325 XM(I)=XM(I) + FACM MOD01076
- 900 CONTINUE MOD01077
- RETURN MOD01078
- END MOD01079
- CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC MOD01080