Thermal > User-Supplied Routines > QTRAN Arrays
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX''">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX''">   
QTRAN Arrays
The following is a list of the QTRAN data arrays to which user-supplied subroutines may require access. The variable dimensions for these arrays (e.g., J1, J2, ..., MAXT, etc.) are stored in the DIMS common block and may be found in the COMMONBLK file.
The following arrays are arranged in their order of common block declarations. The IA common blocks are Integer Array common blocks, while the RA common blocks are Real Arrays.
 
Note:  
While the documented array structures are valid for QTRAN, recognize that QTRAN is still a living code, and as such the array structures may change from time to time. Also recognize that the publishing of the array structures does not obligate our Hot Line staff to help with basic Fortran language questions. Further recognize that when the basic QTRAN logic is altered with the introduction of user software, it makes support extremely difficult if not impossible. The MSC.Software Corporation will not assume responsibility for software which has been linked to user-supplied subroutines.
 
Array Declarations
Common Blocks
LOGICAL PIVFLG(M1)
LA1
INTEGER JPROP(J1,J2)
IA1
INTEGER T1RH(J1)
IA2
INTEGER T2RH(J1)
IA3
INTEGER T3RH(J1)
IA4
INTEGER JTYPE(J1)
IA5
INTEGER RCPROP(J5)
IA6
INTEGER T1RC(J5)
IA7
INTEGER T2RC(J5)
IA8
INTEGER RCNPNT(J11)
IA9
INTEGER RHNPNT(J12)
IA10
INTEGER T1RR(J13)
IA11
INTEGER T2RR(J13
IA12
INTEGER T3RR(J13)
IA13
INTEGER IGTYPE(J13)
IA14
INTEGER IGPROP(J13)
IA15
INTEGER QCARD(J14,J15)
IA16
INTEGER IFLIST(J17,J16)
IA17
INTEGER QIPPNT(J17)
IA18
INTEGER ITLIST(J18,J19)
IA19
INTEGER RRNPNT(J20)
IA20
INTEGER FIXNUM(J21)
IA21
INTEGER FIXVAL(J21)
IA22
INTEGER PIDPAR(J22)
IA23
INTEGER PIDID(J24)
IA24
INTEGER IALIAS(MAXT)
IA25
INTEGER T1RW(J28)
IA26
INTEGER T2RW(J28)
IA27
INTEGER T3RW(J28)
IA28
INTEGER IWTYPE(J28)
IA29
INTEGER IWPROP(J28)
IA30
INTEGER RWNPNT(J29)
IA31
INTEGER TFIX(MAXT)
IA32
INTEGER CPROP(J36)
IA33
INTEGER CRHO(J36)
IA34
INTEGER RCN(MAXTNC)
IA35
INTEGER RHN(MAXTNH)
IA36
INTEGER RRN(MAXT)
IA37
INTEGER QIP(MAXT)
IA38
INTEGER RWN(MAXT)
IA39
INTEGER T1RF(J30)
IA40
INTEGER T2RF(J30)
IA41
INTEGER ICPFLO(J30,2)
IA42
INTEGER RFN(MAXT)
IA43
INTEGER CN(MAXT)
IA44
INTEGER MID(J3)
IA45
INTEGER PID(J22)
IA46
INTEGER MFID(J14)
IA47
INTEGER GSN(MAXT)
IA48
INTEGER GSNPNT(J26)
IA49
INTEGER ISTYPE(J25)
IA50
INTEGER ISEMIS(J25)
IA51
INTEGER TSURF(J26)
IA52
INTEGER NSURF1(J25)
IA53
INTEGER NSURF2(J25)
IA54
INTEGER SURPNT(J25)
IA55
INTEGER WSN(MAXT)
IA56
INTEGER WSNPNT(J26)
IA57
INTEGER IWSTYP(J25)
IA58
INTEGER IWSMID(J25)
IA59
INTEGER TWSURF(J26)
IA60
INTEGER NWSRF1(J25)
IA61
INTEGER NWSRF2(J25)
IA62
INTEGER WSRPNT(J25)
IA63
INTEGER RFNPNT(J31)
IA64
INTEGER T1CAPS(J36)
IA65
INTEGER CNPNT(J36)
IA66
INTEGER PIVROW(M1)
IA67
INTEGER INDRLX(MAXT)
IA68
INTEGER IPRLXC(MAXT)
IA69
INTEGER IRRLXC(MAXT)
IA70
INTEGER IPLTBK(MAXT)
IA71
INTEGER IRLXGR(J39,J43)
IA72
INTEGER IIDMNRF(8)
IA73
INTEGER T1RP(J44)
IA74
INTEGER T2RP(J44)
IA75
INTEGER PTYPE(J44)
IA76
INTEGER PPROP(J44,J46)
IA77
INTEGER RPN(MAXP)
IA78
INTEGER RPNPNT(J47)
IA79
INTEGER IMLIST(J48,J49)
IA80
INTEGER MIP(MAXP)
IA81
INTEGER MIPPNT(MAXP)
IA82
INTEGER IPLIST(J50,J51)
IA83
INTEGER PFIX(MAXP)
IA84
INTEGER PALIAS(MAXP)
IA85
INTEGER PIALAS(MAXP)
IA86
INTEGER HIALAS(MMPHI)
IA87
INTEGER TCPLND (J52)
IA88
INTEGER TCPLCN (J52)
IA89
INTEGER QMAVFG( J17 )
IA90
INTEGER GSRFLX( J13 )
IA91
INTEGER WSRFLX( J28 )
IA92
DOUBLE PRECISION GP(J1,J6)
RA1
DOUBLE PRECISION COEFF(J3,J4)
RA2
DOUBLE PRECISION EXPO(J3,J4)
RA3
DOUBLE PRECISION RCAL(J5)
RA4
DOUBLE PRECISION P(J7,J9)
RA5
DOUBLE PRECISION TX(J9,J10)
RA6
DOUBLE PRECISION TY(J9,J10)
RA7
DOUBLE PRECISION GSFACT(J13)
RA8
DOUBLE PRECISION SETTIM(J21)
RA9
DOUBLE PRECISION PIDSET(J22,J23)
RA10
DOUBLE PRECISION WSPROP(J28)
RA11
DOUBLE PRECISION WLPROP(J28)
RA12
DOUBLE PRECISION SFACTR(J28)
RA13
DOUBLE PRECISION WAREA(J28)
RA14
DOUBLE PRECISION CVOL(J36)
RA15
DOUBLE PRECISION TEMPS(MAXT)
RA16
DOUBLE PRECISION QVECT(MAXT)
RA17
DOUBLE PRECISION ALPHA(MAXT)
RA18
DOUBLE PRECISION OTEMPS(MAXT)
RA19
DOUBLE PRECISION RMDOT(J30)
RA20
DOUBLE PRECISION DTMAXA(J32,J33)
RA21
DOUBLE PRECISION PRINTA(J34,J35)
RA22
DOUBLE PRECISION GAREA(J13)
RA23
DOUBLE PRECISION QMFACT(J17)
RA24
DOUBLE PRECISION TMFACT(J18)
RA25
DOUBLE PRECISION QBASE(MAXT)
RA26
DOUBLE PRECISION SAREA(J26)
RA27
DOUBLE PRECISION SSFACT(J25)
RA28
DOUBLE PRECISION VFDIST(J25)
RA29
DOUBLE PRECISION GDIST(J13)
RA30
DOUBLE PRECISION WDIST(J28)
RA31
DOUBLE PRECISION WSAREA(J38)
RA32
DOUBLE PRECISION WSFACT(J37)
RA33
DOUBLE PRECISION WVFDIS(J37)
RA34
DOUBLE PRECISION WSLAM1(J37)
RA35
DOUBLE PRECISION WSLAM2(J37)
RA36
DOUBLE PRECISION TERROR(MAXT,J27)
RA37
DOUBLE PRECISION GVALCA(J5)
RA38
DOUBLE PRECISION QINMAC(MAXT)
RA39
DOUBLE PRECISION AVNODH(MAXT)
RA40
DOUBLE PRECISION FVAR(MAXT)
RA41
DOUBLE PRECISION MATRIX(M1,M1)
RA42
DOUBLE PRECISION XRCRDV(MAXT)
RA43
DOUBLE PRECISION YZCRDV(MAXT)
RA43
DOUBLE PRECISION ZCORDV(MAXT)
RA43
DOUBLE PRECISION RLXTBS(J39,J40)
RA44
DOUBLE PRECISION RLXTBT(J39,J40)
RA45
DOUBLE PRECISION RELAXV(MAXT)
RA46
DOUBLE PRECISION EFACTB(MAXT)
RA47
DOUBLE PRECISION RELAXM(MAXT)
RA48
DOUBLE PRECISION RERROR(MAXT,J41)
RA49
DOUBLE PRECISION RLXGRP(J39,J42)
RA50
DOUBLE PRECISION PGP(J44,J45)
RA51
DOUBLE PRECISION MMFACT(J48)
RA52
DOUBLE PRECISION PMFACT(J49)
RA53
DOUBLE PRECISION MDBASE(MAXP)
RA54
DOUBLE PRECISION MDBASE (MAXP)
RA55
DOUBLE PRECISION PRHOE(J44)
RA56
DOUBLE PRECISION VELOCP(MAXP)
RA57
DOUBLE PRECISION PRO(MAXP)
RA58
DOUBLE PRECISION OPRESS(MAXP)
RA2
DOUBLE PRECISION PRESS(MAXP)
RA59
DOUBLE PRECISION MDOTP(J44)
RA60
DOUBLE PRECISION MDOTND(MAXP)
RA61
DOUBLE PRECISION HYCCE(J44)
RA62
DOUBLE PRECISION DIFHED(J44)
RA63
DOUBLE PRECISION OTMXHA(J32)
RA64
DOUBLE PRECISION QMDOTP(J44)
RA65
DOUBLE PRECISION CRHOCM( J36 )
RA66
DOUBLE PRECISION RHONOD( MXTCMA )
RA67
DOUBLE PRECISION QDPYGS( MXTCMA )
RA68
DOUBLE PRECISION QMFLUX( MAXT )
RA69
DOUBLE PRECISION CNVFLX( MAXT )
RA70
DOUBLE PRECISION RADFLX( MAXT )
RA71
DOUBLE PRECISION QBASEA( MAXT )
RA72
DOUBLE PRECISION QBASEF( MAXT )
RA73
DOUBLE PRECISION QMFLAR( MAXT )
RA74
DOUBLE PRECISION CNVFAR( MAXT )
RA75
DOUBLE PRECISION RADFAR( MAXT )
RA76
In the following, the arrays have been grouped according to usage.
Node Number Alias Array
INTEGER IALIAS(MAXT) IA25
IALIAS(N) contains the model’s node number for QTRAN’s internal node number N. The sign of IALIAS(N) determines whether the node’s temperature will be printed out in the QOUTDAT file, with a negative sign indicating that it will be printed out and a positive sign indicating that it will not be printed out.
This whole process of “aliased” node numbers is necessary if a code is to allow nonsequential node numbering in the model. QTRAN essentially looks at the node numbers that are used in the model and then condenses out any node numbers which are not used in the model that lie between 1 and the largest node number specified. This adds some unfortunate complexity to the coding, but it allows more flexibility in modeling without incurring unacceptable performance costs.
A useful QTRAN subroutine for determining a QTRAN internal node number for a given model node number is subroutine GETNUM. The calling sequence for GETNUM is as follows:
CALL GETNUM( YNODE, QNODE, IALIAS, NTEMPS, MATCH )
where:  
INTEGER YNODE, QNODE, IALIAS(MAXT), NTEMPS LOGICAL MATCH
and YNODE is the node number from the model, QNODE is the QTRAN internal node number that QTRAN has assigned to YNODE (QNODE is returned by GETNUM), IALIAS is the node alias array, NTEMPS comes from the COMMONBLK file and is the number of nodes which have been defined in the model, and MATCH is returned as .TRUE. or .FALSE., depending on whether GETNUM was able to match YNODE in the IALIAS array.
 
Conductive Resistor Arrays
 
INTEGER T1RC(J5)
INTEGER T2RC(J5)
NTEGER RCPROP(J5)
DOUBLE PRECISION RCAL(J5)
DOUBLE PRECISION GVALCA(J5)
INTEGER RCN(MAXTNC)
INTEGER RCNPNT(J11)
IA7
IA8
IA6
RA4
RA38
IA35
IA9
T1RC(K) and T2RC(K) contain QTRAN’s internal node numbers for conductive resistor K’s nodes 1 and 2. RCPROP(K) contains trains internal MPID number for thermal conductivity for resistor K, and RCAL(K) contains the area/length ratio for conductive resistor K. If solution option 1 (SOL = 1 in the QINDAT file) is being used, GVALCA(K) contains the conductance (kA/L) for resistor K.
RCN(N) contains the number of conductive resistors associated with QTRAN’s internal node N. RCNPNT is a pointer array used by QTRAN to determine which conductive resistors are associated with a particular node, and is used in conjunction with the RCN array. If RCN(1) is 10, the first 10 elements of the RCNPNT are conductive resistors which are associated with QTRAN internal node number 1. The conductive resistors associated with QTRAN internal node number 2 (if any) would be contained in RCNPNT(11) to RCNPNT(10+RCN(2)).
 
Convective Resistor Arrays
 
INTEGER T1RH(J1)
INTEGER T2RH(J1)
INTEGER T3RH(J1)
INTEGER JTYPE(J1)
DOUBLE PRECISION GP(J1,J6)
INTEGER JPROP(J1,J2)
INTEGER RHN(MAXTNH)
INTEGER RHNPNT(J12)
IA2
IA3
IA4
IA5
RA1
IA1
IA36
IA10
The QTRAN internal node numbers associated with convective resistor K are stored in T1RH(K), T2RH(K), and T3RH(K), and the convective configuration (CFIG value) for convective resistor K is stored in JTYPE(K). The GP values for convective resistor K are stored in GP(K,1) through GP(K,J6) while the QTRAN internal MPID numbers for convective resistor K are stored in JPROP(K,1) through JPROP(K,J2).
RHN(N) is the number of convective resistors associated with node N. The RHNPNT array interacts with the RHN array in a manner similar to the conductive resistors and RCN/RCNPNT interactions.
 
Advective Resistor Arrays
 
INTEGER T1RF(J30)
INTEGER T2RF(J30)
INTEGER ICPFLO(J30,2)
DOUBLE PRECISION RMDOT(J30)
INTEGER RFN(MAXT)
INTEGER RFNPNT(J31)
IA40
IA41
IA42
RA20
IA43
IA64
The QTRAN internal node numbers associated with advective resistor K are stored in T1RF(K) and T2RF(K). The QTRAN internal MPID numbers associated with specific heat and with variable mass flow rate for advective resistor K are stored in ICPFLO(K,1) and ICPFLO(K,2), respectively. The constant mass flow rate (or flow rate multiplier) associated with advective resistor K is stored in RMDOT(K).
The RFN and RFNPNT arrays are analogous to the conductive resistor RCN and RCNPNT arrays.
 
Hydraulic Resistor Arrays
 
INTEGER T1RP(J44)
INTEGER T2RP(J44)
INTEGER PTYPE(J44)
DOUBLE PRECISION PGP(J44,J46)
INTEGER PPROP(J44,J46)
INTEGER RPN(MAXP)
INTEGER RHNPNT(J47)
IA74
IA75
IA76
RA1
IA77
IA78
IA79
The QTRAN internal node numbers associated with hydraulic resistor K are stored in T1RP(K) and T2RP(K), and the fluid configuration (FCFIG value) for hydraulic resistor K is stored in PTYPE(K). The GP values for hydraulic resistor K are stored in PGP(K,1) through PGP(K,J46) while the QTRAN internal MPID numbers for hydraulic resistor K are stored in PPROP(K,1) through PPROP(K,J46).
RPN(N) is the number of hydraulic resistors associated with node N. The RPNPNT array interacts with the RPN array in a manner similar to the conductive resistors and RCN/RCNPNT interactions.
The hydraulic network introduces an additional network that is solved as a separate group of nodes with its own solution procedure separate from the thermal network solution. This imposes some restriction on the node definitions. All hydraulic nodes must be specified before the purely thermal nodes are specified, but there is no restriction on how the nodes are to be numbered. As with gaps in the thermal nodes require an aliasing array to relate user nodes numbers to internal node number, the same is needed for the fluid nodes, plus index to relate internal node numbers to the internal thermal node numbers is required.
 
INTEGER PALIAS(MAXP)
INTEGER PIALAS(MAXP)
INTEGER HIALAS(MMPHI)
IA85
IA86
IA87
PALIAS(N) contains the model node number as specified by the user to the internal node number N. PIALAS(N) contains the internal thermal node number corresponding to the internal fluid node number N. HIALAS(N) contains the internal fluid node number corresponding to the internal thermal node number N.
 
Gray Radiative Resistor Arrays
 
INTEGER T1RR(J13)
INTEGER T2RR(J13)
INTEGER T3RR(J13)
INTEGER IGTYPE(J13)
INTEGER IGPROP(J13)
DOUBLE PRECISION GDIST(J13)
DOUBLE PRECISION GSFACT(J13)
DOUBLE PRECISION GAREA(J13)
INTEGER RRN(MAXT)
INTEGER RRNPNT(J20)
IA11
IA12
IA13
IA14
IA15
RA30
RA8
RA23
IA37
IA20
The QTRAN internal node numbers associated with gray radiative resistor K are stored in T1RR(K), T2RR(K), and T3RR(K). The resistor subtype for gray radiative resistor K is stored in IGTYPE(K), while the QTRAN internal MPID number associated with the resistor (for emissivity, transmissivity, or extinction coefficient) is stored in IGPROP(K). The view factor distance (if any) is stored in GDIST(K), the F value is stored in GSFACT(K), and the A value (if any) is stored in GAREA(K).
The RRN and RRNPNT arrays are analogous to the conductive resistor RCN and RCNPNT arrays.
 
Wavelength Radiative Resistor Arrays
INTEGER T1RW(J28)
INTEGER T2RW(J28)
INTEGER T3RW(J28)
INTEGER IWTYPE(J28)
INTEGER IWPROP(J28)
DOUBLE PRECISION WSPROP(J28)
DOUBLE PRECISION WLPROP(J28)
DOUBLE PRECISION SFACTR(J28)
DOUBLE PRECISION WAREA(J28)
DOUBLE PRECISION WDIST(J28)
INTEGER RWN(MAXT)
INTEGER RWNPNT(J29)
IA26
IA27
IA28
IA29
IA30
RA11
RA12
RA13
RA14
RA31
IA39
IA31
The QTRAN internal node numbers associated with wavelength-dependent radiative resistor K are stored in T1RW(K), T2RW(K), and T3RW(K). The resistor subtype for wavelength-dependent radiative resistor K is stored in IWTYPE(K), while the QTRAN internal MPID number associated with the resistor (for emissivity, transmissivity, or extinction coefficient) is stored in IWPROP(K). The view factor distance (if any) is stored in WDIST(K), the F value is stored in SFACTR(K), and the A value (if any) is stored in WAREA(K). The shortest and longest wavelengths associated with wavelength-dependent radiative resistor K are stored in WSPROP(K) and WLPROP(K), respectively.
The RWN and RWNPNT arrays are analogous to the conductive resistor RCN and RCNPNT arrays.
 
Capacitor Data Arrays
INTEGER T1CAPS(J36)
INTEGER CPROP(J36)
INTEGER CRHO(J36)
DOUBLE PRECISION CVOL(J36)
INTEGER PIDID(J24)
INTEGER CN(MAXT)
INTEGER CNPNT(J36)
IA65
IA33
IA34
RA15
IA24
IA44
IA66
The QTRAN internal node number for capacitor K is stored in T1CAPS(K), while the QTRAN internal specific heat, density, and phase change MPID numbers are stored in CPROP(K), CRHO(K), and PIDID(K), respectively. The volume associated with capacitor K is stored in CVOL(K).
The CN and CNPNT arrays are analogous to conductive resistor arrays RCN and RCNPNT.
 
Non-Phase Change Material Property Data Arrays
INTEGER MID(J3)
DOUBLE PRECISION COEFF(J3,J4)
DOUBLE PRECISION EXPO(J3,J4)
IA45
RA2
RA3
These arrays are used to store material property data if the MPID defined was NOT a phase change data set (IEVAL not set to PH in the QINDAT file). For these MPID sets, QTRAN stores the MPID numbers into the MID array in the order they appear in the QINDAT or MATDAT files. For QTRAN internal nemophilas change MPID number K, the MPID which is defined for this material is stored in MID(K).
The MDATA1 and MDATA2 values for QTRAN internal MPID K are stored in COEFF(K,2) to COEFF(K,J4) for MDATA1 and in EXPO(K,2) to EXPO(K,J4) for the MDATA2 values. COEFF(K,1) is used to store the number of MDATA1/MDATA2 data pairs, while EXPO(K,1) is used to store a numeric key for the evaluation option IEVAL. Specifically:
 
EXPO(K,1)
 
1 --> Constant
 
 
2 --> Table (linear unequal interval)
 
 
3 --> Hermite table
 
 
4 --> Power Series
 
 
5 --> Sutherland Equation
 
 
6 --> Bingham Equation
 
 
7 --> LCI data table
 
 
8 --> Reciprocal Function
 
 
9 --> Straight Line
 
 
10 --> Arbitrary Order Polynomial
 
 
11 --> User-Supplied Subroutine (UPROPS)
 
 
12 --> Indexed Linearly Interpolated Table
 
 
13 --> Indexed Hermite Interpolated Table
 
Phase Change Material Property Data Arrays
INTEGER PID(J22)
INTEGER PIDPAR(J22)
DOUBLE PRECISION PIDSET(J22,J23)
IA46
IA23
RA10
These arrays are used to store material property data if the MPID defined WAS a phase change data set (IEVAL set to PH in the QINDAT file). For these MPID sets, QTRAN stores your MPID numbers into the PID array in the order they appear in the QINDAT or MATDAT files. For QTRAN internal phase change MPID number K, the MPID which is defined for this material is stored in PID(K).
The MDATA1 and MDATA2 values for QTRAN internal phase change MPID K are stored in PIDSET(K,1) through PIDSET(K,J23). For phase change set K, the number of MDATA1/MDATA2 data pairs is stored in PIDPAR(K).
 
Microfunction Arrays
INTEGER MFID(J14)
INTEGER QCARD(J14,J15)
DOUBLE PRECISION P(J7,J9)
DOUBLE PRECISION TX(J9,J10)
DOUBLE PRECISION TY(J9,J10)
IA47
IA16
RA5
RA6
RA7
MFID(K) contains the microfunction ID number (MFID) for the K'th microfunction which is defined in the QINDAT or MICRODAT files.
QCARD(K,1) contains an argument code for the microfunction which specifies whether the microfunction is to be a function of time, temperature, delta temperature, delta T4, or average temperature. Values are 0, 1, 2, 3, and 4, respectively.
QCARD(K,2) stores the microfunction option number as per Microfunction Library (Ch. 10).
QCARD(K,3) contains the number of parameters or data pairs entered for MDATA1 and MDATA2.
QCARD(K,4) contains a row pointer L into the P or TX/TY arrays where the MDATA values for the microfunction are stored.
For the K'th microfunction, L is stored in QCARD(K,4). The parameters MICDAT1-MICDAT4 are stored in P(L,1) through P(L,4) for those microfunctions which use parameters. For tabular microfunctions, the MICDAT1/MICDAT2 ordered pairs are stored in TX(L,2) -TX(L,J10) for MICDAT1 values and TY(L,2)-TY(L,J10) for MICDAT2 values. TX(L,1) contains the number of MDATA data pairs, and TY(L,1) is not used.
 
QMACROfunction Arrays
INTEGER IFLIST(J17,J16)
DOUBLE PRECISION QMFACT(J17)
INTEGER QIP(MAXT)
INTEGER QIPPNT(J17)
IA17
RA24
IA38
IA18
For the K'th QMACROfunction, IFLIST(K,1) contains the QTRAN internal node number to which the heat source is assigned.
IFLIST(K,2) contains the number of microfunctions used to build this QMACROfunction.
IFLIST(K,3) contains the T1 QTRAN internal node number.
IFLIST(K,4) contains the T2 QTRAN internal node number.
IFLIST(5)-IFLIST( 4+IFLIST(K,2) ) contains the QTRAN internal microfunction ID's which are used to build this QMACROfunction.
QMFACT(K) contains the scale factor for the K'th QMACROfunction.
QIP and QIPPNT are analogous to the conductive resistor RCN and RCNPNT arrays, respectively.
 
MMACROfunction Arrays
INTEGER IMLIST(J48,J49)
INTEGER MIP(MAXP)
INTEGER MIPPNT(MAXP)
DOUBLE PRECISION MMFACT(J48)
IA80
IA81
IA8 2
RA52
For the K'th MMACROfunction, IMLIST(K,1) contains the QTRAN internal node number to which the fluid mass flow rate is assigned.
IMLIST(K,2) contains the number of microfunctions used to build this QMACROfunction.
IMLIST(K,3) contains the P1 QTRAN hydraulic internal node number.
IMLIST(K,4) contains the P2 QTRAN hydraulic internal node number.
IMLIST(5)-IPLIST( 4+IMLIST(K,2) ) contains the QTRAN internal microfunction ID's which are used to build this MMACROfunction.
MMFACT(K) contains the scale factor for the K'th MMACROfunction.
MIP and MIPPNT are analogous to the conductive resistor RCN and RCNPNT arrays, respectively.
 
TMACROfunction Arrays
INTEGER ITLIST(J18,J19)
DOUBLE PRECISION TMFACT(J18)
IA19
RA25
For the K'th TMACROfunction, ITLIST(K,1) contains the QTRAN internal node number to which the temperature source is assigned.
ITLIST(K,2) contains the number of microfunctions used to build this TMACROfunction.
ITLIST(K,3) contains the T1 QTRAN internal node number.
ITLIST(K,4) contains the T2 QTRAN internal node number.
ITLIST(5)-ITLIST( 4+ITLIST(K,2) ) contains the QTRAN internal microfunction IDs which are used to build this TMACROfunction.
TMFACT(K) contains the scale factor for the K'th TMACROfunction.
 
PMACROfunction Arrays
INTEGER IPLIST(J50,J51)
DOUBLE PRECISION PMFACT(J50)
IA83
RA53
For the K'th MMACROfunction, IPLIST(K,1) contains the QTRAN internal node number to which the temperature source is assigned.
IPLIST(K,2) contains the number of microfunctions used to build this MMACROfunction.
IPLIST(K,3) contains the P1 QTRAN internal hydraulic node number.
IPLIST(K,4) contains the P2 QTRAN internal node hydraulic number.
IPLIST(5)-IPLIST( 4+IPLIST(K,2) ) contains the QTRAN internal microfunction ID's which are used to build this MMACROfunction.
PMFACT(K) contains the scale factor for the K'th MMACROfunction.
 
Constant Nodal Heat Source Arrays
DOUBLE PRECISION QBASE(MAXT)
RA26
QBASE(N) is the constant nodal heat source value associated with QTRAN internal node number N. Once read from the QINDAT file in subroutine INPUT4, it is never updated by QTRAN. However, it can be modified by any of the User-Supplied subroutines.
 
Constant Nodal Mass Flow Rate Arrays
DOUBLE PRECISION MDBASE(MAXP)
RA54
MBASE(N) is the constant nodal net mass flow rate value associated with QTRAN internal node number N. Once read from the QINDAT file in subroutine INPUT4, it is never updated by QTRAN. However, it can be modified by any of the User-Supplied subroutines.
 
Nodal Hydraulic/Fluid Flow Arrays
DOUBLE PRECISION VELOCP(MAXP)
DOUBLE PRECISION PRHO(MAXP)
DOUBLE PRECISION OPRESS(MAXP)
DOUBLE PRECISION PRESS(MAXP)
DOUBLE PRECISION MDOTND(MAXP)
RA56
RA57
RA58
RA59
RA61
VELOCP is the average velocity at internal hydraulic node. PRHO is the average density at the internal hydraulic node. OPRESS is pressure from the previous interaction at the internal hydraulic node. PRESS is the current pressure at the internal hydraulic node. MDOTND is the net mass flow rate at the internal hydraulic node.
 
Elemental Hydraulic/Fluid Flow Arrays
DOUBLE PRECISION PRHOE(J44)
DOUBLE PRECISION MDOTP(J44)
DOUBLE PRECISION HYCCE(J44)
DOUBLE PRECISION DIFHED(J44)
DOUBLE PRECISION QMDOTP(J44)
RA55
RA60
RA62
RA63
RA65
These arrays define parameters that apply to the hydraulic elements rather than results at the node locations. PRHOE is the average fluid density throughout an element. MDOTP is the mass flow rate of fluid flowing in a given hydraulic element. HYCCE is the hydraulic conductance throughout a given element. DIFHED is the difference in static head from one side of a hydraulic element to the other. QMDOTP is the volumetric flow rate of the fluid flowing through a given element.
 
Node Classification Arrays (Fixed, Not Fixed, etc.)
INTEGER TFIX(MAXT)
INTEGER FIXNUM(J21)
DOUBLE PRECISION SETTIM(J21)
INTEGER FIXVAL(J21)
INTEGER PFIX(MAXP)
IA32
IA21
RA9
IA22
IA84
TFIX(N) contains the fixed, not fixed, or TMACROfunction controlled code for node N. The values are 0: for not fixed, 1 for fixed, and 2 for TMACROfunction controlled.
The QINDAT CFIX information is stored in the FIXNUM, SETTIM, and FIXVAL arrays. For the K'th CFIX data line in the QINDAT file, FIXNUM(K) contains the QTRAN internal node number whose TFIX classification is being changed, SETTIM(K) is the time at which the change is to occur, and FIXVAL(K) is the new TFIX control code (see TFIX above) which is 0, 1, or 2.
PFIX(N) contains the fixed or not fixed code for the internal hydraulic node N. The hydraulic fixed flag operates on the fluid pressure. If a Hydraulic node is fixed, the pressure at that node is fixed.
 
Node Temperature Arrays
DOUBLE PRECISION OTEMPS(MAXT)
DOUBLE PRECISION TEMPS(MAXT)
RA19
RA16
OTEMPS(K) is the temperature of internal node number K at the beginning of a time step for transient runs. It is not used for steady-state runs.
TEMPS(K) is the temperature of internal node number K for steady-state runs. It is also the temperature at time t+dt (the end of the time step) for transient runs.
The temperatures stored in these arrays are in the temperature scale specified by the QINDAT parameter ICCALC.
 
Temperature Error Arrays
DOUBLE PRECISION TERROR(MAXT,J27)
RA37
TERROR(N,1) through TERROR(N,J27) contains the iterative error for QTRAN internal node N for the last J27 iterations. TERROR(N,1) is the most recent iterative error while TERROR(N,J27) is the least recent iterative error. This array is used in conjunction with the EPSIT2 parameter for determining which nodes should continue to be iterated upon.
 
Net Nodal Heat Flow Array
DOUBLE PRECISION QVECT(MAXT)
RA17
QVECT(N) is the net nodal heat flow into QTRAN internal node number N, not including the heat flow to/from the capacitors associated with node N. This value is updated in subroutine CCAPAC.
 
Explicit Stable Time Step Array
DOUBLE PRECISION ALPHA(MAXT)
RA18
ALPHA(N) is the explicit stable time step associated with QTRAN internal node number N. It is updated in subroutine CCAPAC.
 
Time Step Adjustment Array
DOUBLE PRECISION DTMAXA(J32,J33)
DOUBLE PRECISION DTMXHA(J32)
RA21
RA64
DTMAXA is an array that is used to store the DTMAX adjustments. See QTRAN Run Control Parameters and Node Number Declarations (Ch. 8). The DTMAXA data pairs from the QINDAT file are stored in the DTMAXA array in the order in which they appear in the QINDAT file. DTMAXA(1,1) contains the number of DTMAXA data pairs in the QINDAT file. DTMAXA(1,2) contains a pointer to the next row of the DTMAXA array that will be used to adjust the DTMAX value. DTMAXA(K,1) contains the new DTMAX values, while DTMAXA(K,2) contains the implementation times.
DTMXHA is an array that contains the time step increment for hydraulic solutions. When time gets to the implementation time defined by DTMAXA(K,2), a new fluid time step DTMAXH is defined by DTMXHA(K).
 
Print Interval Adjustment Array
DOUBLE PRECISION PRINTA(J34,J35)
RA22
PRINTA is an array that is used to store the TPRINT adjustments. See QTRAN Run Control Parameters and Node Number Declarations (Ch. 8). The PRINTA data pairs from the QINDAT file are stored in the PRINTA array in the order in which they appear in the QINDAT file. PRINTA(1,1) contains the number of PRINTA data pairs in the QINDAT file. PRINTA(1,2) contains a pointer to the next row of the PRINTA array that will be used to adjust the TPRINT value. PRINTA(K,1) contains the new TPRINT values, while PRINTA(K,2) contains the implementation times.
 
Plot Block Nodes Array
INTEGER IPLTBK(MAXT)
IA71
This array stores the indexes of the node that are defined in the plot output block.
 
Node Locations Arrays
DOUBLE PRECISION XRCRDV(MAXT)
DOUBLE PRECISION YZCRDV(MAXT)
DOUBLE PRECISION ZCORDV(MAXT)
RA43
RA43
RA43
DOUBLE PRECISION XYZCRD(MAXT,3)
RA43
These array are in common block RA43 and contain the node locations in the global coordinate system. The locations are packed in the same order that the nodes were defined in the node definition block.
Note that all three arrays are in the same named common block. This is the same as referencing the values as a doubly dimensioned array XYZCRD( MAXT, 3 ). Since this type of array is loaded by column in Fortran, the unit dimension for the array can not be used to reference the arrays. Either the MAXT value must be input for the specific case being executed, another subroutine called where the MAXT argument is included as one of the parameters passed and included in the declaration statement or only a single dimensioned array is specified and the actual index is calculated. For example, if the single index is used, the index would indicate the x location but MAXT and 2*MAXT would have to be added for the y and z locations respectively.
Another point is that the radial dimension for axisymmetric translation is always in the XRCRDV and the z-axis dimension is always in the YZCRDV arrays regardless of which plane was used to create the model. Thus if a model was created in the zx plane with the z-axis being defined as the radial direction all radial dimension would be in the XRCRDV array and the z-axis dimension which would have been along the x-axis would be in the YZCRDV array.
 
Relaxation Parameters Arrays
INTEGER INDRLX(MAXT)
INTEGER IPRLXC(MAXT)
INTEGER IRRLXC(MAXT)
INTEGER IRLXGR(J39,J43)
DOUBLE PRECISION RLXTBS(J39,J40)
DOUBLE PRECISION RLXTBT(J39,J40)
DOUBLE PRECISION RELAXV(MAXT)
DOUBLE PRECISION EFACTB(MAXT)
DOUBLE PRECISION RELAXM(MAXT)
DOUBLE PRECISION RERROR(MAXT,J41)
DOUBLE PRECISION RLXGRP(J39,J42)
IA68
IA69
IA70
IA72
RA44
RA45
RA46
RA47
RA48
RA49
RA50
These arrays contain information related to calculations and printout of the relaxation parameters. The INDRLX, IPRLXC, and IRRLXC arrays are pointers that indicate the type of relaxation applied to a given node and counters which indicate if the relaxation parameter is to be updated. IRLXGR keeps the node IDs that have the greater iterative delta or system error for each type of node. RLXTBS and RLXTBT contain the relaxation parameters that are input through the QINDAT File. The first index is the node type, advection, radiation, etc. and the second index is the type of parameter: maximum value, damping factor, and multiplying factor. RELAXV is the relaxation parameter used by the specified node, EFACTB is the system error multiplier which is the measure of how quick the node is converging. RELAXM is the relaxation multiplier that is applied at each node. This is how under relaxation is applied. RERROR is the iterative delta associated with each node. The last three values are retained in the array with the first index representing the oldest value. RLXGRP is a summary of the maximum values encountered for each node group. This information is saved for print purposes.
 
Temperature Coupling Arrays
INTEGER TCPLND (NTCPL)
INTEGER TCPLCN (NTCPL)
IA88
IA89
The internal node ID contained in array TCPLND is lumped into internal node ID defined at the same position in array TCPLCN. Although the internal energy balanced is performed as though the TCPLND node is the same as the TCPLCN node, its individuality is retained and is updated after each converged iteration. NTCPL is the total number of temperature coupling and is defined in common block IB106. The arrays are originally sized with variable J52 which is defined in the DIMS Common Block.