C C FIDAP User Subroutine Templates C SUBROUTINE USRBCF (X,NODEP,VALNOD,NPOINT,VAL,NVAL,SUB,NDF,IERR) C C USER SUPPLIED SUBROUTINE FOR THE DEFINITION OF BOUNDARY FLUXES c CALLED FROM FIMESH C C INPUT: C ===== C SUB THE VALUE SPECIFIED ON THE CONTROL CARD "SUBR=SUB" C X(3,*) COORDINATES OF POINTS C NPOINT NUMBER OF POINTS ON CURRENT BOUNDARY ELEMENT FLUX C NODEP (NPOINT) LIST OF THESE NODES C NDF DEGREE OF FREEDOM C C INPUT/OUTPUT: C ============ C VALNOD (INPUT) IF THE NODES ARE ALONG A LOGICAL LINE, VALNOD(I) C IS THE DISTANCE FROM VALNOD(1) ALONG THE LINE C (OUTPUT) BOUNDARY VALUE FOR NODE NODEP(I) C VAL(NVAL) (INPUT) 3 VALUES SPECIFIED ON DATA CARD AFTER IP1 IP2 C (OUTPUT) VAL(2) NCURV C VAL(3) FAC C C OUTPUT: C ====== C IERR = 0 NORMAL COMPLETION C .GT.0 ERROR C #include "IMPLCT.COM" #include "TAPES.COM" #include "NUMBRS.COM" DIMENSION X(3,*),VAL(3),VALNOD(NPOINT),NODEP(NPOINT) IERR = 0 C C INSERT HERE NORMAL EXECUTION COMMANDS C C RETURN C C ON ERROR SET IERR TO POSITIVE C IERR = 1 C DELETE NEXT LINE CALL ERMSGi (2301,1,1,1,IOUT,BATCH,0,0, 1 0,0,0,ZRO,ZRO,'BOUNDARY FLUXES',' ',' ') RETURN C END C SUBROUTINE USBCFI (NDF,X,Y,Z,NODE,VALUE,CONS,NCONS,IERR) C C USER SUPPLIED SUBROUTINE FOR THE DEFINITION OF BOUNDARY FLUXES C CALLED FROM FIPREP C C INPUT: C ===== C NDF DEGREE OF FREEDOM C X X COORDINATE C Y Y COORDINATE C Z Z COORDINATE C NODE NODE NUMBER C CONS USER SPECIFIED CONSTANTS C NCONS NO. OF USER SPECIFIED CONSTANTS C C OUTPUT: C ====== C VALUE VALUE OF FLUX AT NODE (X,Y,Z) C IERR = 0 NORMAL COMPLETION C .GT.0 ERROR C #include "IMPLCT.COM" #include "TAPES.COM" #include "NUMBRS.COM" DIMENSION CONS(*) IERR = 0 C C INSERT HERE NORMAL EXECUTION COMMANDS C C RETURN C C ON ERROR SET IERR TO POSITIVE C IERR = 1 C DELETE NEXT LINE CALL ERMSGi (2301,1,1,1,IOUT,BATCH,0,0, 1 0,0,0,ZRO,ZRO,'BOUNDARY FLUXES',' ',' ') RETURN C END c SUBROUTINE USRBC (X,NODEP,VALNOD,NPOINT,VAL,NVAL,SUB,NDF,IERR) C C USER SUPPLIED SUBROUTINE FOR THE DEFINITION OF BOUNDARY VALUES C CALL FROM FIMESH C C INPUT: C ===== C SUB THE VALUE SPECIFIED ON THE CONTROL CARD "SUBR=SUB" C X(3,*) COORDINATES OF POINTS C NPOINT NUMBER OF POINTS ON CURRENT BCNODE REQUEST C NODEP (NPOINT) LIST OF THESE NODES C NDF DEGREE OF FREEDOM C C INPUT/OUTPUT: C ============ C VALNOD (INPUT) IF THE NODES ARE ALONG A LOGICAL LINE, VALNOD(I) C IS THE DISTANCE FROM VALNOD(1) ALONG THE LINE C (OUTPUT) BOUNDARY VALUE FOR NODE NODEP(I) C VAL(NVAL) (INPUT) 4 VALUES SPECIFIED ON DATA CARD AFTER IP1 IP2 C (OUTPUT) VAL(1) NCURV C VAL(2) FAC C C OUTPUT: C ====== C IERR = 0 NORMAL COMPLETION C .GT.0 ERROR C #include "IMPLCT.COM" #include "TAPES.COM" #include "NUMBRS.COM" DIMENSION X(3,*),VAL(4),VALNOD(NPOINT),NODEP(NPOINT) IERR = 0 C C INSERT HERE NORMAL EXECUTION COMMANDS C C RETURN C C ON ERROR SET IERR TO POSITIVE C IERR = 1 C DELETE NEXT LINE CALL ERMSGi (2301,1,1,1,IOUT,BATCH,0,0, 1 0,0,0,ZRO,ZRO,'BOUNDARY VALUES',' ',' ') RETURN C END C SUBROUTINE USRBCI (NDF,X,Y,Z,NODE,VAL,CONS,NCONS,IERR) C C USER SUPPLIED SUBROUTINE FOR THE DEFINITION OF BOUNDARY NODAL VALUES C CALLED FROM FIPREP C C INPUT: C ===== C NDF DEGREE OF FREEDOM C X X COORDINATE C Y Y COORDINATE C Z Z COORDINATE C NODE NODE NUMBER C CONS USER SPECIFIED CONSTANTS C NCONS NO. OF USER SPECIFIED CONSTANTS C C OUTPUT: C ====== C VAL VALUE OF NODAL VALUE AT NODE (X,Y,Z) C IERR = 0 NORMAL COMPLETION C .GT.0 ERROR C #include "IMPLCT.COM" #include "TAPES.COM" #include "NUMBRS.COM" DIMENSION CONS(*) IERR = 0 C C INSERT HERE NORMAL EXECUTION COMMANDS C C RETURN C C ON ERROR SET IERR TO POSITIVE C IERR = 1 C DELETE NEXT LINE CALL ERMSGi (2301,1,1,1,IOUT,BATCH,0,0, 1 0,0,0,ZRO,ZRO,'BOUNDARY VALUES',' ',' ') RETURN C END c SUBROUTINE USRCPY (LPDV, LPWIN) C C USER DEFINED GRAPHICS COPY ROUTINE C C LPDV = DEVICE DRIVER C LPWIN = WINDOW ID C #include "IMPLCT.COM" #include "TAPES.COM" ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'GRAPHICS COPY (USRCPY)',' ',' ') RETURN END c SUBROUTINE USRELM (NECARD,NDP,NGROUP,SUB,NELGRP,IERR) C C USER SUPPLIED SUBROUTINE FOR THE DEFINITION OF ELEMENTS C C INPUT: C ===== C SUB,NDP,NGROUP ARE THE VALUES SPECIFIED ON THE CONTROL CARD C ... , SUBR=SUB , NODE=NDP , GROUP=NGROUP , ... C C OUTPUT: C ====== C NELGRP : NUMBER OF ELEMENTS IN THIS GROUP C NECARD(NDP+1,NELGRP) ELEMENTS DEFINITION FOR THIS GROUP C IERR = 0 NORMAL COMPLETION C .GT.0 ERROR C #include "IMPLCT.COM" #include "TAPES.COM" #include "NUMBRS.COM" C DIMENSION NECARD (NDP+1,*) IERR = 0 C C INSERT HERE NORMAL EXECUTION COMMANDS C C RETURN C C ON ERROR SET IERR TO POSITIVE C IERR = 1 C DELETE NEXT LINE CALL ERMSGi (2301,1,1,1,IOUT,BATCH,0,0, 1 0,0,0,ZRO,ZRO,'ELEMENT CONNECTIVITY',' ',' ') RETURN C END c SUBROUTINE USRIC (X,NODEP,VALNOD,NPOINT,VAL,NVAL,NCONST,NDF,IERR) C C USER SUPPLIED SUBROUTINE FOR THE DEFINITION OF INITIAL VALUES C C INPUT: C ===== C X(3,*) COORDINATES OF POINTS C NODEP (NPOINT) LIST OF NODES REQUESTING I.C.S C NPOINT NUMBER OF POINTS ON CURRENT ICNODE REQUEST C NVAL NUMBER OF INITIAL VALUES NEEDED PER NODE: C IF VELOCITY THEN 3 ELSE 1 C VAL(NCONST ) (INPUT) NCONST VALUES SPECIFIED ON DATA CARD AFTER C IP1 IP2 C NCONST THE VALUE SPECIFIED ON THE CONTROL CARD "SUBR=NCONST ", C NUMBER OF USER SOECIFIED CONSTANTS C NDF DEGREE OF FREEDOM C 1-UX, 2-UY, 3-UZ, 5-TEMP, 6-SURF, 7-KINE, 8-DISS, C 9-C1 10-C2 100-VELO C C OUTPUT: C ====== C VALNOD VALUE OF THE INITIAL CONDITION FOR NPOINT NODES. C IERR = 0 NORMAL COMPLETION C .GT.0 ERROR C #include "IMPLCT.COM" #include "TAPES.COM" #include "NUMBRS.COM" DIMENSION X(3,*),VAL(NCONST),VALNOD(NVAL,*),NODEP(NPOINT) C C INITIALISE ERROR RETURN TO 0 C IERR = 0 C C INSERT HERE NORMAL EXECUTION COMMANDS UNCOMMENT THE RETURN C C RETURN C C ON ERROR SET IERR TO POSITIVE C IERR = 1 C DELETE NEXT LINE CALL ERMSGi (2301,1,1,1,IOUT,BATCH,0,0, 1 0,0,0,ZRO,ZRO,'INITIAL CONDITIONS',' ',' ') RETURN C END c SUBROUTINE USRICI (NDF,X,Y,Z,NODE,VALI,CONS,NCONS,IERR) C C USER SUPPLIED SUBROUTINE FOR THE DEFINITION OF BOUNDARY NODAL VALUES C CALLED FROM FIPREP C C INPUT: C ===== C NDF DEGREE OF FREEDOM C X X COORDINATE C Y Y COORDINATE C Z Z COORDINATE C NODE NODE NUMBER C CONS USER SPECIFIED CONSTANTS C NCONS NO. OF USER SPECIFIED CONSTANTS C C OUTPUT: C ====== C VALI VALUE OF INITIAL CONDITION AT NODE (X,Y,Z) C IERR = 0 NORMAL COMPLETION C .GT.0 ERROR C #include "IMPLCT.COM" #include "TAPES.COM" #include "NUMBRS.COM" DIMENSION CONS(*) IERR = 0 C C INSERT HERE NORMAL EXECUTION COMMANDS C C RETURN C C ON ERROR SET IERR TO POSITIVE C IERR = 1 C DELETE NEXT LINE CALL ERMSGi (2301,1,1,1,IOUT,BATCH,0,0, 1 0,0,0,ZRO,ZRO,'INITIAL CONDITIONS',' ',' ') RETURN C END c SUBROUTINE USRNOD (X,NFIRST,NLAST,NDFCD,SUB,IERR) C C USER SUPPLIED SUBROUTINE FOR THE DEFINITION OF NODES CALLED WHEN C NODES ( CART/CYLIN/SPHER, SUBROUTINE = SUB ) C C INPUT: C ===== C SUB VALUE SPECIFIED ON THE CONTROL CARD ...,SUBR=SUB C NDFCD = 2(3) COORDINATES DIMENSION, ACCORDING TO THE DEFINITION IN C *PROBLEM ( 2-D/AXI- .. OR .. 3-D ) C IERR = 0 NORMAL COMPLETION C .GT.0 ERROR C C OUTPUT: C ====== C NFIRST (NLAST) FIRST (LAST) POINT DEFINED C X(3,I) I=NFIRST,NLAST CARTHESIAN COORDINATES OF THE POINTS C C NOTE: C ===== C THE LAST ORIGIN COMMAND PREVIOUS TO THE *NODE COMMAND IS TAKEN AS C THE CURRENT ORIGIN; THE COORDINATE SYSTEM IS TAKEN FROM THE *NODE C COMMAND. C C #include "IMPLCT.COM" #include "TAPES.COM" #include "NUMBRS.COM" DIMENSION X(3,*) IERR = 0 C C INSERT HERE NORMAL EXECUTION COMMANDS C C RETURN C C ON ERROR SET IERR TO POSITIVE C IERR = 1 C DELETE NEXT 2 LINES CALL ERMSGi (2301,1,1,1,IOUT,BATCH,0,0, 1 0,0,0,ZRO,ZRO,'NODAL POINT DATA',' ',' ') RETURN C END c SUBROUTINE USRSPL (COORD,NMPTS,INPT,IERR) C C USER SUPPLIED CURVE POINTS INPUT SUBROUTINE C C NMPTS = NUMBER OF POINTS C COORD = ARRAY OF COORDINATES OF NMPTS POINTS C INPT = VALUE OF INPUT KEYWORD C C IERR = 0 NORMAL COMPLETION C .GT.0 ERROR C #include "IMPLCT.COM" #include "TAPES.COM" #include "NUMBRS.COM" DIMENSION COORD(3,NMPTS) C C INSERT HERE NORMAL EXECUTION COMMANDS C C RETURN C C ON ERROR SET IERR TO POSITIVE C IERR = 1 C DELETE NEXT TWO LINES CALL ERMSGi (2301,1,1,1,IOUT,BATCH,0,0, 1 0,0,0,ZRO,ZRO,'CURVE DATA',' ',' ') RETURN C END c SUBROUTINE USRBDY (XB,YB,ZB,IPB,NPB,IERR) C C USER SUPPLIED BOUNDARY DEFINITION SUBROUTINE C C (XB(I),I=1,NPB) X COORDINATES OF NPB BOUNDARY POINTS C (YB(I),I=1,NPB) Y COORDINATES OF NPB BOUNDARY POINTS C (ZB(I),I=1,NPB) Z COORDINATES OF NPB BOUNDARY POINTS C (IPB(I),I=1,NPB) PEN POSITIONS FOR NPB BOUNDARY POINTS C IERR ERROR FLAG C #include "IMPLCT.COM" #include "TAPES.COM" #include "NUMBRS.COM" DIMENSION XB(NPB),YB(NPB),ZB(NPB),IPB(NPB) C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'BOUNDARY DEFINITION (USRBDY)',' ',' ') RETURN END C SUBROUTINE USRDST (CDIST,X,Y,Z,NPT,CNST,IERR) C C USER SUPPLIED SUBROUTINE TO: C COMPUTE THE CUT VALUE = DIRECTED DISTANCE FROM THE CUTTING SURFACE C (A POSITIVE VALUE MEANS THE POINT DOES NOT BELONG TO THE CUT BODY) C C INPUT: C ====== C X,Y,Z VECTORS OF LENGTH NPT, BODY COORDINATES, IN THE ORIGINAL C CARTHESIAN SYSTEM C CNST(9) USER DEFINED SET 0F UP TO 9 CONSTANTS C C OUTPUT: C ====== C CDIST VECTOR OF LENGTH NPT, CONTAINING THE DIRECTED DISTANCES C #include "IMPLCT.COM" #include "TAPES.COM" #include "NUMBRS.COM" DIMENSION X(NPT),Y(NPT),Z(NPT),CDIST(NPT),CNST(9) C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'CUTTING SURFACE (USRDST)',' ',' ') RETURN END c SUBROUTINE USRFN (FUNC, XYZ, UF, T, TRB, SPEC, NSPEC, P, DENS, 1 NUMNP, NELEM, NDFCD, NDFVL, IPR, TIME, 2 nxyz, mtpar, conmt, mtprp, nlpar, prop, 3 mxmpar, mxmcon, mxmlab, mxepar, 4 ia, WK, MFIRST, MTOT,IERR,DISP) C C USER SUPPLIED SUBROUTINE TO CALCULATE FUNCTION FOR USE WITH C COMMANDS - CONT,LINE,HIST -. C FUNCTION VALUES MUST BE COMPUTED AT ALL NODES C #include "IMPLCT.COM" #include "TAPES.COM" #include "NUMBRS.COM" DIMENSION FUNC(NUMNP), prop(*), WK(*), ia(*), dens(numnp) DIMENSION TRB(NUMNP,*), P(NUMNP), UF(NDFVL,NUMNP), T(NUMNP) DIMENSION SPEC(NUMNP,*), XYZ(NUMNP,ndfcd), nxyz(numnp) dimension mtpar(mxmpar,*), conmt(mxmcon,*) dimension mtprp(mxmlab,*), nlpar(mxepar,*) dimension DISP(NUMNP,*) C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'USER FUNCTION (USRFN)',' ',' ') RETURN END c SUBROUTINE USRVEC (FUNC, XYZ, UF, T, TRB, SPEC, NSPEC, P, DENS, 1 NUMNP, NELEM, NDFCD, NDFVL, IPR, TIME, 2 nxyz, mtpar, conmt, mtprp, nlpar, prop, 3 mxmpar, mxmcon, mxmlab, mxepar, 4 ia, WK, MFIRST, MTOT,IERR,DISP) C C USER SUPPLIED SUBROUTINE TO CALCULATE VECTOR FUNCTION FOR USE WITH C COMMANDS - VECTOR, ETC. C FUNCTION VALUES MUST BE COMPUTED AT ALL NODES C #include "IMPLCT.COM" #include "TAPES.COM" #include "NUMBRS.COM" DIMENSION FUNC(NDFVL,NUMNP), prop(*), WK(*), ia(*), dens(numnp) DIMENSION TRB(NUMNP,*), P(NUMNP), UF(NDFVL,NUMNP), T(NUMNP) DIMENSION SPEC(NUMNP,*), XYZ(NUMNP,ndfcd), nxyz(numnp) dimension mtpar(mxmpar,*), conmt(mxmcon,*) dimension mtprp(mxmlab,*), nlpar(mxepar,*) dimension DISP(NUMNP,*) C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'USER FUNCTION (USRVEC)',' ',' ') RETURN END c SUBROUTINE USRSIZ (IFNUBR, U, V, X, Y, Z, SIZE, IERR) C C USER DEFINED SURFACE SIZING FUNCTION FOR PAVING C C IFNUBR = (IN) USER SUPPLIED NUMBER TO IDENTIFY THIS SURFACE C U = (IN) U VALUE ON SURFACE C V = (IN) V VALUE ON SURFACE C X = (IN) GLOBAL X VALUE C Y = (IN) GLOBAL Y VALUE C Z = (IN) GLOBAL Z VALUE C SIZE = (OUT) DESIRED SIZE OF ELEMENT AT THIS LOCATION C IERR = (OUT) ERROR FLAG, 0 IS OK, ELSE ERROR C #include "IMPLCT.COM" ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'USER SIZING FN. (USRSIZ)',' ',' ') RETURN END c SUBROUTINE USRVDO (IOPT,NFRAME) C C USER-SUPPLIED VIDEO DRIVER C C IOPT VIDEO OPTION FLAG C = 0 CALLED AT VIDEO(ON) COMMAND C = 1 CALLED AT VIDEO(OFF) COMMAND C = 2 CALL AT END OF FRAME C C NFRAME FRAME NUMBER C #include "IMPLCT.COM" C RETURN END c c common subroutines with fisolv c SUBROUTINE USRACP (NELT,NE,NG,COEF,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR,UTNG) C C USER DEFINED A COEFFICIENT FOR PERMEABILITY C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = A COEFFICIENT FOR PERMEABILITY EQUATION C VARI = ARRAY OF SOLUTION VARIBLES AT INTEGRATION POINTS C DVARI = GRADIENTS OF SOLUTION VARIABLES AT INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C SHP = ELEMENT SHAPE FUNCTIONS C DSDX = SHAPE FUNCTION DERIVATIVES IN THE X,Y,Z DIRECTION C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C UTNG = NORM OF VELOCITY (SPEED) C #include "IMPLCT.COM" #include "PARUSR.COM" #include "TAPES.COM" DIMENSION COEF(NPTS),UTNG(NPTS) DIMENSION SHP(MNDP,NPTS),DSDX(MNDP,NPTS,NDFCD),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),DVARI(NPTS,NDFCD,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'PERMEABILITY - ACOEF (USRACP)',' ',' ') RETURN END C SUBROUTINE USRBCP (NELT,NE,NG,COEF,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR,UTNG) C C USER DEFINED B COEFFICIENT FOR PERMEABILITY C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = B COEFFICIENT FOR PERMEABILITY EQUATION C VARI = ARRAY OF SOLUTION VARIBLES AT INTEGRATION POINTS C DVARI = GRADIENTS OF SOLUTION VARIABLES AT INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C SHP = ELEMENT SHAPE FUNCTIONS C DSDX = SHAPE FUNCTION DERIVATIVES IN THE X,Y,Z DIRECTION C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C UTNG = NORM OF VELOCITY (SPEED) C #include "IMPLCT.COM" #include "PARUSR.COM" #include "TAPES.COM" DIMENSION COEF(NPTS),UTNG(NPTS) DIMENSION SHP(MNDP,NPTS),DSDX(MNDP,NPTS,NDFCD),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),DVARI(NPTS,NDFCD,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'PERMEABILITY - BCOEF (USRBCP)',' ',' ') RETURN END C SUBROUTINE USRBTA (NELT,NE,NG,COEF,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR,DCOEF, 2 IFLAG) C C USER DEFINED VOLUME EXPANSION COEFFICIENTS C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = VOLUME EXPANSION COEFFICIENT C VARI = ARRAY OF SOLUTION VARIBLES AT INTEGRATION POINTS C DVARI = GRADIENTS OF SOLUTION VARIABLES AT INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C SHP = ELEMENT SHAPE FUNCTIONS C DSDX = SHAPE FUNCTION DERIVATIVES IN THE X,Y,Z DIRECTION C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C C IFLAG = 1 AND DCOEF ARE ONLY USED FOR DENSITY VARIATIONS IN C THE CONTINUITY EQUATION C C IFLAG = 1 , COMPUTE THE GRADIENTS OF BETA W.R.T. TEMPERATURE AND C SPECIES C = 0 , DON'T COMPUTE GRADIENTS C IFLAG IS SET IN FISOLV C C DCOEF = ARRAY OF THE GRADIENTS OF BETA WHERE DCOEF(J,I) IS THE C (I-1)TH SPECIES (I-1=0 IS TEMPERATURE) FOR THE JTH POINT C #include "IMPLCT.COM" #include "TAPES.COM" #include "PARUSR.COM" DIMENSION COEF(NPTS),DCOEF(NPTS,*) DIMENSION SHP(MNDP,NPTS),DSDX(MNDP,NPTS,NDFCD),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),DVARI(NPTS,NDFCD,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'VOLUME EXPANSION (USRBTA)',' ',' ') RETURN END C SUBROUTINE USRCAP (NELT,NE,NG,COEF,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED SPECIES CAPACITY C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = SPECIES CAPACITY C VARI = ARRAY OF SOLUTION VARIBLES AT INTEGRATION POINTS C DVARI = GRADIENTS OF SOLUTION VARIABLES AT INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C SHP = ELEMENT SHAPE FUNCTIONS C DSDX = SHAPE FUNCTION DERIVATIVES IN THE X,Y,Z DIRECTION C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "PARUSR.COM" #include "TAPES.COM" DIMENSION COEF(NPTS) DIMENSION SHP(MNDP,NPTS),DSDX(MNDP,NPTS,NDFCD),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),DVARI(NPTS,NDFCD,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'SPECIES CAPACITY (USRCAP)',' ',' ') RETURN END C SUBROUTINE USRCND (NELT,NE,NG,COEF,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED CONDUCTIVITY C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = CONDUCTIVITY C VARI = ARRAY OF SOLUTION VARIBLES AT INTEGRATION POINTS C DVARI = GRADIENTS OF SOLUTION VARIABLES AT INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C SHP = ELEMENT SHAPE FUNCTIONS C DSDX = SHAPE FUNCTION DERIVATIVES IN THE X,Y,Z DIRECTION C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "PARUSR.COM" #include "TAPES.COM" DIMENSION COEF(NPTS) DIMENSION SHP(MNDP,NPTS),DSDX(MNDP,NPTS,NDFCD),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),DVARI(NPTS,NDFCD,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'THERMAL CONDUCTIVITY (USRCND)',' ',' ') RETURN END C SUBROUTINE USRCNV (NELT,NE,NG,HC,VARI,NDFCD,LDOFU,SHP,XYZL, 1 PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED CONVECTION HEAT TRANSFER COEFFICIENT C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C HC = CONVECTION COEFFICIENT C VARI = SOLUTION VARIABLE ARRAY AT THE INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "TAPES.COM" #include "PARUSR.COM" DIMENSION HC(NPTS),SHP(MNDP,NPTS),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'CONVECTION COEF. (USRCNV)',' ',' ') RETURN END C SUBROUTINE USRDIF (NELT,NE,NG,COEF,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED SPECIES DIFFUSIVITY C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = SPECIES DIFFUSIVITY C VARI = ARRAY OF SOLUTION VARIBLES AT INTEGRATION POINTS C DVARI = GRADIENTS OF SOLUTION VARIABLES AT INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C SHP = ELEMENT SHAPE FUNCTIONS C DSDX = SHAPE FUNCTION DERIVATIVES IN THE X,Y,Z DIRECTION C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "PARUSR.COM" #include "TAPES.COM" DIMENSION COEF(NPTS) DIMENSION SHP(MNDP,NPTS),DSDX(MNDP,NPTS,NDFCD),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),DVARI(NPTS,NDFCD,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'SPECIES DIFFUSIVITY (USRDIF)',' ',' ') RETURN END C SUBROUTINE USREMS (NELT,NE,NG,HC,VARI,NDFCD,LDOFU,SHP,XYZL, 1 PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED EMISSIVITY COEFFICIENT FOR RADIATION C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C HC = EMISSIVITY COEFFICIENT C VARI = SOLUTION VARIABLE ARRAY AT THE INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "TAPES.COM" #include "PARUSR.COM" DIMENSION HC(NPTS),SHP(MNDP,NPTS),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'EMISSIVITY (USREMS)',' ',' ') RETURN END C SUBROUTINE USRENT (NELT,NE,NG,COEF,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED ENTHALPY C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = ENTHALPY C VARI = ARRAY OF SOLUTION VARIBLES AT INTEGRATION POINTS C DVARI = GRADIENTS OF SOLUTION VARIABLES AT INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C SHP = ELEMENT SHAPE FUNCTIONS C DSDX = SHAPE FUNCTION DERIVATIVES IN THE X,Y,Z DIRECTION C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C PROP = USER DEFINED PARAMETERS C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "PARUSR.COM" #include "TAPES.COM" DIMENSION COEF(NPTS) DIMENSION SHP(MNDP,NPTS),DSDX(MNDP,NPTS,NDFCD),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),DVARI(NPTS,NDFCD,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'USER ENTHALPY (USRENT)',' ',' ') RETURN END C subroutine usreos (nelt,ne,nmgp,dens,uv,temp,pres,spec,nspecs, 1 xyzl,prop,npts,wtmol,ugasr,presrf,sos,ierr) C C user defined equation of state C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C dens = density c uv = velocity components c u-velocity is in uv(npts,1) c v-velocity is in uv(npts,2) c w-velocity is in uv(npts,3) C TEMP = TEMPERATURE C pres = pressure C SPEC = ARRAY OF SPECIES VALUES WHERE SPEC(J,I) IS THE ITH active C SPECIES AT THE JTH POINT C XYZL = X,Y,Z COORDINATES C PROP = USER DEFINED PARAMETERS c wtmol = array of molecular weights where wtmol(i) is the c molecular weight of the ith species and the last c entry in the array (i.e., wtmol(16)) contains c the molecular weight of the carrier fluid c ugasr = universal gas constant c presrf= reference pressure c sos = local speed of sound C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "PARUSR.COM" #include "TAPES.COM" dimension dens(npts),uv(npts,*),temp(npts),pres(npts),spec(npts,*) dimension wtmol(16),sos(npts),prop(*),xyzl(npts,*) ZRO = 0.D0 C CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'EQ.OF.STATE (USREOS)',' ',' ') RETURN END C SUBROUTINE USRFNT (VARI ,DVARI,PCUX ,PCUY ,PCUZ ,PCLC ,PCLT ,PCLD, 1 FLDN ,FLVS ,FLSP ,FLKN ,FLDF ,PCDN ,PDNL ,PDNS, 2 DIAM ,DMST ,PHIC ,PHIS ,PSPV ,PSPL ,PSPS ,PSPH, 3 XYZL ,IDSPC,PSAT ,PCLTB,PMASS,PMAST,TIME ,ALPH, 4 LDOFU,NDFCD,IERR ,INDP ,IOPT ,USLH ,USRH) C C C COMPUTES ADDITIONAL USER DEFINED DRIVING TERMS FOR C PARTICULATE EQUATIONS - IN THE FOLLOWING SECTION THE C TERM "VOLATILE" REFERS TO THE EVAPORATING PORTION OF C A DRYING PARTICLE OR THE COMBUSTIBLE COMPONENT OF A C PARTICLE UNDERGOING COMBUSTION C C MOMENTUM - USER DEFINED FORCES (INDP = 1,2,3) C MASS - USER DEFINED MASS FLOW RATE (INDP = 4) C USLH RETURNS DRDT C URHS RETURNS DMDT C ENERGY - USER DEFINED HEAT TRANSFER (INDP = 5) C C OUTPUT C USRH EXPLICIT CONTRIBUTION C USLH IMPLICIT CONTRIBUTION C C INPUT C C IDSPC SPECIE ASSOCIATED WITH THIS PARTICLE C C PCUX UX COMPONENT OF PARTICLE VELOCITY C PCUY UY COMPONENT OF PARTICLE VELOCITY C PCUZ UZ COMPONENT OF PARTICLE VELOCITY C PCLC PARTICLE SURFACE CONCENTRATION C PCLT PARTICLE TEMPERATURE C PCLD PARTICLE DIAMETER C C PDNL PARTICLE DENSITY "VOLATILE" C PDNS PARTICLE DENSITY "NON VOLATILE CORE" C PCDN EQUIVALENT (VOLATILE + NON VOLATILE) DENSITY C NOTE(1) THE DISTINCTIONS ARE ONLY RELEVANT FOR MIXED PARTICLES C C PSPS SPECIFIC HEAT OF "NON VOLATILE" C PSPL SPECIFIC HEAT OF "VOLATILE" C PSPV SPECIFIC HEAT OF VAPOR OF PARTICLE C PSPH SPECIFIC HEAT OF PARTICLE IS THE MASS WEIGHTED C AVERAGE OF THE VOLATILE AND NON VOLATILE C SUBSTANCES IN THE PARTICLE C NOTE(2) THE DISTINCTIONS ARE ONLY RELEVANT FOR MIXED PARTICLES C C DIAM (NON VOLATILE) DIAMETER C DMST INITIAL PARTICLE DIAMETER (VOLATILE + NON VOLATILE) C PHIC CURRENT VOLATILE MASS FRACTION (TIME TSTRT) C PHIS INITIAL VOLATILE MASS FRACTION C PMASS CURRENT PARTICLE MASS C PMAST INITIAL PARTICLE MASS C C TIME CURRENT TIME C ALPH CURRENT TIME INCREMENT C C FLDN FLUID DENSITY C FLVS FLUID VISCOSITY C FLSP FLUID SPECIFIC HEAT C FLKN FLUID CONDUCTIVITY C FLDF DIFFUSIVITY COEFFICIENT OF SPECIE IDSPC C C PSAT VAPORIZATION TEMPERATURE C PCLTB BOILING TEMPERATURE C C VARI ARRAY OF SOLUTION VARIABLES AT PARTICLE LOCATION C DVARI GRADIENTS OF SOLUTION VARIABLES AT PARTICLE LOCATION C LDOFU POINTER ARRAY FOR ACCESSING VARI AND DVARI INFORMATION C XYZL X,Y,Z COORDINATES C C IOPT USER DEFINED OPTION FLAG C IF INDP = 1,2,3 IOPT = VALUE OF DRUSER KEYWORD C IF INDP = 4 IOPT = VALUE OF PHSUSER KEYWORD C IF INDP = 5 IOPT = VALUE OF TEMPUSER KEYWORD C #include "IMPLCT.COM" #include "PARUSR.COM" #include "TAPES.COM" DIMENSION XYZL(NDFCD),VARI(*),DVARI(NDFCD,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 IF (INDP.EQ.1.OR.INDP.EQ.2.OR.INDP.EQ.3) THEN CALL ERMSGP (7500,1,2,1,IOUT,BATCH,0,0,0,0,0,ZRO,ZRO, 1 'PARTICLE MOMENTUM (USRFNT)',' ',' ') ELSEIF (INDP.EQ.4) THEN CALL ERMSGP (7500,1,2,1,IOUT,BATCH,0,0,0,0,0,ZRO,ZRO, 1 'PARTICLE MASS TRANSFER (USRFNT)',' ',' ') ELSEIF (INDP.EQ.5) THEN CALL ERMSGP (7500,1,2,1,IOUT,BATCH,0,0,0,0,0,ZRO,ZRO, 1 'PARTICLE HEAT TRANSFER (USRFNT)',' ',' ') ENDIF C RETURN END c SUBROUTINE USRGAP (NELT,NE,NG,COEF,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR,ZIGN, 2 ZIGT,GAP,TEMP2) C C USER DEFINED GAP ELEMENT HEAT TRANSFER COEFFICIENT C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = SPECIFIC HEAT C VARI = ARRAY OF SOLUTION VARIBLES AT INTEGRATION POINTS C DVARI = GRADIENTS OF SOLUTION VARIABLES AT INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C SHP = ELEMENT SHAPE FUNCTIONS C DSDX = SHAPE FUNCTION DERIVATIVES IN THE X,Y,Z DIRECTION C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C ZIGN = NORMAL STRESS AT INTEGRATION POINTS C ZIGT = TANGENTIAL STRESS AT INTEGRATION POINTS C GAP = GAP WIDTH ALONG ELEMENT SIDE C TEMP2 = WALL TEMPERATURES C #include "IMPLCT.COM" #include "PARUSR.COM" #include "TAPES.COM" DIMENSION COEF(NPTS),GAP(NPTS),TEMP2(NPTS) DIMENSION SHP(MNDP,NPTS),DSDX(MNDP,NPTS,NDFCD),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),DVARI(NPTS,NDFCD,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'GAP COEFFICIENT (USRGAP)',' ',' ') RETURN END C SUBROUTINE USRLAT (NELT,NE,NG,COEF,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED SPECIFIC HEAT C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = LATENT HEAT C VARI = ARRAY OF SOLUTION VARIBLES AT INTEGRATION POINTS C DVARI = GRADIENTS OF SOLUTION VARIABLES AT INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C SHP = ELEMENT SHAPE FUNCTIONS C DSDX = SHAPE FUNCTION DERIVATIVES IN THE X,Y,Z DIRECTION C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "TAPES.COM" #include "PARUSR.COM" DIMENSION COEF(NPTS) DIMENSION SHP(MNDP,NPTS),DSDX(MNDP,NPTS,NDFCD),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),DVARI(NPTS,NDFCD,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'LATENT HEAT (USRLAT)',' ',' ') RETURN END C SUBROUTINE USRMLT (NELT,NE,NG,COEF,VARI,NDFCD,LDOFU,SHP,XYZL, 1 PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED LIQUIDUS C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = MELT LIQUIDUS C VARI = SOLUTION VARIABLE ARRAY AT THE INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "TAPES.COM" #include "PARUSR.COM" DIMENSION COEF(NPTS),SHP(MNDP,NPTS),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'LIQUIDUS (USRMLT)',' ',' ') RETURN END C SUBROUTINE USRMU (NELT,NE,NG,VISC,VARI,DVARI,NDFCD,LDOFU,SHP,DSDX, 1 XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED NONNEWTONIAN VISCOSITY MODEL C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C VISC = VISCOSITY C VARI = ARRAY OF SOLUTION VARIBLES AT INTEGRATION POINTS C DVARI = GRADIENTS OF SOLUTION VARIABLES AT INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C SHP = ELEMENT SHAPE FUNCTIONS C DSDX = SHAPE FUNCTION DERIVATIVES IN THE X,Y,Z DIRECTION C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "PARUSR.COM" #include "TAPES.COM" DIMENSION VISC(NPTS) DIMENSION SHP(MNDP,NPTS),DSDX(MNDP,NPTS,NDFCD),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),DVARI(NPTS,NDFCD,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'NON-NEWTONIAN VISCOSITY (USRMU)',' ',' ') RETURN END C SUBROUTINE USRMXL (NELT,NE,NG,VISC,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR, 2 DENS) C C USER DEFINED MIXING LENGTH C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C VISC = VISCOSITY C VARI = ARRAY OF SOLUTION VARIBLES AT INTEGRATION POINTS C DVARI = GRADIENTS OF SOLUTION VARIABLES AT INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C SHP = ELEMENT SHAPE FUNCTIONS C DSDX = SHAPE FUNCTION DERIVATIVES IN THE X,Y,Z DIRECTION C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C DEN = DENSITY OF FLUID C #include "IMPLCT.COM" #include "PARUSR.COM" #include "TAPES.COM" DIMENSION VISC(NPTS),DENS(NPTS) DIMENSION SHP(MNDP,NPTS),DSDX(MNDP,NPTS,NDFCD),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),DVARI(NPTS,NDFCD,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'MIXING LENGTH VISCOSITY (USRMXL)',' ',' ') RETURN END C SUBROUTINE USRPRT (VARI ,DVARI,PCUX ,PCUY ,PCUZ ,PCLC ,PCLT ,PCLD, 1 FLDN ,FLVS ,FLSP ,FLKN ,FLDF ,PCDN ,PSPH ,PSPV, 2 XYZL ,IDSPC,PSAT ,PCLTB,TIME ,ALPH ,IOPT ,IERR, 3 LDOFU,NDFCD,INDP ,COEF ) C C USER DEFINED DRAG COEFFICIENT, NUSSELT OR SHERWOOD NUMBER C FOR PARTICLE TRACKING C C OUTPUT C DRAG COEFFICIENT (INDP = 1) C SHERWOOD NUMBER (INDP = 2) C NUSSELT NUMBER (INDP = 3) C C INPUT C IDSPC SPECIE ASSOCIATED WITH THIS PARTICLE C PCUX UX COMPONENT OF PARTICLE VELOCITY C PCUY UY COMPONENT OF PARTICLE VELOCITY C PCUZ UZ COMPONENT OF PARTICLE VELOCITY C PCLC PARTICLE SURFACE CONCENTRATION C PCLT PARTICLE TEMPERATURE C PCLD PARTICLE DIAMETER C PCDN PARTICLE DENSITY C PSPH PARTICLE SPECIFIC HEAT C PSPV SPECIFIC HEAT OF DIFFUSING VAPOR C TIME CURRENT TIME C ALPH CURRENT TIME INCREMENT C FLDN FLUID DENSITY C FLVS FLUID VISCOSITY C FLSP FLUID SPECIFIC HEAT C FLKN FLUID CONDUCTIVITY C FLDF DIFFUSIVITY COEFFICIENT OF SPECIE IDSPC C PSAT SATURATION PRESSURE C PCLTB BOILING TEMPERATURE C VARI ARRAY OF SOLUTION VARIABLES AT PARTICLE LOCATION C DVARI GRADIENTS OF SOLUTION VARIABLES AT PARTICLE LOCATION C LDOFU POINTER ARRAY FOR ACCESSING VARI AND DVARI INFORMATION C XYZL X,Y,Z COORDINATES C IOPT USER OPTION FLAG C #include "IMPLCT.COM" #include "PARUSR.COM" #include "TAPES.COM" DIMENSION XYZL(NDFCD),VARI(*),DVARI(NDFCD,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 C IF (INDP.EQ.1) THEN CALL ERMSGP (7500,1,2,1,IOUT,BATCH,0,0,0,0,0,ZRO,ZRO, 1 'DRAG COEFFICIENT (USRPRT)',' ',' ') ELSEIF (INDP.EQ.2) THEN CALL ERMSGP (7500,1,2,1,IOUT,BATCH,0,0,0,0,0,ZRO,ZRO, 1 'SHERWOOD NUMBER (USRPRT)',' ',' ') ELSEIF (INDP.EQ.3) THEN CALL ERMSGP (7500,1,2,1,IOUT,BATCH,0,0,0,0,0,ZRO,ZRO, 1 'NUSSELT NUMBER (USRPRT)',' ',' ') ENDIF RETURN END C SUBROUTINE USRPSI (NELT,NE,NG,COEF,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR,IOPT) C C USER DEFINED SECOND ORDER FLUID COEFFICIENTS C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = PSI(IOPT) FOR THE SECOND ORDER FLUID C VARI = ARRAY OF SOLUTION VARIBLES AT INTEGRATION POINTS C DVARI = GRADIENTS OF SOLUTION VARIABLES AT INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C SHP = ELEMENT SHAPE FUNCTIONS C DSDX = SHAPE FUNCTION DERIVATIVES IN THE X,Y,Z DIRECTION C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C C IOPT = 1 - FIRST COEFFICIENT FOR SECOND ORDER FLUID C IOPT = 2 - SECOND COEFFICIENT FOR SECOND ORDER FLUID C #include "IMPLCT.COM" #include "PARUSR.COM" #include "TAPES.COM" DIMENSION COEF(NPTS) DIMENSION SHP(MNDP,NPTS),DSDX(MNDP,NPTS,NDFCD),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),DVARI(NPTS,NDFCD,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'SECOND ORDER VISCOSITY (USRPSI)',' ',' ') RETURN END C SUBROUTINE USRREF (NELT,NE,NG,REFENV,VARI,NDFCD,LDOFU, 1 XYZL,PROP,TIME,NPTS,IPRP,IERR) C C USER DEFINED REFERENCE ENVIRONMENTAL CONDITION C FOR BOUNDARY CONDITIONS WITH VARYING ENVIRONMENTS C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C REFENV = USER DEFINED ENVIRONMENTAL REFERENCE C VARI = SOLUTION VARIABLE ARRAY AT THE INTEGRATION POINTS C XYZL = X,Y,Z COORDINATES C PROP = USER DEFINED PARAMETERS C TIME = TIME C NPTS = NUMBER OF POINTS C IPRP = 0 - TEMPERATURE FOR CONVECTION C I - SPECIES I C -1 - TEMPERATURE FOR EMISSIVITY (RADIATION) C -2 - PRESSURE C #include "IMPLCT.COM" #include "TAPES.COM" #include "PARUSR.COM" DIMENSION REFENV(NPTS),VARI(NPTS,*),XYZL(NPTS,*),PROP(*),LDOFU(*) ZRO = 0.D0 C IERR = 1 if ( iprp.eq.-1 ) then C C user defined pressure for free surfaces C CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'REFERENCE PRESSURE (USRREF)',' ',' ') elseif ( iprp.eq.0 ) then C C user defined reference temperature for C convection heat transfer and radiation C CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'REFERENCE TEMPERATURE (USRREF)',' ',' ') else C C user defined reference species concentration C CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'REFERENCE CONCENTRATION (USRREF)',' ',' ') endif RETURN END C SUBROUTINE USRrgh (NELT,NE,NG,rough,xl,yl,zl,PROP,NPTS,IERR) C C USER DEFINED surface roughness C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C rough = surface roughness c xl = x coordinates c yl = y coordinates c zl = z coordinates C PROP = USER DEFINED PARAMETERS C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "PARUSR.COM" #include "TAPES.COM" DIMENSION rough(NPTS),xl(npts),yl(npts),zl(npts),PROP(*) ZRO = 0.D0 C CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'ROUGHNESS (USRRGH)',' ',' ') RETURN END c SUBROUTINE USRSLP (NELT,NE,NG,COEF,VARI,NDFCD,LDOFU,SHP,XYZL, 1 PROP,TIME,NPTS,ndp,MNDP,IERR,utng) C C COEF = SLIP COEFFICIENT C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = MELT LIQUIDUS C VARI = SOLUTION VARIABLE ARRAY AT THE INTEGRATION POINTS C UTNG = TANGENTIAL VELOCITY COMPONENT C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "TAPES.COM" #include "PARUSR.COM" DIMENSION COEF(NPTS),SHP(MNDP,NPTS),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),LDOFU(*),utng(npts) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'SLIP COEFFICIENT (USRSLP)',' ',' ') RETURN END C SUBROUTINE USRSPH (NELT,NE,NG,COEF,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED SPECIFIC HEAT C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = SPECIFIC HEAT C VARI = ARRAY OF SOLUTION VARIBLES AT INTEGRATION POINTS C DVARI = GRADIENTS OF SOLUTION VARIABLES AT INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C SHP = ELEMENT SHAPE FUNCTIONS C DSDX = SHAPE FUNCTION DERIVATIVES IN THE X,Y,Z DIRECTION C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "TAPES.COM" #include "PARUSR.COM" DIMENSION COEF(NPTS) DIMENSION SHP(MNDP,NPTS),DSDX(MNDP,NPTS,NDFCD),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),DVARI(NPTS,NDFCD,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'SPECIFIC HEAT (USRSPH)',' ',' ') RETURN END C SUBROUTINE USRSPT (NELT,NE,NG,COEF,VARI,NDFCD,LDOFU,SHP,XYZL, 1 PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED SPECIES TRANSFER COEFFICIENT C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = SPECIES TRANSFER COEFFICIENT C VARI = SOLUTION VARIABLE ARRAY AT THE INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "TAPES.COM" #include "PARUSR.COM" DIMENSION COEF(NPTS),SHP(MNDP,NPTS),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'MASS TRANSFER COEF. (USRSPT)',' ',' ') RETURN END C SUBROUTINE USRSRF (NELT,NE,NG,COEF,VARI,NDFCD,LDOFU,SHP,XYZL, 1 PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED SURFACE TENSION C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = SURFACE TENSION C VARI = SOLUTION VARIABLE ARRAY AT THE INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "TAPES.COM" #include "PARUSR.COM" DIMENSION COEF(NPTS),SHP(MNDP,NPTS),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'SURFACE TENSION (USRSRF)',' ',' ') RETURN END C SUBROUTINE USRVAP (NELT,NE,NG,COEF,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED SPECIFIC HEAT C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = VAPOR PRESSURE C VARI = ARRAY OF SOLUTION VARIBLES AT INTEGRATION POINTS C DVARI = GRADIENTS OF SOLUTION VARIABLES AT INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C SHP = ELEMENT SHAPE FUNCTIONS C DSDX = SHAPE FUNCTION DERIVATIVES IN THE X,Y,Z DIRECTION C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "TAPES.COM" #include "PARUSR.COM" DIMENSION COEF(NPTS) DIMENSION SHP(MNDP,NPTS),DSDX(MNDP,NPTS,NDFCD),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),DVARI(NPTS,NDFCD,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'VAPOR PRESSURE(USRVAP)',' ',' ') RETURN END C SUBROUTINE USRVSC (NELT,NE,NG,VISC,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED VISCOSITY C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C VISC = VISCOSITY C VARI = ARRAY OF SOLUTION VARIBLES AT INTEGRATION POINTS C DVARI = GRADIENTS OF SOLUTION VARIABLES AT INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C SHP = ELEMENT SHAPE FUNCTIONS C DSDX = SHAPE FUNCTION DERIVATIVES IN THE X,Y,Z DIRECTION C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "TAPES.COM" #include "PARUSR.COM" DIMENSION VISC(NPTS) DIMENSION SHP(MNDP,NPTS),DSDX(MNDP,NPTS,NDFCD),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),DVARI(NPTS,NDFCD,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'TEMP-DEPENDENT VISCOSITY (USRVSC)',' ',' ') RETURN END C SUBROUTINE USRYNG (NELT,NE,NG,COEF,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED ELASTICITY MODULUS C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = ELASTICITY MODULUS C VARI = SOLUTION VARIABLE ARRAY AT THE INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "TAPES.COM" #include "PARUSR.COM" DIMENSION COEF(NPTS),SHP(MNDP,NPTS),XYZL(NPTS,NDFCD) DIMENSION DSDX(MNDP,NPTS,NDFCD) DIMENSION DVARI(NPTS,NDFCD,*) DIMENSION PROP(*),VARI(NPTS,*),LDOFU(*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'ELASTICITY MODULUS (USRYNG)',' ',' ') RETURN END C SUBROUTINE USRPSN (NELT,NE,NG,COEF,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED POISSON COEFFICIENT C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = POISSON COEFFICIENT C VARI = SOLUTION VARIABLE ARRAY AT THE INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "TAPES.COM" #include "PARUSR.COM" DIMENSION COEF(NPTS),SHP(MNDP,NPTS),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),LDOFU(*) DIMENSION DSDX(MNDP,NPTS,NDFCD) DIMENSION DVARI(NPTS,NDFCD,*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'POISSON RATIO (USRPSN)',' ',' ') RETURN END C SUBROUTINE USRSEG (NELT,NE,NG,COEF,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED SOLUTE SEGREGATION COEFFICIENT C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = SOLUTE SEGREGATION COEFFICIENT C VARI = SOLUTION VARIABLE ARRAY AT THE INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "TAPES.COM" #include "PARUSR.COM" DIMENSION COEF(NPTS),SHP(MNDP,NPTS),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),LDOFU(*) DIMENSION DSDX(MNDP,NPTS,NDFCD) DIMENSION DVARI(NPTS,NDFCD,*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'SOLUTE SEGREGATION (USRSEG)',' ',' ') RETURN END C SUBROUTINE USRMOB (NELT,NE,NG,COEF,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED MOBILITY COEFFICIENT C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = MOBILITY COEFFICIENT C VARI = SOLUTION VARIABLE ARRAY AT THE INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "TAPES.COM" #include "PARUSR.COM" DIMENSION COEF(NPTS),SHP(MNDP,NPTS),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),LDOFU(*) DIMENSION DSDX(MNDP,NPTS,NDFCD) DIMENSION DVARI(NPTS,NDFCD,*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'MOBILITY COEFFICIENT (USRMOB)',' ',' ') RETURN END C SUBROUTINE USRELD (NELT,NE,NG,COEF,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED MOBILITY COEFFICIENT C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C COEF = ELECTRIC DIFFUSIVITY C VARI = SOLUTION VARIABLE ARRAY AT THE INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "TAPES.COM" #include "PARUSR.COM" DIMENSION COEF(NPTS),SHP(MNDP,NPTS),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),LDOFU(*) DIMENSION DSDX(MNDP,NPTS,NDFCD) DIMENSION DVARI(NPTS,NDFCD,*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'ELECTRIC DIFFUSIVITY (USRELD)',' ',' ') RETURN END C C SUBROUTINE USRSPR (NELT,NE,NG,HC,VARI,DVARI,NDFCD,LDOFU,SHP, 1 DSDX,XYZL,PROP,TIME,NPTS,ndp,MNDP,IERR) C C USER DEFINED SPRING COEFFICIENT C C NELT = GLOBAL ELEMENT NUMBER C NE = LOCAL ELEMENT NUMBER C NG = GROUP NUMBER C HC = SPRING COEFFICIENT C VARI = SOLUTION VARIABLE ARRAY AT THE INTEGRATION POINTS C LDOFU = pointer array for accessing vari and dvari information C XYZL = X,Y,Z COORDINATES C PROP = USER DEFINED PARAMETERS C MNDP = FIRST DIMENSION OF SHAPE FUNCTION MATRICES C TIME = TIME C NPTS = NUMBER OF POINTS C #include "IMPLCT.COM" #include "TAPES.COM" #include "PARUSR.COM" DIMENSION HC(NPTS),SHP(MNDP,NPTS),XYZL(NPTS,NDFCD) DIMENSION PROP(*),VARI(NPTS,*),LDOFU(*) DIMENSION DSDX(MNDP,NPTS,NDFCD) DIMENSION DVARI(NPTS,NDFCD,*) ZRO = 0.D0 C IERR = 1 CALL ERMSGP (7500,1,2,1,IOUT,BATCH, 1 0,0,0,0,0,ZRO,ZRO, 2 'SPRING COEFFICIENT (USRSPR)',' ',' ') RETURN END