DOUBLE PRECISION FUNCTION XN(IT,K,X,Y) SAVE DOUBLE PRECISION X,Y ! !......FUNCTION TO DEFINE SHAPE FUNCTION VALUES ! IF(IT .EQ. 2) THEN ! !......TRIANGULAR ELEMENT ! GO TO ( 110,120,130,140,150,160),K 110 XN=(1.-2.*X-2.*Y)*(1.-X-Y) RETURN 120 XN=4.*X*(1.-X-Y) RETURN 130 XN=(2.*X-1.)*X RETURN 140 XN=4.*X*Y RETURN 150 XN=(2.*Y-1.)*Y RETURN 160 XN=4.*Y*(1.-X-Y) RETURN ! !......QUADRILATERAL ELEMENT ! ELSEIF(IT .EQ. 1) THEN GO TO (510,520,530,540,550,560,570,580),K 510 XN=(1.-X)*(1.-Y)*(-X-Y-1.)/4. RETURN 520 XN=(1.-X*X)*(1.-Y)/2. RETURN 530 XN=(1.+X)*(1.-Y)*(X-Y-1.)/4. RETURN 540 XN=(1.+X)*(1.-Y*Y)/2. RETURN 550 XN=(1.+X)*(1.+Y)*(X+Y-1.)/4. RETURN 560 XN=(1.-X*X)*(1.+Y)/2. RETURN 570 XN=(1.-X)*(1.+Y)*(-X+Y-1.)/4. RETURN 580 XN=(1.-X)*(1.-Y*Y)/2. ELSE GO TO (610,620,630,640,650,660,670,680,690),K 610 XN=(1.-X)*(1.-Y)*X*Y/4. RETURN 620 XN=-Y*(1.-X*X)*(1.-Y)/2. RETURN 630 XN=-(1.+X)*(1.-Y)*X*Y/4. RETURN 640 XN=X*(1.+X)*(1.-Y*Y)/2. RETURN 650 XN=(1.+X)*(1.+Y)*X*Y/4. RETURN 660 XN=Y*(1.-X*X)*(1.+Y)/2. RETURN 670 XN=-(1.-X)*(1.+Y)*X*Y/4. RETURN 680 XN=-X*(1.-X)*(1.-Y*Y)/2. RETURN 690 XN=(1.+X)*(1.-X)*(1.+Y)*(1.-Y) RETURN ENDIF END DOUBLE PRECISION FUNCTION DNX(IT,K,X,Y) SAVE DOUBLE PRECISION X,Y !- !......FUNCTION TO DETERMINE X-DERIVATIVE OF SHAPE FUNCTION !- IF(IT .EQ. 2) THEN !- !......TRIANGULAR ELEMENT !- GO TO (110,120,130,140,150,160),K 110 DNX=-3. +4.*X+4.*Y RETURN 120 DNX=4.-8.*X-4.*Y RETURN 130 DNX=4.*X-1. RETURN 140 DNX=4.*Y RETURN 150 DNX=0. RETURN 160 DNX=-4.*Y RETURN !- !......QUADRILATERAL ELEMENT !- ELSEIF(IT .EQ. 1) THEN GO TO (510,520,530,540,550,560,570,580),K 510 DNX=-(1.-Y)*(-2.*X-Y)/4. RETURN 520 DNX=-X*(1.-Y) RETURN 530 DNX=(1.-Y)*(2.*X-Y)/4. RETURN 540 DNX=(1.-Y*Y)/2. RETURN 550 DNX=(1.+Y)*(2.*X+Y)/4. RETURN 560 DNX=-X*(1.+Y) RETURN 570 DNX=-(1.+Y)*(-2.*X+Y)/4. RETURN 580 DNX=-(1.-Y*Y)/2. RETURN ELSE GO TO (610,620,630,640,650,660,670,680,690),K 610 DNX=(Y-Y**2)*(1.-2.*X)/4. RETURN 620 DNX= X*(Y-Y**2) RETURN 630 DNX=-(Y-Y**2)*(1.+2.*X)/4. RETURN 640 DNX=(1.-Y*Y)/2.*(1.+2.*X) RETURN 650 DNX=(Y+Y**2)*(1.+2.*X)/4. RETURN 660 DNX=-X*(Y+Y**2) RETURN 670 DNX=-(Y+Y**2)*(1.-2.*X)/4. RETURN 680 DNX=-(1.-Y*Y)/2.*(1.-2.*X) RETURN 690 DNX=-2.*X*(1.-Y**2) RETURN ENDIF END DOUBLE PRECISION FUNCTION DNY(IT,K,X,Y) SAVE DOUBLE PRECISION X,Y !- ! !......FUNCTION TO DETERMINE Y-DERIVATIVE OF SHAPE FUNCTION !- IF(IT .EQ. 2) THEN !- !......TRIANGULAR ELEMENT !- GO TO (110,120,130,140,150,160),K 110 DNY=-3.+4.*X+4.*Y RETURN 120 DNY=-4.*X RETURN 130 DNY=0. RETURN 140 DNY=4.*X RETURN 150 DNY=4.*Y-1. RETURN 160 DNY=4.-4.*X-8.*Y RETURN !- !......QUADRILATERAL ELEMENT !- ELSEIF(IT .EQ. 1) THEN GO TO (510,520,530,540,550,560,570,580),K 510 DNY=-(1.-X)*(-2.*Y-X)/4. RETURN 520 DNY=-(1.-X*X)/2. RETURN 530 DNY=-(1.+X)*(X-2.*Y)/4. RETURN 540 DNY=-Y*(1.+X) RETURN 550 DNY=(1.+X)*(2.*Y+X)/4. RETURN 560 DNY=(1.-X*X)/2. RETURN 570 DNY=(1.-X)*(2.*Y-X)/4. RETURN 580 DNY=-Y*(1.-X) RETURN ELSE GO TO (610,620,630,640,650,660,670,680,690),K 610 DNY=(X-X**2)*(1.-2.*Y)/4. RETURN 620 DNY=-(1.-X*X)/2.*(1.-2.*Y) RETURN 630 DNY=-(X+X**2)*(1.-2.*Y)/4. RETURN 640 DNY=-Y*(X+X**2) RETURN 650 DNY=(X+X**2)*(1.+2.*Y)/4. RETURN 660 DNY=(1.-X*X)/2.*(1.+2.*Y) RETURN 670 DNY=-(X-X**2)*(1.+2.*Y)/4. RETURN 680 DNY= Y*(X-X**2) RETURN 690 DNY=-2.*Y*(1.-X**2) RETURN ENDIF END