Documentation of SAP internals

File contents

1 .L01

Element stress xfmn arrays, etc. (unformatted)

	AAMAIN        For each element type, write NPAR(14)
	TPLATE, etc.: Write 1 record/element, including
			Nd, Ns
			LM (Nd x 1)  Connection array
			SA (Ns x Nd) Stress/displacement transformation array
			SF (Ns x 4)  Loads

Miscellaneous (unformatted)

	CALBAN: Write Nd, Ns, (LM(i), i=1,Nd) (if MODEX = 1, data-check mode)

2 .EST

Element stiffness matrices (unformatted)

2 .DSP

Stiffness (unformatted)

        CALBAN: Write (if MODEX not = 1)

Displacements (unformatted)

	SOLEQ: Write

Load vectors (unformatted) (direct integration)

	LOADV:  WRITE (KT) B
	SOLSTP: READ (KT) B

Control information for restart option (unformatted)

        SOLEIG: Write Neq,Nblock,Neqb,Mband,N1,Nf,(At(i),i=1,Nf)

2 ?

Master index array

	INPUTJ: WRITE (2) ID
	PLOAD: READ  (2) ID

2 ?

Function multipliers (FF) and arrival time steps (IFF). Overwritten with load vectors B in LOADV.

	PLOAD: READ  (2) ID
	PLOAD: WRITE (NT) FF,IFF
	INDLY: READ (KT)  FF,IFF (input-delay processing)
	INDLY: WRITE (KT) FF,IFF
	GMTN:  READ (IT) FF,IFF (also writes FF,IFF to 4)
	GROUND: READ (IT) FF,IFF
	GROUND: WRITE (IT) FF,IFF
	LOAD1: WRITE (NT) FF,IFF (in 2 places)
	LOAD2: READ (MT) FF,IFF (MT=4 if NGM.NE.0)
	LOADV: READ (KT) FF,IFF
	LOADV: WRITE (KT) B

3 .L03

Nodal loads and masses (unformatted)

	INL: Write B(NEQB,LL),TMASS(NEQB)
	ADDSTF: READ (3) ((B(I,L),I=1,NEQB),L=1,LL),(TMASS(I),I=1,NEQB)
	        READ (3) ((B(I,L),I=K,NE2B),L=1,LL),(TMASS(I),I=K,NE2B)
	ADDMAS: WRITE (NT3) TMASS

3 .RED

Blocks of system matrix during decomposition (unformatted)

	TRIFAC: Write A,MAXA

4 .STF

System stiffness matrix (unformatted)

	ADDSTF: Write Nblock records each containing
			STIFF -- Neqb by Mband
			B     -- Neqb by no. load cases

After subspace iteration, SCHECK applies a shift to the stiffness matrix.

For step-by-step, the diagonals of the stiffness matrix are modified by effective damping & mass terms, and the B vector is omitted.

4 ?

? (unformatted) (note that SCHECK interchanges NSTIF and NRED just before DECOMP is called, so the unit that was the stiffness is written onto)

	DECOMP: Write records each containing
			A     -- length NWA = NEQB * MBAND
			MAXA  -- length MI  = MBAND + NEQB - 1

4 ?

	GMTN: WRITE (JT) FF,IFF (also reads FF,IFF from 2)

4 ?

	LOAD2: WRITE (MT) PD

4 .HIST

Displacement history (unformatted) (direct integration)

	SOLSTP: WRITE (JT) ((SDIS(II1,II2),II1=1,MM),II2=1,NSD)

7 .L07

Eigenvectors (unformatted)

	SBLOCK: Write (((Vnewk(i,j), i=1,Neqb), j=1,Nv), k=1,Nblock)

Stress history (unformatted) (direct integration)

	SOLSTP: WRITE (IT) ((SSTR(II1,II2),II1=1,MM),II2=1,NSS)

8 .L08

WRITE

Data porthole save (data-check mode, MODEX not = 0) (unformatted)

	SETUP:  Write
	INPUTJ: Write (((ID(n,i), i=1,6), n=1,NUMNP) (equation numbers)
		Write (X(n), n=1,NUMNP)
		Write (Y(n), n=1,NUMNP)
		Write (Z(n), n=1,NUMNP)
		Write (T(n), n=1,NUMNP)

(solution mode, MODEX = 0) (unformatted)

	INPUTJ: Write ID (NUMNP x 6 equation numbers)
	ADDSTF: Write STR (4 x LL, element load multipliers)

READ

	STRESS: Read STR

8 .L08

Stress-displacement transformations for element stresses which are requested for output, for time histories, written by INOUT.

	INOUT: write ND,((SSA(II,JJ),II=1,8),JJ=1,ND),
			((KLM(II,JJ),II=1,8),JJ=1,ND)

9 .MAS

System mass matrix (unformatted)

	ADDSTF: Write ((mik, i=1,Neqb), k=1,Nblock)
	ADDMAS: READ (NT9) BLKMAS

9 .OUTRQ

Output requests

	INOUT:

10 .***

Static problem

'Stress porthole' if N10SV = 1 (unformatted)

	STRESS: Write NELTYP,NT		NT = (LL-1)/LB+1
		Write LT,LH
		Write NPAR
	SHELL:	Write MM,L,(SIG(I),I=1,6)  shell element stresses

Time history

system displacement, velocity & acceleration vectors in SOLSPT, also controlled by N10SV.

Variable names

AT(i)

	= 2*pi/sqrt(A(i)), i = 1,Nf ( = 1/f ) (set in SSPCEB)
	= A(i), i = Nf+1, 2*Nf

N10SV (in common EXTRA)

Read in from Master Control Card in .SAP file by SETUP. If = 1, things are saved to tape #10 ('stress porthole') by BEAM, BOUND, SHELL, SOL21, STRESS & THREED. In SOLSTP, the 100's, 10's & 1's digits of N10SV are separated and stored in ISAVE(i), i=1,3, respectively, corresponding to displacement, velocity & acceleration system vectors; then, in the main time-marching loop, whenever the time step counter K is a multiple of ISAVE(i), the corresponding system vector is saved on tape #10.

NPAR(14)

Read from 1st card for each element type. NPAR(1) is set to 0 by STRESS to force element routines to calculate stresses.

	   1: Element type
	   2: No. elements of this type
	3-14: Different for different element types

SA

Stress-displacement transformation matrix evaluated at the element centroid, computed for shell element in STRETR: dimensions (12,24)

Subroutine descriptions

STRSC

Calculates element stresses for the static case: SOLEQ calls STRESS, which for each element type forces NPAR(1)=0 as a flag then calls ELTYPE, which calls the appropriate element routine, which calls STRSC.

	Args:	STR(4,1)	IN  element load multipliers
		D(NEQ,1)	IN  displacements
		NEQ		IN  dimension of D
		NTAG		IN  if = 0, read ND,NS,LM,B,TI from unit 1
	Common: SG(20)		OUT stresses
		L		IN
		LT		IN
		NS
		ND
		B(42,63)	    stress/displacement xfmn array
		TI(42,4)	    loads
		LM(63)		    connection array

For a set of load cases for 1 element, STRSC is called once with NTAG=0 which causes it to read things from unit 1 for that element; it is then called once for each load case with NTAG=1, which causes it to compute the stresses.
Stresses = loads*load_multipliers + xfmn_array*displacements

Subprogramme hierarchy

(1976 Aug 9)

 
MAIN
        ERRSET
        STIME, TTIME
        ERROR (also called by BEAM, HISTRY, INTHIS, LOAD2, PIPE, PLANE, RESPEC, SHELL, SOL21, STEP, THREED, THREEDT, TRUSS)
        INPUTJ
	ELTYPE ...
        INL
        ADDSTF
        SOLEQ
	        STRESS
		        ELTYPE ...
	        PRINTD
	        SESOL
        SOLEIG
	        MODES
		        SSPCEB
			        DECOMP
			        EIGSOL
				        JACOBI
			        INVECT
			        REDBAK
			        SCHECK
		        SECNTD
			        BANDET
			        MULT [REALLY?]
		        SBLOCK
	        PRINTD
        HISTRY
	        DISPLR
		        DISPLY
			        ELOUTH
			        PPLOT
	        GMTN
	        STRSD1
		        DISPLY
			        ELOUTH
			        PPLOT
	        EMID
	        LOAD1
	        LOAD2
	        RESPON
        RESPEC
	        EMIDR
	        STRESR
		        ELOUTR
	        PRINTD
	        SPECTR
		        SD
        STEP
	        ADDMAS
	        PLOAD
	        EMIDS
	        GROUND
	        INDLY
	        INTHIS
	        LOADV
	        INOUT
	        TRIFAC
	        SOLSTP
		        REDVK
	        SDSPLY
		        ELOUTS
		        SPLOT
        ELTYPE
		TRUSS
			RUSS
				CALBAN
		        STRSC
	        BEAM
		        TEAM
			        NEWBM
			        SLAVE
			        CALBAN
		        STRSC
	        PLANE
		        PLNAX
			        CALBAN
			        CROSS
			        DOT
			        ELAW
				        POSINV
			        QUAD
				        FORMB
				        VECTOR
			        VECTOR
		        STRSC
	        THREED
		        BRICK8
			        CALBAN
			        DERIV
			        LOAD
				        DERIV
			        LOSTR
		        PRIST
		        STRSC
	        SHELL
		        TPLATE
			        CALBAN
			        QTSHEL
				        QDCOS
				        TDCOS
				        TRFPRD
				        SLST
				        LSTSTR
				        SLCCT
				        LCTMOM
			        STRETR
				        CSTSTR
				        LCT9ST
				        QDCOS
				        TDCOS
				        TRFPRD
		        STRSC
	        BOUND
		        CLAMP
			        CALBAN
		        STRSC
	        SOL21
		        THDFE
			        DER3DS
			        FACEPR
				        FNCT
			        INP21
				        CROSS2
				        VECTR2
			        SSLAW
			        ST8R21
				        DER3DS
			        CALBAN
		        STRSC
	        PIPE
		        PIPEK
			        BENDDC
			        BENDKS
				        PINVER
			        TANGKS
				        PINVER
			        PIPES2
			        PIPES3
			        TANGDC
			        SELECT
			        CALBAN
		        STRSC
		???
		        ELST3D
			        CALBAN


R. Funnell
Last modified: 2016-05-19 15:40:06