You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.9 KiB
88 lines
2.9 KiB
2 years ago
|
C Copyright(C) 1999-2020 National Technology & Engineering Solutions
|
||
|
C of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
|
||
|
C NTESS, the U.S. Government retains certain rights in this software.
|
||
|
C
|
||
|
C See packages/seacas/LICENSE for details
|
||
|
|
||
|
C=======================================================================
|
||
|
SUBROUTINE NEWNPS (IDFRO, IDBCK,
|
||
|
& IDNPS, NNNPS, NNNP3, IXNNPS, IXNNP3,
|
||
|
& LTNNPS, LTNNP3, FACNPS, FACNP3,
|
||
|
& IXNP, NRNP)
|
||
|
C=======================================================================
|
||
|
|
||
|
C --*** NEWNPS *** (GEN3D) Calculate 3D node sets
|
||
|
C -- Written by Amy Gilkey - revised 05/05/86
|
||
|
C --
|
||
|
C --NEWNPS calculates the node set information for the 3D database.
|
||
|
C --The front and back node sets are not calculated (since they
|
||
|
C --are easily derived), and they are not included in the length tally.
|
||
|
C --
|
||
|
C --Parameters:
|
||
|
C -- IDFRO - IN - ids for front surface node sets; (0) = length
|
||
|
C -- IDBCK - IN - ids for back surface node sets; (0) = length
|
||
|
C -- IDNPS - IN - the 2D node sets ids
|
||
|
C -- NNNPS - IN - the number of nodes for each 2D set
|
||
|
C -- NNNP3 - OUT - the number of nodes for each 3D set
|
||
|
C -- IXNNPS - IN - the index of the first node for each 2D set
|
||
|
C -- IXNNP3 - OUT - the index of the first node for each 3D set
|
||
|
C -- LTNNPS - IN - the nodes for all 2D sets
|
||
|
C -- LTNNP3 - OUT - the nodes for all 3D sets
|
||
|
C -- FACNPS - IN - the distribution factors for all 2D sets
|
||
|
C -- FACNP3 - OUT - the distribution factors for all 3D sets
|
||
|
C -- IXNP - IN - the new index for each node
|
||
|
C -- NRNP - IN - the number of new nodes generated for each node
|
||
|
C --
|
||
|
C --Common Variables:
|
||
|
C -- Uses NDBOUT of /DBASE/
|
||
|
C -- Uses NUMNPS, LNPSNL of /DBNUMS/
|
||
|
C -- Sets LNPSNO of /DBNUM3/
|
||
|
C -- Uses NNREPL of /PARAMS/
|
||
|
|
||
|
INCLUDE 'g3_dbtitl.blk'
|
||
|
INCLUDE 'g3_dbnums.blk'
|
||
|
INCLUDE 'g3_dbnum3.blk'
|
||
|
INCLUDE 'g3_params.blk'
|
||
|
|
||
|
INTEGER IDFRO(0:*)
|
||
|
INTEGER IDBCK(0:*)
|
||
|
INTEGER IDNPS(*)
|
||
|
INTEGER NNNPS(*), NNNP3(*)
|
||
|
INTEGER IXNNPS(*), IXNNP3(*)
|
||
|
INTEGER LTNNPS(*), LTNNP3(*)
|
||
|
REAL FACNPS(*), FACNP3(*)
|
||
|
INTEGER IXNP(*), NRNP(*)
|
||
|
|
||
|
C --Node set ids - unchanged
|
||
|
|
||
|
CONTINUE
|
||
|
|
||
|
C --Node set nodes and distribution factors - add on nodes for each
|
||
|
C --plate/slice
|
||
|
|
||
|
N = 0
|
||
|
DO 30 NPS = 1, NUMNPS
|
||
|
C --Index of each node set nodes
|
||
|
IXNNP3(NPS) = N + 1
|
||
|
|
||
|
IP0 = IXNNPS(NPS) - 1
|
||
|
DO 20 I = 1, NNNPS(NPS)
|
||
|
INP = LTNNPS(IP0+I)
|
||
|
JNP = IXNP(INP)
|
||
|
DO 10 NR = 1, NRNP(INP)
|
||
|
N = N + 1
|
||
|
LTNNP3(N) = JNP + NR-1
|
||
|
FACNP3(N) = FACNPS(IP0+I)
|
||
|
10 CONTINUE
|
||
|
20 CONTINUE
|
||
|
|
||
|
C --Number of nodes in each set
|
||
|
NNNP3(NPS) = N - IXNNP3(NPS) + 1
|
||
|
30 CONTINUE
|
||
|
|
||
|
C --Number of nodes in all sets
|
||
|
LNPSNO = N
|
||
|
|
||
|
RETURN
|
||
|
END
|