The product distribution medium contains three subroutines that you can use for parameter processing:
pardim, parevl, and pardef.
*deck,pardim
subroutine pardim (cName,labl4,nDim,nxyz,cLabels)
c *** primary function: create a dimensioned parameter
c *dim,parm32,type,d1,d2,d3,cName1,cName2,cName3
c *dim,parm32,type,d1,cName1
c *dim,parm32,type,d1,d2,d3,d4,d5,cName1,cName2,cName3,cName4,cName5
c *** Notice - This file contains ANSYS Confidential information ***
c input arguments:
c cName (chr*32,sc,in) - the name of the parameter to create
c labl4 (chr*4,sc,in) - 'TABL' or 'ARRA' or 'CHAR' or 'STRI'
c nDim (int,sc,in) - Dimension of array
c nxyz (int,ar(nDim),in) - the dimensions of the array
c cLabels (chr*32,ar(nDim),in) - Names for the directions in table
c output arguments: none
*deck,parevl
subroutine parevl (ParName,nDim,subc,lvl,dpValue,chValue,kerr)
c *** primary function: find and evaluate a parameter
c *** Notice - This file contains ANSYS Confidential information ***
c input arguments:
c ParName (chr*(PARMSIZE),sc,in) - the name of the parameter
c (must be upper case, left justified)
c nDim (int,sc,in) - the number of subscripts (0,scaler)
c subc (dp,ar(*),in) - values for the subscripts (if any)
c lvl (int,sc,in) - 0,1 no error output 2, report error
c -1, set kerr flag with no anserr call
c output arguments:
c dpValue (dp,sc,out) - the value of the parameter (may be a
c packed character*8
c chValue (chr*(STRING_MAX_LENG),sc,out) - character output
c kerr (int,sc,out) - error flag (0,ok -1,output is packed
c 0=ok, 1=error, 2=error but TINY is used
c -2, output is string in chValue
*deck,pardef
subroutine pardef (cNameIn,ctype,nval,subc,valuein,kerr,string)
c *** primary function: add a parameter to parameter list
c
c *** Notice - This file contains ANSYS Confidential information ***
c
c input arguments:
c cNameIn (chr*(PARMSIZE),sc,in) - name of parameter
c cNameIn is a character variable that
c contains the name of the parameter that
c is to be defined. (Length = PARMSIZE characters)
c
c ctype (int,sc,in) - 0, dp 1,character 2,string
c ctype is an integer key which describes
c the type of data that the parameter data
c holds. This would also indicate the
c contents of "value" (arg 5).
c 0=double precision data
c 1=character data packed in value
c 2=character data in string
c
c nval (int,sc,in) - number of subscripts
c nval is the number of subscripts that the
c "cNameIn" (arg 1) contains.
c 1=single dimensioned variable (ex. x(10))
c 2=double dimensioned variable (ex. y(10,3))
c 3=triple dimensioned variable (ex. z(10,3,2))
c -1=delete this parameter from the internal
c tables.
c
c subc (dp,ar(*),in) - values of subscripts
c subc is a double precision vector that
c contains the subscripts of "cNameIn" (arg 1).
c There should be enough values defined to
c match "nval" (arg 3). For example if "x"
c was dimensioned as "x(10,3,2)" and you wanted
c to set "x(5,1,1)=123.0", then "nval" (arg 3)
c should be set to 3, and "subc" should be set
c to 5.0, 1.0, 1.0, and "value" (arg 5) should
c be 123.0. Another example is if "y" was
c dimensioned to as "y(20,20)" and you were
c setting "y(5,8)=987", then "nval" (arg 3) should
c be set to 2 and "subc" should be set to 5.0,
c 8.0, 0.0, and "value" (arg 5) should be 987.0.
c
c Remember subroutine "pardef" is only storing
c a data value of "cNameIn" or "cNameIn(x,y,z)". The
c proper dimensions were set by a "*dim" command.
c
c Please note that although the values of "subc"
c should be double precision, subroutine "pardef"
c uses the intrinsic "nint" (nearest integer)
c function to get and use the integer equivalent.
c
c You should also note the "nval" (arg 3) and
c "subc" (arg 4) must fall within the range that was
c set with a "*dim" or "*set" command or an error
c will occur.
c
c valuein(dp,sc,in) - the value for this parameter
c (should be a packed character*8 if
c ctype=1. To pack a char into a dp
c variable use "call chtodp(ch8,dp)".
c To unpack a dp variable into a char
c use "call dptoch(dp,ch8)" )
c Value is the data value that is to be stored for
c "cNameIn" (arg 1). If "ctype=1" (arg 2) then this
c value would be a "packed character" data from the
c "chtodp" Ansys function.
c
c output arguments:
c kerr (int,sc,out) - error flag (0=ok, 1=error)
c kerr is an integer error flag that is
c returned to the calling subroutine. Any
c non zero number would indicate an error
c was detected in subroutine "pardef"
c