<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Approximatrix Forums — Error identification]]></title>
		<link>https://forums.approximatrix.com/viewtopic.php?id=244</link>
		<atom:link href="https://forums.approximatrix.com/extern.php?action=feed&amp;tid=244&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in Error identification.]]></description>
		<lastBuildDate>Sun, 22 Sep 2013 22:01:18 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Error identification]]></title>
			<link>https://forums.approximatrix.com/viewtopic.php?pid=1000#p1000</link>
			<description><![CDATA[<p>Jeff, <br />Thanks, and solved. I got my code working, now on to debug!</p>]]></description>
			<author><![CDATA[null@example.com (NRGSIM)]]></author>
			<pubDate>Sun, 22 Sep 2013 22:01:18 +0000</pubDate>
			<guid>https://forums.approximatrix.com/viewtopic.php?pid=1000#p1000</guid>
		</item>
		<item>
			<title><![CDATA[Re: Error identification]]></title>
			<link>https://forums.approximatrix.com/viewtopic.php?pid=959#p959</link>
			<description><![CDATA[<p>The error you&#039;re seeing is due to indexing elements of an array beyond the bounds of that array.&nbsp; Looking in the original HeatBalFiniteDifferenceManager.f90, I can see that it is declared as:</p><div class="codebox"><pre><code>  REAL(r64), DIMENSION(40) :: MaterialProps !Temporary array to transfer material properties</code></pre></div><p>In your code, you are attempting to access values beyond the maximum index of 40.&nbsp; The compiler has detected this, and it is issuing an error.&nbsp; </p><p>You might need to simply enlarge the <em>MaterialProps</em> array to accommodate the additional entries.</p>]]></description>
			<author><![CDATA[null@example.com (jeff)]]></author>
			<pubDate>Tue, 03 Sep 2013 13:16:32 +0000</pubDate>
			<guid>https://forums.approximatrix.com/viewtopic.php?pid=959#p959</guid>
		</item>
		<item>
			<title><![CDATA[Re: Error identification]]></title>
			<link>https://forums.approximatrix.com/viewtopic.php?pid=958#p958</link>
			<description><![CDATA[<p>Jeff, <br />Thank you kindly for your advise. I have made it much farther in my project, have resolved lots of the issues in this post and have a new and much smaller problem.&nbsp; I get the following error messages:</p><p>&quot;C:\Program Files (x86)\Simply Fortran 2\mingw-w64\bin\gfortran.exe&quot; -c -o &quot;build\HeatBalFiniteDifferenceManager.o&quot; -g&nbsp; -cpp -ffree-line-length-none&nbsp; -Jmodules &quot;.\HeatBalFiniteDifferenceManager.f90&quot;<br />.\HeatBalFiniteDifferenceManager.f90:672.68:</p><p>&nbsp; &nbsp; Material(MaterNum)%TempEnthFreezing(5,2)&nbsp; &nbsp; =&nbsp; &nbsp; &nbsp;MaterialProps(41)&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Warning: Array reference at (1) is out of bounds (41 &gt; 40) in dimension 1<br />.\HeatBalFiniteDifferenceManager.f90:673.68:</p><p>&nbsp; &nbsp; Material(MaterNum)%TempEnthFreezing(6,1)&nbsp; &nbsp; =&nbsp; &nbsp; &nbsp;MaterialProps(42)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Warning: Array reference at (1) is out of bounds (42 &gt; 40) in dimension 1<br />.\HeatBalFiniteDifferenceManager.f90:674.68:</p><p>&nbsp; &nbsp; Material(MaterNum)%TempEnthFreezing(6,2)&nbsp; &nbsp; =&nbsp; &nbsp; &nbsp;MaterialProps(43)&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Warning: Array reference at (1) is out of bounds (43 &gt; 40) in dimension 1<br />.\HeatBalFiniteDifferenceManager.f90:675.69:</p><p>&nbsp; &nbsp; Material(MaterNum)%blank7&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp; &nbsp;MaterialProps(44)&nbsp; &nbsp; !Th<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Warning: Array reference at (1) is out of bounds (44 &gt; 40) in dimension 1<br />.\HeatBalFiniteDifferenceManager.f90:676.69:</p><p>&nbsp; &nbsp; Material(MaterNum)%blank8&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp; &nbsp;MaterialProps(45)&nbsp; &nbsp; !Th<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Warning: Array reference at (1) is out of bounds (45 &gt; 40) in dimension 1<br />.\HeatBalFiniteDifferenceManager.f90:677.79:</p><p>Material(MaterNum)%TempEnthCrystallizationPoint(1,1)&nbsp; &nbsp; =&nbsp; &nbsp; MaterialProps(46) <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Warning: Array reference at (1) is out of bounds (46 &gt; 40) in dimension 1<br />.\HeatBalFiniteDifferenceManager.f90:678.79:</p><p>Material(MaterNum)%TempEnthCrystallizationPoint(1,2)&nbsp; &nbsp; =&nbsp; &nbsp; MaterialProps(47) <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />For the following code:</p><p>&nbsp; &nbsp;Material(MaterNum)%TempEnthFreezing(5,2)&nbsp; &nbsp; =&nbsp; &nbsp; &nbsp;MaterialProps(41)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthFreezing(6,1)&nbsp; &nbsp; =&nbsp; &nbsp; &nbsp;MaterialProps(42)<br />&nbsp; &nbsp; Material(MaterNum)%TempEnthFreezing(6,2)&nbsp; &nbsp; =&nbsp; &nbsp; &nbsp;MaterialProps(43)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%blank7&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp; &nbsp;MaterialProps(44)&nbsp; &nbsp; !This value is not used anywhere&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%blank8&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp; &nbsp;MaterialProps(45)&nbsp; &nbsp; !This value is not used anywhere&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthCrystallizationPoint(1,1)&nbsp; &nbsp; =&nbsp; &nbsp; MaterialProps(46)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthCrystallizationPoint(1,2)&nbsp; &nbsp; =&nbsp; &nbsp; MaterialProps(47)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </p><p>The issue is that I do not see any problem with the code...</p><p>Any ideas?</p><p>Many thanks</p>]]></description>
			<author><![CDATA[null@example.com (NRGSIM)]]></author>
			<pubDate>Mon, 02 Sep 2013 16:35:08 +0000</pubDate>
			<guid>https://forums.approximatrix.com/viewtopic.php?pid=958#p958</guid>
		</item>
		<item>
			<title><![CDATA[Re: Error identification]]></title>
			<link>https://forums.approximatrix.com/viewtopic.php?pid=955#p955</link>
			<description><![CDATA[<p>It appears you do have some syntax errors.&nbsp; I can&#039;t speak to them specifically at this time (I&#039;m away from my desk this week).&nbsp; Is there any chance that the variables named &quot;alphanamep&quot; and others are already declared in other modules in your project?</p><p>I&#039;ll take a more detailed look at your source next week when I return.</p>]]></description>
			<author><![CDATA[null@example.com (jeff)]]></author>
			<pubDate>Wed, 28 Aug 2013 22:16:10 +0000</pubDate>
			<guid>https://forums.approximatrix.com/viewtopic.php?pid=955#p955</guid>
		</item>
		<item>
			<title><![CDATA[Re: Error identification]]></title>
			<link>https://forums.approximatrix.com/viewtopic.php?pid=954#p954</link>
			<description><![CDATA[<p>Jeff, <br />Thanks for your reply.&nbsp; Since compiling, actually I wound up realizing that my first pass at the code merge had issues, have now re-done the merge and now those warnings are no longer present but now I have new warnings/errors.&nbsp; Since this forum post is titled &quot;Error identification&quot; I will post my new questions here.. </p><p>A brief explanation of my project: I am working on the Energy Plus simulation engine module for modeling phase change materials V8.1. I am taking code that is an enhanced phase change model that was developed for V6 and merging to V8.1.&nbsp; I am working in a three pane text editor merging the enhanced PCM variables, functions and code blocks into the subroutines for V8.1.&nbsp; </p><p>New question(s),&nbsp; I wonder if there is a difference in compiler errors in red vs not in red? </p><p>Some of the new errors do not make much sense because they are directly conflicting with the working code, in the example below does it seem that the compiler warnings should be addressed, or is it just warning about issues that can be ignored? </p><p>I added the flag &#039;-x f95-cpp-input &#039; with the goal of stopping the compiler from complaining about code that should work and &#039;-fmax-errors=0&#039; to get the compiler to not stop at 25 warnings/errors.&nbsp; Still I get errors and the compiler does not build a binary.&nbsp; Also some messages seem to be less human readable that expected.&nbsp; Are these flags being used correctly? </p><p>Below is the compiler messages and below that is my code.. If anyone has any tips I would be very greatful. </p><p>&nbsp; &nbsp; &quot;C:\Program Files (x86)\Simply Fortran 2\mingw-w64\bin\gfortran.exe&quot; -c -o &quot;build\HeatBalFiniteDifferenceManager.o&quot; -g&nbsp; -cpp -ffree-line-length-none -x f95-cpp-input -fmax-errors=0&nbsp; -Jmodules &quot;.\HeatBalFiniteDifferenceManager.f90&quot;<br />.\HeatBalFiniteDifferenceManager.f90:522.58:</p><p>&nbsp; CHARACTER(len=MaxNameLength), DIMENSION(4) :: AlphaNameP<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Symbol &#039;alphanamep&#039; at (1) already has basic type of CHARACTER<br />.\HeatBalFiniteDifferenceManager.f90:523.57:</p><p>&nbsp; INTEGER&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; :: NumAlphaP <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Symbol &#039;numalphap&#039; at (1) already has basic type of INTEGER<br />.\HeatBalFiniteDifferenceManager.f90:524.59:</p><p>&nbsp; INTEGER&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; :: NumObjectsP<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Symbol &#039;numobjectsp&#039; at (1) already has basic type of INTEGER<br />.\HeatBalFiniteDifferenceManager.f90:532.29:</p><p>&nbsp; &nbsp; &nbsp; &nbsp; DO Loop=1,NumObjectsP<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />.\HeatBalFiniteDifferenceManager.f90:492.19:</p><p>&nbsp; &nbsp; DO Loop=1,vcMat<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2<br />Error: Variable &#039;loop&#039; at (1) cannot be redefined inside loop beginning at (2)<br />.\HeatBalFiniteDifferenceManager.f90:573.23:</p><p>&nbsp; &nbsp; DO Loop=1,CondFDMat<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />.\HeatBalFiniteDifferenceManager.f90:492.19:</p><p>&nbsp; &nbsp; DO Loop=1,vcMat<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2<br />Error: Variable &#039;loop&#039; at (1) cannot be redefined inside loop beginning at (2)<br />.\HeatBalFiniteDifferenceManager.f90:661.27:</p><p>&nbsp; &nbsp; &nbsp; &nbsp; DO Loop=1,CondFDMat<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />.\HeatBalFiniteDifferenceManager.f90:492.19:</p><p>&nbsp; &nbsp; DO Loop=1,vcMat<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2<br />Error: Variable &#039;loop&#039; at (1) cannot be redefined inside loop beginning at (2)<br />.\HeatBalFiniteDifferenceManager.f90:785.3:</p><p>END SUBROUTINE GetCondFDInput<br />&nbsp; &nbsp;1<br />Error: Expecting END DO statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:787:</p><p>SUBROUTINE InitHeatBalFiniteDiff<br />1<br />Error: Unclassifiable statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:805.46:</p><p>&nbsp; USE DataInterfaces, ONLY:SetupOutputVariable<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected USE statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:806.50:</p><p>&nbsp; USE DataSurfaces, ONLY: HeatTransferModel_CondFD<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected USE statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:808.77:</p><p>IMPLICIT NONE&nbsp; &nbsp; ! Enforce explicit typing of all variables in this routine<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected IMPLICIT NONE statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:820.43:</p><p>&nbsp; LOGICAL,SAVE&nbsp; &nbsp; &nbsp; &nbsp; :: MyEnvrnFlag=.TRUE.<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:821.20:</p><p>&nbsp; INTEGER :: SurfNum<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:822.40:</p><p>&nbsp; INTEGER :: ConstrNum&nbsp; &nbsp; ! Loop counter<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:823.24:</p><p>&nbsp; LOGICAL :: errorsFound<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Symbol &#039;errorsfound&#039; at (1) already has basic type of LOGICAL<br />.\HeatBalFiniteDifferenceManager.f90:895.3:</p><p>END SUBROUTINE InitHeatBalFiniteDiff<br />&nbsp; &nbsp;1<br />Error: Expecting END DO statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:898:</p><p>SUBROUTINE InitialInitHeatBalFiniteDiff<br />1<br />Error: Unclassifiable statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:917.56:</p><p>&nbsp; USE General,&nbsp; &nbsp; &nbsp; ONLY : TrimSigDigits, RoundSigDigits<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected USE statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:918.51:</p><p>&nbsp; USE DataSurfaces, ONLY : HeatTransferModel_CondFD<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected USE statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:919.81:</p><p>DataHeatBalance, Only: HighDiffusivityThreshold, ThinMaterialLayerThreshold<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected USE statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:921.74:</p><p>&nbsp; IMPLICIT NONE ! Enforce explicit typing of all variables in this routine<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected IMPLICIT NONE statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:936.38:</p><p>&nbsp; Logical,Save :: OneTimeFlag = .true.<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:937.16:</p><p>&nbsp; INTEGER :: Lay<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:938.20:</p><p>&nbsp; INTEGER :: SurfNum<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:939.41:</p><p>&nbsp; CHARACTER(len=MaxNameLength) :: LayChar<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:941.112:</p><p> ! Intermediate calculation of nodal spacing. This is the full dx. There is<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:943.128:</p><p>ntermediate calculation for number of full thickness nodes per layer. There<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:945.38:</p><p>&nbsp; INTEGER :: Layer&nbsp; &nbsp; &nbsp; ! Loop counter<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:946.81:</p><p>GER :: OutwardMatLayerNum ! layer index, layer outward of the current layer<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:947.22:</p><p>&nbsp; INTEGER :: layerNode<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:948.17:</p><p>&nbsp; INTEGER :: Delt<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:949.40:</p><p>&nbsp; INTEGER :: ConstrNum&nbsp; &nbsp; ! Loop counter<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:950.40:</p><p>&nbsp; INTEGER :: TotNodes&nbsp; &nbsp; &nbsp;! Loop counter<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:951.40:</p><p>&nbsp; INTEGER :: CurrentLayer ! Loop counter<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:952.40:</p><p>&nbsp; INTEGER :: Surf&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! Loop counter<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:953.41:</p><p>&nbsp; INTEGER :: index&nbsp; &nbsp; &nbsp; &nbsp; ! Loop Counters<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:955.20:</p><p>&nbsp; REAL(r64) :: Alpha<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:956.21:</p><p>&nbsp; REAL(r64) :: Malpha<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:957.28:</p><p>&nbsp; REAL(r64) :: stabilitytemp<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:958.29:</p><p>&nbsp; REAL(r64) :: stabilitymoist<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:959.16:</p><p>&nbsp; REAL(r64) :: a<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:960.16:</p><p>&nbsp; REAL(r64) :: b<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:961.16:</p><p>&nbsp; REAL(r64) :: c<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:962.16:</p><p>&nbsp; REAL(r64) :: d<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:963.17:</p><p>&nbsp; REAL(r64) :: kt<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:964.19:</p><p>&nbsp; REAL(r64) :: RhoS<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:965.18:</p><p>&nbsp; REAL(r64) :: Por<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:966.17:</p><p>&nbsp; REAL(r64) :: Cp<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:967.17:</p><p>&nbsp; REAL(r64) :: Dv<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:968.24:</p><p>&nbsp; LOGICAL :: errorsFound<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Symbol &#039;errorsfound&#039; at (1) already has basic type of LOGICAL<br />.\HeatBalFiniteDifferenceManager.f90:969.91:</p><p>eltaTimestep&nbsp; &nbsp; &nbsp; ! zone timestep in seconds, for local check of properties<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:970.107:</p><p>d ! min thickness consistent with other thermal properties, for local check<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:1384.3:</p><p>END SUBROUTINE InitialInitHeatBalFiniteDiff<br />&nbsp; &nbsp;1<br />Error: Expecting END DO statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:1386:</p><p>SUBROUTINE CalcHeatBalFiniteDiff(Surf,TempSurfInTmp,TempSurfOutTmp)<br />1<br />Error: Unclassifiable statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:1413.44:</p><p>&nbsp; USE General,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ONLY : RoundSigDigits<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected USE statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:1414.47:</p><p>&nbsp; USE DataHeatBalance, ONLY : CondFDRelaxFactor<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected USE statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:1415.47:</p><p>&nbsp; USE DataGlobals,&nbsp; &nbsp; &nbsp;ONLY : KickOffSimulation<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; at (1)<br />.\HeatBalFiniteDifferenceManager.f90:1442.15:</p><p>&nbsp; INTEGER&nbsp; :: J<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:1443.17:</p><p>&nbsp; INTEGER&nbsp; :: Lay<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />Error: Urstt<br /> SD)htrI)&nbsp; &nbsp; &nbsp; &nbsp; rnrnr2</p><br /><p>E s .FfMf0<br />UNce1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected ELSE statement at (1)<br />.\HeatBce:UEeC(,uTvoT,l<br />E:abaa<br />tifoe HnBDeer:6elc L.&nbsp; \ieiecn.004<br />IGRiine)4 .: E:a<br />&nbsp; &nbsp; rnttlotta s1aii7E4TO r tf dun&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> p acasm <br />alifer:8r:avDWd oi ll<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rUca&nbsp; &nbsp; &nbsp; <br />:eacitmt)\Btfce:5 L&nbsp; l!n i&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />Uthr,\era.7<br />&nbsp; &nbsp; CTt)<br />&nbsp; &nbsp; &nbsp; &nbsp;1rTu,HlCeLC&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />:p c&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />rxe&nbsp; &nbsp; &nbsp;EUtTU\aien.0(ai((e ets*)&nbsp; r Iia93<br />(,, taMcoMSHu) 0&nbsp; &nbsp; &nbsp; rUtA Oea<br />tning:&nbsp; &nbsp;rtfo(iieenr019<br />&nbsp; T)aSepiMMuemiD&nbsp; rmt)vaie.1 I- gar&nbsp; ogt(Heef<br /> OIEeoBn <br />oxiEOt,&nbsp; &nbsp;eenn)trg<br />)R! CPREEA <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />6DI,T)h!ie1&nbsp; pra<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rUe r mt<br />Hlt oeaifee:3<br />(&nbsp; ptP&nbsp; &nbsp; &nbsp; 1oxd r ra e <br />alDeM.84<br />&nbsp; &nbsp;sgrt)&nbsp; &nbsp; &nbsp; &nbsp; rUcA Nm )anfee:I&nbsp; &nbsp;rndMN t)aifcg046<br />ae&nbsp; <br />rpSNIt=&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;oxd)&nbsp; &nbsp; &nbsp; edM<br />IF1ue,Hl,HqM&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rUcTNCse .Bifee:6&nbsp; &nbsp; &nbsp; eeit&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1oeeT -Fta<br />aiina94<br />&nbsp; &nbsp; &nbsp;hatSI<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;I),M2tStPptdOn Drcitt<br />nfee:4 IEfpt llisi&nbsp; &nbsp; &nbsp; 1 xte&nbsp; &nbsp; &nbsp; rptrta\g3<br />(&nbsp; <br />xd eaf5<br />rii:eup&nbsp; &nbsp; &nbsp; 1 e9.<br />L&nbsp; &nbsp; 1t1<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;redl m(ate::A&nbsp; &nbsp;1,C e 4:3204.4: 6 STo&nbsp; &nbsp; &nbsp; &nbsp;E edettn(Hlea:R0 iM9 4S&nbsp; &nbsp;Eedata\FiM90E 1 ttg3<br />r ale \l6hn, il&nbsp; &nbsp; &nbsp;xuyelIl&nbsp; &nbsp;<br /> mnaiu<br />BifMf&nbsp; &nbsp;agTee)<br />&nbsp; &nbsp;aFne:3&nbsp; &nbsp; &nbsp;anea=&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rntTFNa(<br />icr8:&nbsp; &nbsp; &nbsp;O h&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; oec EFIta<br />HlDea.:2:&nbsp; &nbsp; &nbsp; &nbsp; ahMaaI-&nbsp; &nbsp; &nbsp;T<br />&nbsp; &nbsp; &nbsp; &nbsp;x&nbsp; &nbsp; .inr53<br />DcuaDaetCeLC&nbsp; &nbsp; &nbsp; &nbsp;r1v(HtCan r8:&nbsp; &nbsp;seet<br />&nbsp; &nbsp; &nbsp; <br />rpTF (eifaf5:(Hs&nbsp; <br />) )Ficr7<br />&nbsp; &nbsp;seat-&nbsp; &nbsp; &nbsp; &nbsp;1oxSNOm Hien07&nbsp; &nbsp;han<br />&nbsp; &nbsp;1Hennn&nbsp; &nbsp; &nbsp;<br />rntTFOt <br />tniee:8:(es T)n(cs )&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rtSEtI1aeg8<br />&nbsp; hO&nbsp; &nbsp; refoticiHnfcg0.<br />,T eptCe&nbsp; &nbsp; &nbsp; &nbsp;<br /> eETf1<br /> atTn ei(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Ed&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-n1ee::Dc1,,t,aP&nbsp; &nbsp; &nbsp; 1een.5<br />T u2CHd&nbsp; &nbsp; &nbsp; &nbsp; <br />oTTe HlDeg36<br />eanI(vpr*)&nbsp; &nbsp; &nbsp; &nbsp; rp )&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ox NTa <br />tiea.1<br />&nbsp; &nbsp;PhMlt2&nbsp; &nbsp; &nbsp; &nbsp;<br />ox EFNn1ainaf02<br />&nbsp; ShaTr&gt;E&nbsp; &nbsp; reeatt aPSetiM&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rdFt een9:,,u aCt<br />&nbsp; &nbsp; :&nbsp; &nbsp; &nbsp; &nbsp; <br />rpSEN neM.0&nbsp; &nbsp; Pr&nbsp; &nbsp; &nbsp; &nbsp;<br />rntTFNtt \BAoMes Bia4<br />e*E r&nbsp; &nbsp; &nbsp; &nbsp; r TNNe1eFina93<br />&nbsp; &nbsp; &nbsp;Calc&nbsp; rcTU m nfa9<br />&nbsp; &nbsp;)&nbsp; &nbsp; &nbsp; &nbsp; EndEN e(\Ffn:1 aiIh&nbsp; (gne&nbsp; &nbsp; <br />Udt e1atne3<br />&nbsp; aMS=&nbsp; &nbsp; &nbsp; reeMNNt<br />line4&nbsp; &nbsp;aig uacoMeti)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:eSENUNtt(\ifnn.4:T&nbsp; hB&nbsp; &nbsp; rneTTTNt )eifMr:1&nbsp; &nbsp; <br />rp MUNet<br />tnfcg0(21 .:pti*IEd HaoD)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />:p MUNm .Bifee:6<br />&nbsp; &nbsp; &nbsp;eea&nbsp; &nbsp;ox MFIsn(\aerae4:&nbsp; &nbsp;ep&nbsp; &nbsp; be1tnce4 e :ie.i&nbsp; &nbsp;c u<br />aiicg01<br />(cu ,a eiStd<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rneTh&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />rUpeTTNUIset(<br />\BiDrMe93:SeTt*TeM6<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1rx EUNet)eFtira.42:(HTs )R-SHroI<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; E eATIat1eFDea93<br />,),M2l ei eu)&nbsp; &nbsp;f&nbsp; e)tn5&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;EUtOta1Hl9dcq2&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rntTTI,&nbsp; &nbsp; &nbsp; &nbsp;E xtdSMTNOtma1\aliDfeae.:62<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PsnMeate)0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;e:SatrarHSaPeu&nbsp; &nbsp; &nbsp;reSECta.lDc9.<br />&nbsp; &nbsp; Cat&nbsp; &nbsp; &nbsp;)<br />Eae)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rntA N m .Bnirn9.<br />Hn2In3d STATEMENT FUNCTION statement at (1)<br />.\HeatBalFiniteDifferenceManager.f90:4829.18Seai2T(f0 iee4:R4S:Tn:e dh&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />:d&nbsp; &nbsp; &nbsp; 1rxa Iet :t te(aira4<br />cae da(ol&nbsp; &nbsp; &nbsp; &nbsp; 1 eenmn t\icr034:o&nbsp; &nbsp; &nbsp;1rpaa mt<br />Bir0<br />L :TM&nbsp; &nbsp; &nbsp;1rpdctaa<br />DeeUse .Biea.2:&nbsp; &nbsp;hatSI&nbsp; &nbsp; &nbsp; &nbsp; <br />rxdMtnfee:6<br />&nbsp; &nbsp; &nbsp;sgra&nbsp; &nbsp; &nbsp; &nbsp;dFNe )anfeager.f9<br />&nbsp; Pnn(<br />&nbsp; &nbsp; &nbsp;rUxtTNNtnt<br />tieMg01<br />alpoCcu&nbsp; Mteo(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; reeETst1eFfce2<br />TFFae,onTTTa )tta2:&nbsp; ra i c<br />aiee:2aT&nbsp; eSSMHu)&nbsp; &nbsp; &nbsp; &nbsp;1a)ATice:1<br />TcuaDMcl eu)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; E eSEN mt<br />tieMr52 PaeR<br />&nbsp; &nbsp;E:aefc ueHBFeee94.:<br />&nbsp; &nbsp;T(dllNau 20e*xRs<br />&nbsp; &nbsp; 1o e&nbsp; &nbsp;)eFDne5:rNI&nbsp; u itCL <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;E cta am .BieMr52R6t&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1<br />Error: Unexpected data declaration statement at (1)<br />.\HeatBalFi&nbsp; &nbsp; &nbsp; &nbsp; <br />rxd r e H6 :a&nbsp; &nbsp; &nbsp; oeeaanea<br />aiina94<br />L&nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp;<br />:p dase .Bifee59R6&nbsp; <br />:5561.52:</p><p>&nbsp; INTEGER, INTENT(IN)&nbsp; &nbsp;:: SurfNum&nbsp; ! surface number<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Er<br />* Complete *</p><p>CODE EXAMPLE BELOW HERE:<br />MODULE HeatBalFiniteDiffManager</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Module containing the heat balance simulation routines</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! MODULE INFORMATION:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp;AUTHOR&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Richard J. Liesen<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp;DATE WRITTEN&nbsp; &nbsp;October 2003<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp;RE-ENGINEERED&nbsp; Curtis Pedersen, 2006, Changed to Implicit FD calc for conduction.<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; and included enthalpy formulations for phase change materials<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! PURPOSE OF THIS MODULE:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! To encapsulate the data and algorithms required to<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! manage the fiite difference heat balance simulation on the building.</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! METHODOLOGY EMPLOYED:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! REFERENCES:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! The MFD moisture balance method<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; C. O. Pedersen, Enthalpy Formulation of conduction heat transfer problems<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; involving latent heat, Simulation, Vol 18, No. 2, February 1972</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! OTHER NOTES:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! USE STATEMENTS:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Use statements for data only modules<br />USE DataPrecisionGlobals<br />USE DataGlobals, Only:MaxNameLength,KelvinConv,outputfiledebug, NumOfTimeStepInHour,DisplayExtraWarnings,&nbsp; &nbsp;&amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TimeStepZone,Hourofday,TimeStep,OutputFileInits,BeginEnvrnFlag,DayofSim,WarmupFlag,SecInHour<br />USE DataInterfaces<br />USE DataMoistureBalance<br />USE DataHeatBalance, Only: Material, TotMaterials,MaxLayersInConstruct, QRadThermInAbs,Construct,&nbsp; &nbsp; &nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TotConstructs,UseCondFD,RegularMaterial,Air,Zone<br />USE DataHeatBalSurface, Only: NetLWRadToSurf, QRadSWOutAbs, QRadSWInAbs,QRadSWOutMvIns, TempSource, &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OpaqSurfInsFaceConductionFlux,OpaqSurfOutsideFaceConductionFlux,&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OpaqSurfOutsideFaceConduction,QsrcHist,OpaqSurfInsFaceConduction,&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;QdotRadOutRepPerArea,MinSurfaceTempLimit,MaxSurfaceTempLimit,QdotRadNetSurfInRep,QRadNetSurfInReport<br />Use DataSurfaces, Only: Surface, TotSurfaces,Ground,SurfaceClass_Window, HeatTransferModel_CondFD<br />Use DataHeatBalFanSys, Only: Mat, ZoneAirHumRat, QHTRadSysSurf, QHWBaseboardSurf, QSteamBaseboardSurf, QElecBaseboardSurf<br />Use DataEnvironment, Only: SkyTemp, IsRain<br />USE Psychrometrics , Only:PsyRhFnTdbRhovLBnd0C,PsyWFnTdbRhPb,PsyHgAirFnWTdb<br />&nbsp; ! Fan system Source/Sink heat value, and source/sink location temp from CondFD<br />USE DataHeatBAlFanSys,&nbsp; ONLY: QRadSysSource,TCondFDSourceNode,QPVSysSource<br />USE HeatBalanceMovableInsulation,&nbsp; ONLY : EvalOutsideMovableInsulation</p><p>IMPLICIT NONE&nbsp; &nbsp;! Enforce explicit typing of all variables</p><p>PRIVATE&nbsp; &nbsp;!Make everything private except what is specifically Public</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! MODULE PARAMETER DEFINITIONS:<br />REAL(r64), PARAMETER :: Lambda=2500000.0d0<br />REAL(r64), PARAMETER :: smalldiff=1.d-8&nbsp; ! Used in places where &quot;equality&quot; tests should not be used.</p><p>INTEGER, PARAMETER :: CrankNicholsonSecondOrder = 1 ! original CondFD scheme.&nbsp; semi implicit, second order in time<br />INTEGER, PARAMETER :: FullyImplicitFirstOrder&nbsp; = 2 ! fully implicit scheme, first order in time.<br />CHARACTER(len=*), PARAMETER, DIMENSION(2) :: cCondFDSchemeType=&nbsp; &amp;<br />&nbsp; &nbsp;(/&#039;CrankNicholsonSecondOrder&#039;,&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp;&#039;FullyImplicitFirstOrder&nbsp; &#039;/)</p><p>REAL(r64),PARAMETER :: TempInitValue = 23.0d0&nbsp; &nbsp; ! Initialization value for Temperature<br />REAL(r64),PARAMETER :: RhovInitValue = 0.0115d0&nbsp; ! Initialization value for Rhov<br />REAL(r64),PARAMETER :: EnthInitValue = 100.0d0&nbsp; &nbsp;! Initialization value for Enthalpy</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! DERIVED TYPE DEFINITIONS:<br />TYPE, PUBLIC ::&nbsp; ConstructionDataFD<br />&nbsp; CHARACTER(len=MaxNameLength), ALLOCATABLE, DIMENSION(:) :: Name ! Name of construction<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: DelX&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;!<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: TempStability<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: MoistStability</p><p>&nbsp; Integer, ALLOCATABLE, DIMENSION(:) :: NodeNumPoint&nbsp; !<br />!&nbsp; INTEGER, ALLOCATABLE, DIMENSION(:) :: InterfaceNodeNums&nbsp; &nbsp;! Layer interfaces occur at these nodes</p><p>&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: Thickness<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: NodeXlocation ! sized to TotNode, contains X distance in m from outside face<br />&nbsp; INTEGER :: TotNodes=0</p><p>&nbsp; Integer :: DeltaTime=0</p><p>END TYPE ConstructionDataFD</p><br /><p>TYPE, PUBLIC :: SurfaceDataFD<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: T&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;!<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: TOld&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: TT<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: Rhov&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: RhovOld&nbsp; &nbsp; &nbsp; &nbsp;!<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: RhoT<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: TD&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: TDT&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: TempLastStep <br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: TDTLast<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: TDOld&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;!<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: TDreport<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: Enthreport<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: RH<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: RHreport<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: EnthOld&nbsp; &nbsp; &nbsp; &nbsp; ! Current node enthalpy<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: EnthNew&nbsp; &nbsp; &nbsp; &nbsp; ! Node enthalpy at new time<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: EnthLast<br />&nbsp; INTEGER&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:: GSloopCounter = 0 ! count of inner loop iterations<br />&nbsp; INTEGER&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:: GSloopErrorCount = 0 ! recurring error counter<br />&nbsp; REAL(r64)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:: MaxNodeDelTemp = 0.0d0 ! largest change in node temps after calc<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: EnthLastStep</p><p>&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: CpOld&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; !Node Enthalpy at old time<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: CpOld1&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; !Node Enthalpy at old time<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: CpOld2&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; !Node Enthalpy at old time for multiple material layer<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: Cp_node&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; !Node Enthalpy at old time<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: Cp1_node&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; !Node Enthalpy at old time for multiple material layer<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: Cp2_node&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; !Node Enthalpy at old time for multiple material layer&nbsp; <br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: PhaseChangeHeatTransferState&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; !Flag which determines which curve to use<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: PhaseChangeHeatTransferStateOld&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; !Flag which determines which curve to use based on PhaseChangeHeatTransferState <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !(it stores the value of previous timesteps PhaseChangeHeatTransferState)&nbsp; <br />&nbsp; INTEGER,&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: PhaseChangeTransition<br />&nbsp; INTEGER,&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: PhaseChangeTransitionOld<br />&nbsp; <br />&nbsp; Integer,&nbsp; &nbsp; &nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: PhaseChangeMaterialState&nbsp; &nbsp; &nbsp;!-2 liquid, -1 Melting, 0 Transition, 1 Freezing, 2 Solid <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; Integer,&nbsp; &nbsp; &nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: PhaseChangeMaterialStateold&nbsp; &nbsp; ! -2 liquid, -1 Melting, 0 Transition, 1 Freezing, 2 Solid <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! of previous timestep<br />&nbsp; Integer,&nbsp; &nbsp; &nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: PhaseChangeMaterialStateoldold !-2 liquid, -1 Melting, 0 Transition, 1 Freezing, 2 Solid <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! of timestep previous to previous timestep<br />&nbsp; REAL(r64),&nbsp; &nbsp; ALLOCATABLE, DIMENSION(:) :: PhaseChangeTemperatureReverse !Temperature at which the phase changes reverses its direction</p><p>END TYPE SurfaceDataFD</p><p>TYPE MaterialDataFD<br />&nbsp; REAL(r64) :: tk1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =0.0d0&nbsp; ! Temperature coefficient for thermal conductivity<br />&nbsp; INTEGER&nbsp; &nbsp;:: numTempEnth&nbsp; = 0&nbsp; &nbsp;! number of Temperature/Enthalpy pairs<br />&nbsp; INTEGER&nbsp; &nbsp;:: numTempCond&nbsp; = 0&nbsp; &nbsp;! number of Temperature/Conductivity pairs<br />&nbsp; REAL(r64), ALLOCATABLE, DIMENSION(:,:)&nbsp; :: TempEnth&nbsp; !&nbsp; Temperature enthalpy Function Pairs,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;!&nbsp; TempEnth(1,1)= first Temp, TempEnth(1,2) = First Enthalpy,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;!&nbsp; TempEnth(2,1) = secomd Temp, etc.<br />&nbsp; REAL(r64), ALLOCATABLE, DIMENSION(:,:)&nbsp; :: TempCond&nbsp; !&nbsp; Temperature thermal conductivity Function Pairs,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;!&nbsp; TempCond(1,1)= first Temp, Tempcond(1,2) = First conductivity,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;!&nbsp; TempEnth(2,1) = secomd Temp, etc.<br />END TYPE<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! MODULE VARIABLE DECLARATIONS:<br />TYPE (ConstructionDataFD), PUBLIC, ALLOCATABLE, DIMENSION(:) :: ConstructFD<br />TYPE (SurfaceDataFD), PUBLIC,&nbsp; &nbsp;ALLOCATABLE, DIMENSION(:) :: SurfaceFD<br />TYPE (MaterialDataFD), ALLOCATABLE, DIMENSION(:) :: MaterialFD</p><p>!REAL(r64) :: TFDout&nbsp; &nbsp;=0.0d0<br />!REAL(r64) :: TFDin&nbsp; &nbsp; =0.0d0<br />!REAL(r64) :: rhovFDout=0.0d0<br />!REAL(r64) :: rhovFDin =0.0d0<br />!REAL(r64) :: TDryout&nbsp; =0.0d0<br />!REAL(r64) :: Tdryin&nbsp; &nbsp;=0.0d0<br />!REAL(r64) :: RHOut&nbsp; &nbsp; =0.0d0<br />!REAL(r64) :: RHIn&nbsp; &nbsp; &nbsp;=0.0d0</p><p>REAL(r64) :: TempTlowPCM&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =0.0d0&nbsp; &nbsp; !temperature at which the phase change of PCM starts<br />REAL(r64) :: TempThighPCM&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=0.0d0&nbsp; &nbsp; !temperature at which the phase change of PCM ends<br />REAL(r64) :: SpecHeatSolidPCM&nbsp; &nbsp; &nbsp;!specific heat of PCM in solid state<br />REAL(r64) :: SpecHeatLiquidPCM &nbsp; &nbsp; !specific heat of PCM in liquid state<br />REAL(r64)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:: Tau1 <br />REAL(r64)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:: Tau2 <br />REAL(r64)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:: DeltaH <br />REAL(r64)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:: TcM <br />REAL(r64)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:: Tau1F <br />REAL(r64)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:: Tau2F <br />REAL(r64)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:: TcF <br />REAL(r64)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:: Tc<br />REAL(r64)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:: TcOld <br />REAL(r64), ALLOCATABLE, DIMENSION(:) :: SigmaR&nbsp; &nbsp; &nbsp; !&nbsp; Total Resistance of construction layers<br />REAL(r64), ALLOCATABLE, DIMENSION(:) :: SigmaC&nbsp; &nbsp; &nbsp; !&nbsp; Total Capacitance of construction layers</p><p>!REAL(r64), ALLOCATABLE, DIMENSION(:)&nbsp; &nbsp;:: WSurfIn&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;!Humidity Ratio of the inside surface for reporting<br />!REAL(r64), ALLOCATABLE, DIMENSION(:)&nbsp; &nbsp;:: QMassInFlux&nbsp; &nbsp; &nbsp;!MassFlux on Surface for reporting<br />!REAL(r64), ALLOCATABLE, DIMENSION(:)&nbsp; &nbsp;:: QMassOutFlux&nbsp; &nbsp; !MassFlux on Surface for reporting<br />REAL(r64), ALLOCATABLE, DIMENSION(:)&nbsp; &nbsp;:: QHeatInFlux&nbsp; &nbsp; &nbsp;!HeatFlux on Surface for reporting<br />REAL(r64), ALLOCATABLE, DIMENSION(:)&nbsp; &nbsp;:: QHeatOutFlux&nbsp; &nbsp; !HeatFlux on Surface for reporting<br />!REAL(r64), ALLOCATABLE, DIMENSION(:)&nbsp; &nbsp;:: QFluxZoneToInSurf !sum of Heat flows at the surface to air interface,<br />!&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! zone-side boundary conditions W/m2 before CR 8280 was not reported, but was calculated.<br />!REAL(r64), ALLOCATABLE, DIMENSION(:)&nbsp; &nbsp;:: QFluxOutsideToOutSurf !sum of Heat flows at the surface to air interface, Out-side boundary conditions W/m2<br />!&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! before CR 8280 was<br />!REAL(r64), ALLOCATABLE, DIMENSION(:)&nbsp; &nbsp;:: QFluxInArrivSurfCond !conduction between surface node and first node into the surface (sensible)<br />!&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! before CR 8280 was -- Qdryin&nbsp; &nbsp; !HeatFlux on Surface for reporting for Sensible only<br />!REAL(r64), ALLOCATABLE, DIMENSION(:)&nbsp; &nbsp;:: QFluxOutArrivSurfCond&nbsp; !HeatFlux on Surface for reporting for Sensible only<br />!&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! before CR 8280 -- Qdryout&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;!HeatFlux on Surface for reporting for Sensible only<br />INTEGER :: PCMalgorithm = 0 ! 0 for Simple curve fit<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; ! Type of the PCM algorithm selected default is &#039;Simple curve fit&#039;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />INTEGER :: PCMModel = 0 ! 0 for transition behaviour of PCM <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; ! Type of the PCM algorithm selected default is &#039;Transition&#039;</p><p>INTEGER&nbsp; &nbsp;:: CondFDSchemeType = FullyImplicitFirstOrder&nbsp; ! solution scheme for CondFD - default<br />REAL(r64) :: SpaceDescritConstant = 3.d0 ! spatial descritization constant,<br />REAL(r64) :: MinTempLimit = -100.d0 ! lower limit check, degree C<br />REAL(r64) :: MaxTempLimit =&nbsp; 100.d0 ! upper limit check, degree C<br />!feb2012 INTEGER&nbsp; &nbsp;:: MaxGSiter = 200&nbsp; ! maximum number of Gauss Seidel iterations<br />INTEGER&nbsp; &nbsp;:: MaxGSiter = 30&nbsp; ! maximum number of Gauss Seidel iterations<br />REAL(r64) :: fracTimeStepZone_Hour=0.0d0<br />LOGICAL&nbsp; &nbsp;:: GetHBFiniteDiffInputFlag=.true.<br />INTEGER :: WarmupSurfTemp=0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Subroutine Specifications for the Heat Balance Module<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Driver Routines<br />PUBLIC&nbsp; ManageHeatBalFiniteDiff</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Initialization routines for module<br />PUBLIC&nbsp; InitHeatBalFiniteDiff<br />PRIVATE GetCondFDInput</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Algorithms for the module<br />PRIVATE CalcHeatBalFiniteDiff<br />PRIVATE ExteriorBCEqns<br />PRIVATE InteriorBCEqns<br />PRIVATE terpld<br />PRIVATE InteriorNodeEqns<br />PRIVATE IntInterfaceNodeEqns<br />PRIVATE SpecEnthalpy</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Reporting routines for module<br />PRIVATE ReportFiniteDiffInits</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Update Data Routine<br />PUBLIC&nbsp; UpdateMoistureBalanceFD</p><br /><p>CONTAINS</p><p>! MODULE SUBROUTINES:<br />!*************************************************************************<br />SUBROUTINE ManageHeatBalFiniteDiff(SurfNum,TempSurfInTmp,TempSurfOutTmp)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! SUBROUTINE INFORMATION:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp;AUTHOR&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Richard Liesen<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp;DATE WRITTEN&nbsp; &nbsp;May 2000<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp;MODIFIED&nbsp; &nbsp; &nbsp; &nbsp;na<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp;RE-ENGINEERED&nbsp; na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! PURPOSE OF THIS SUBROUTINE:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! This subroutine manages the moisture balance method.&nbsp; It is called<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! from the HeatBalanceManager at the time step level.<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! This driver manages the calls to all of<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! the other drivers and simulation algorithms.</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! METHODOLOGY EMPLOYED:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! REFERENCES:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! USE STATEMENTS:</p><p>&nbsp; IMPLICIT NONE&nbsp; &nbsp; ! Enforce explicit typing of all variables in this routine</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! SUBROUTINE PARAMETER DEFINITIONS:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! INTERFACE BLOCK SPECIFICATIONS<br />&nbsp; Integer, Intent(In) :: SurfNum<br />&nbsp; REAL(r64), Intent(InOut) :: TempSurfInTmp&nbsp; &nbsp; &nbsp; &nbsp;!INSIDE SURFACE TEMPERATURE OF EACH HEAT TRANSFER SURF.<br />&nbsp; REAL(r64), Intent(InOut) :: TempSurfOutTmp&nbsp; &nbsp; &nbsp; !Outside Surface Temperature of each Heat Transfer Surface</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! DERIVED TYPE DEFINITIONS<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! SUBROUTINE LOCAL VARIABLE DECLARATIONS:<br />&nbsp; LOGICAL,SAVE :: GetInputFlag=.true.</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! FLOW:</p><p>&nbsp; ! Get the moisture balance input at the beginning of the simulation only<br />&nbsp; IF (GetHBFiniteDiffInputFlag) THEN<br />&nbsp; &nbsp; &nbsp; ! Obtains conduction FD related parameters from input file<br />&nbsp; &nbsp; CALL GetCondFDInput<br />&nbsp; &nbsp; GetHBFiniteDiffInputFlag=.false.<br />&nbsp; ENDIF</p><p>&nbsp; ! Condition is taken care of by calling routine:<br />&nbsp; ! IF (Surface(SurfNum)%HeatTransSurf .and. Surface(SurfNum)%Class /= SurfaceClass_Window)</p><p>&nbsp; ! Solve the zone heat &amp; moisture balance using a finite difference solution<br />&nbsp; CALL CalcHeatBalFiniteDiff(SurfNum,TempSurfInTmp,TempSurfOutTmp)</p><p>&nbsp; RETURN</p><p>END SUBROUTINE ManageHeatBalFiniteDiff</p><br /><p>! Get Input Section of the Module<br />!******************************************************************************<br />SUBROUTINE GetCondFDInput<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! SUBROUTINE INFORMATION:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp;AUTHOR&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Curtis Pedersen<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp;DATE WRITTEN&nbsp; &nbsp;July 2006<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp;MODIFIED&nbsp; &nbsp; &nbsp; &nbsp;Brent Griffith Mar 2011, user settings<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp;RE-ENGINEERED&nbsp; na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! PURPOSE OF THIS SUBROUTINE:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! This subroutine is the main driver for initializations for the variable property CondFD part of the<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! MFD algorithm</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! METHODOLOGY EMPLOYED:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! REFERENCES:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! USE STATEMENTS:<br />&nbsp; USE DataIPShortCuts<br />&nbsp; USE InputProcessor, ONLY: GetNumObjectsFound,GetObjectItem,FindItemInList<br />&nbsp; USE DataHeatBalance, ONLY: MaxAllowedDelTempCondFD, CondFDRelaxFactor, CondFDRelaxFactorInput<br />&nbsp; USE General, ONLY: RoundSigDigits</p><p>&nbsp; IMPLICIT NONE&nbsp; &nbsp; ! Enforce explicit typing of all variables in this routine</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! SUBROUTINE ARGUMENT DEFINITIONS:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! na<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! SUBROUTINE PARAMETER DEFINITIONS:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! INTERFACE BLOCK SPECIFICATIONS<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! DERIVED TYPE DEFINITIONS<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! SUBROUTINE LOCAL VARIABLE DECLARATIONS:<br />&nbsp; INTEGER :: IOStat&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! IO Status when calling get input subroutine<br />&nbsp; CHARACTER(len=MaxNameLength),DIMENSION(3) &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; :: MaterialNames ! Number of Material Alpha names defined<br />&nbsp; CHARACTER(len=MaxNameLength),DIMENSION(3)&nbsp; :: ConstructionName ! Name of Construction with CondFDsimplified<br />&nbsp; INTEGER :: MaterNum&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! Counter to keep track of the material number<br />&nbsp; INTEGER :: MaterialNumAlpha ! Number of material alpha names being passed<br />&nbsp; INTEGER :: MaterialNumProp&nbsp; ! Number of material properties being passed<br />&nbsp; REAL(r64), DIMENSION(40) :: MaterialProps !Temporary array to transfer material properties<br />&nbsp; REAL(r64), DIMENSION(10) :: PCMProps !Temporary array to transfer PCM properties<br />&nbsp; LOGICAL :: ErrorsFound = .false. ! If errors detected in input<br />!&nbsp; INTEGER :: CondFDMat&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Number of variable property CondFD materials in input<br />&nbsp; INTEGER :: ConstructNumber&nbsp; &nbsp; &nbsp;! Cconstruction with CondHBsimple to be overridden with CondHBdetailed<br />&nbsp; INTEGER :: TotHBAlgorithmOverrideConstructs&nbsp; ! Number of constructions where HBAlgoSimplified will be overriddem with detailed.</p><p>&nbsp; INTEGER :: NumConstructionAlpha<br />&nbsp; Integer :: Loop<br />&nbsp; INTEGER :: NumAlphas<br />&nbsp; INTEGER :: NumNumbers<br />&nbsp; INTEGER :: propNum<br />&nbsp; INTEGER :: pcount<br />&nbsp; INTEGER :: pcMat<br />&nbsp; INTEGER :: vcMat<br />&nbsp; INTEGER :: inegptr<br />&nbsp; LOGICAL :: nonInc<br />!--------------------------------------------------------------------------------------------------------------------<br />!JCDBUG PHASE CHANGE ANALYTICAL BELOW<br />&nbsp; CHARACTER(len=MaxNameLength), DIMENSION(4) :: AlphaNameP<br />&nbsp; INTEGER&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; :: NumAlphaP <br />&nbsp; INTEGER&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; :: NumObjectsP</p><br /><p>&nbsp; ! user settings for numerical parameters<br />&nbsp; cCurrentModuleObject = &#039;HeatBalanceSettings:ConductionFiniteDifference&#039;</p><p>&nbsp; IF (GetNumObjectsFound(cCurrentModuleObject) &gt; 0) THEN<br />&nbsp; &nbsp; CALL GetObjectItem(cCurrentModuleObject,1,cAlphaArgs,NumAlphas, &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rNumericArgs,NumNumbers,IOSTAT,&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks,&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)</p><p>&nbsp; &nbsp; IF (.NOT. lAlphaFieldBlanks(1)) THEN</p><p>&nbsp; &nbsp; &nbsp; SELECT CASE (cAlphaArgs(1))</p><p>&nbsp; &nbsp; &nbsp; CASE (&#039;CRANKNICHOLSONSECONDORDER&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; CondFDSchemeType = CrankNicholsonSecondOrder<br />&nbsp; &nbsp; &nbsp; CASE (&#039;FULLYIMPLICITFIRSTORDER&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; CondFDSchemeType = FullyImplicitFirstOrder<br />&nbsp; &nbsp; &nbsp; CASE DEFAULT<br />&nbsp; &nbsp; &nbsp; &nbsp; CALL ShowSevereError(TRIM(cCurrentModuleObject)//&#039;: invalid &#039;//TRIM(cAlphaFieldNames(1))//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#039; entered=&#039;//TRIM(cAlphaArgs(1))//&#039;, must match CrankNicholsonSecondOrder or FullyImplicitFirstOrder.&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; ErrorsFound=.true.<br />&nbsp; &nbsp; &nbsp; END SELECT</p><p>&nbsp; &nbsp; ENDIF</p><p>&nbsp; &nbsp; IF (.NOT. lNumericFieldBlanks(1)) THEN<br />&nbsp; &nbsp; &nbsp; SpaceDescritConstant = rNumericArgs(1)<br />&nbsp; &nbsp; ENDIF<br />&nbsp; &nbsp; IF (.NOT. lNumericFieldBlanks(2)) THEN<br />&nbsp; &nbsp; &nbsp; CondFDRelaxFactorInput = rNumericArgs(2)<br />&nbsp; &nbsp; &nbsp; CondFDRelaxFactor&nbsp; &nbsp; &nbsp; = CondFDRelaxFactorInput<br />&nbsp; &nbsp; ENDIF<br />&nbsp; &nbsp; IF (.NOT. lNumericFieldBlanks(3)) THEN<br />&nbsp; &nbsp; &nbsp; MaxAllowedDelTempCondFD = rNumericArgs(3)<br />&nbsp; &nbsp; ENDIF</p><p>&nbsp; ENDIF ! settings object</p><p>&nbsp; pcMat=GetNumObjectsFound(&#039;MaterialProperty:PhaseChange&#039;)<br />&nbsp; vcMat=GetNumObjectsFound(&#039;MaterialProperty:VariableThermalConductivity&#039;)</p><p>&nbsp; ALLOCATE(MaterialFD(TotMaterials))</p><p>&nbsp; ! Load the additional CondFD Material properties<br />&nbsp; cCurrentModuleObject=&#039;MaterialProperty:PhaseChange&#039;&nbsp; &nbsp; ! Phase Change Information First</p><p>&nbsp; IF ( pcMat .NE. 0 ) Then&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; Get Phase Change info<br />!&nbsp; &nbsp; CondFDVariableProperties = .TRUE.<br />&nbsp; &nbsp; DO Loop=1,pcMat</p><p>&nbsp; &nbsp; !Call Input Get routine to retrieve material data<br />&nbsp; &nbsp; &nbsp; CALL GetObjectItem(cCurrentModuleObject,Loop,MaterialNames,MaterialNumAlpha, &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MaterialProps,MaterialNumProp,IOSTAT,&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks,&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)</p><br /><p>&nbsp; &nbsp; !Load the material derived type from the input data.<br />&nbsp; &nbsp; &nbsp; MaterNum = FindItemInList(MaterialNames(1),Material%Name,TotMaterials)<br />&nbsp; &nbsp; &nbsp; IF (MaterNum == 0) THEN<br />&nbsp; &nbsp; &nbsp; &nbsp; CALL ShowSevereError(TRIM(cCurrentModuleObject)//&#039;: invalid &#039;//TRIM(cAlphaFieldNames(1))//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#039; entered=&#039;//TRIM(MaterialNames(1))//&#039;, must match to a valid Material name.&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; ErrorsFound=.true.<br />&nbsp; &nbsp; &nbsp; &nbsp; Cycle<br />&nbsp; &nbsp; &nbsp; ENDIF</p><p>&nbsp; &nbsp; &nbsp; IF (Material(MaterNum)%Group /= RegularMaterial) THEN<br />&nbsp; &nbsp; &nbsp; &nbsp; CALL ShowSevereError(TRIM(cCurrentModuleObject)//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#039;: Reference Material is not appropriate type for CondFD properties, material=&#039;//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TRIM(Material(MaterNum)%Name)//&#039;, must have regular properties (L,Cp,K,D)&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; ErrorsFound=.true.<br />&nbsp; &nbsp; &nbsp; ENDIF</p><br /><p>&nbsp; &nbsp; ! Once the material derived type number is found then load the additional CondFD variable material properties<br />&nbsp; &nbsp; !&nbsp; &nbsp;Some or all may be zero (default).&nbsp; They will be checked when calculating node temperatures<br />&nbsp; &nbsp; &nbsp; MaterialFD(MaterNum)%tk1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = MaterialProps(1)<br />&nbsp; &nbsp; &nbsp; MaterialFD(MaterNum)%numTempEnth&nbsp; = (MaterialNumProp-1)/2<br />&nbsp; &nbsp; &nbsp; IF (MaterialFD(MaterNum)%numTempEnth*2 /= (MaterialNumProp-1)) THEN<br />&nbsp; &nbsp; &nbsp; &nbsp; CALL ShowSevereError(&#039;GetCondFDInput: &#039;//trim(cCurrentModuleObject)//&#039;=&quot;&#039;//trim(MaterialNames(1))//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#039;&quot;, mismatched pairs&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; CALL ShowContinueError(&#039;...expected &#039;//trim(RoundSigDigits(MaterialFD(MaterNum)%numTempEnth))//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#039; pairs, but only entered &#039;//trim(RoundSigDigits(MaterialNumProp-1))//&#039; numbers.&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; ErrorsFound=.true.<br />&nbsp; &nbsp; &nbsp; ENDIF<br />&nbsp; &nbsp; &nbsp; ALLOCATE(MaterialFD(MaterNum)%TempEnth(MaterialFD(MaterNum)%numTempEnth,2))<br />&nbsp; &nbsp; &nbsp; MaterialFD(MaterNum)%TempEnth&nbsp; &nbsp; &nbsp;=0.0d0<br />&nbsp; &nbsp; &nbsp; propNum=2<br />&nbsp; &nbsp; &nbsp; ! Temperature first<br />&nbsp; &nbsp; &nbsp; DO pcount=1,MaterialFD(MaterNum)%numTempEnth<br />&nbsp; &nbsp; &nbsp; &nbsp; MaterialFD(MaterNum)%TempEnth(pcount,1)&nbsp; &nbsp;= MaterialProps(propNum)<br />&nbsp; &nbsp; &nbsp; &nbsp; propNum=propNum+2<br />&nbsp; &nbsp; &nbsp; ENDDO<br />&nbsp; &nbsp; &nbsp; propNum=3<br />&nbsp; &nbsp; &nbsp; ! Then Enthalpy<br />&nbsp; &nbsp; &nbsp; DO pcount=1,MaterialFD(MaterNum)%numTempEnth<br />&nbsp; &nbsp; &nbsp; &nbsp; MaterialFD(MaterNum)%TempEnth(pcount,2)&nbsp; &nbsp;= MaterialProps(propNum)<br />&nbsp; &nbsp; &nbsp; &nbsp; propNum=propNum+2<br />&nbsp; &nbsp; &nbsp; ENDDO<br />&nbsp; &nbsp; &nbsp; nonInc=.false.<br />&nbsp; &nbsp; &nbsp; inegptr=0<br />&nbsp; &nbsp; &nbsp; DO pcount=1,MaterialFD(MaterNum)%numTempEnth-1<br />&nbsp; &nbsp; &nbsp; &nbsp; IF (MaterialFD(MaterNum)%TempEnth(pcount,1) &lt; MaterialFD(MaterNum)%TempEnth(pcount+1,1)) CYCLE<br />&nbsp; &nbsp; &nbsp; &nbsp; nonInc=.true.<br />&nbsp; &nbsp; &nbsp; &nbsp; inegptr=pcount+1<br />&nbsp; &nbsp; &nbsp; &nbsp; EXIT<br />&nbsp; &nbsp; &nbsp; ENDDO<br />&nbsp; &nbsp; &nbsp; IF (nonInc) THEN<br />&nbsp; &nbsp; &nbsp; &nbsp; CALL ShowSevereError(&#039;GetCondFDInput: &#039;//trim(cCurrentModuleObject)//&#039;=&quot;&#039;//trim(MaterialNames(1))//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#039;&quot;, non increasing Temperatures. Temperatures must be strictly increasing.&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; CALL ShowContinueError(&#039;...occurs first at item=[&#039;//trim(RoundSigDigits(inegptr))//&#039;], value=[&#039;//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;trim(RoundSigDigits(MaterialFD(MaterNum)%TempEnth(inegptr,1),2))//&#039;].&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; ErrorsFound=.true.<br />&nbsp; &nbsp; &nbsp; ENDIF<br />&nbsp; &nbsp; &nbsp; nonInc=.false.<br />&nbsp; &nbsp; &nbsp; inegptr=0<br />&nbsp; &nbsp; &nbsp; DO pcount=1,MaterialFD(MaterNum)%numTempEnth-1<br />&nbsp; &nbsp; &nbsp; &nbsp; IF (MaterialFD(MaterNum)%TempEnth(pcount,2) &lt;= MaterialFD(MaterNum)%TempEnth(pcount+1,2)) CYCLE<br />&nbsp; &nbsp; &nbsp; &nbsp; nonInc=.true.<br />&nbsp; &nbsp; &nbsp; &nbsp; inegptr=pcount+1<br />&nbsp; &nbsp; &nbsp; &nbsp; EXIT<br />&nbsp; &nbsp; &nbsp; ENDDO<br />&nbsp; &nbsp; &nbsp; IF (nonInc) THEN<br />&nbsp; &nbsp; &nbsp; &nbsp; CALL ShowSevereError(&#039;GetCondFDInput: &#039;//trim(cCurrentModuleObject)//&#039;=&quot;&#039;//trim(MaterialNames(1))//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#039;&quot;, non increasing Enthalpy.&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; CALL ShowContinueError(&#039;...occurs first at item=[&#039;//trim(RoundSigDigits(inegptr))//&#039;], value=[&#039;//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;trim(RoundSigDigits(MaterialFD(MaterNum)%TempEnth(inegptr,2),2))//&#039;].&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; CALL ShowContinueError(&#039;...These values may be Cp (Specific Heat) rather than Enthalpy.&nbsp; Please correct.&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; ErrorsFound=.true.<br />&nbsp; &nbsp; &nbsp; ENDIF<br />&nbsp; &nbsp; ENDDO<br />&nbsp; END IF<br />!&nbsp; &nbsp;Get CondFD Variable Thermal Conductivity Input</p><p>&nbsp; cCurrentModuleObject=&#039;MaterialProperty:VariableThermalConductivity&#039;&nbsp; &nbsp; ! Variable Thermal Conductivity Info next<br />&nbsp; IF ( vcMat .NE. 0 ) Then&nbsp; &nbsp;!&nbsp; variable k info<br />!&nbsp; &nbsp; CondFDVariableProperties = .TRUE.<br />&nbsp; &nbsp; DO Loop=1,vcMat</p><p>&nbsp; &nbsp; &nbsp; !Call Input Get routine to retrieve material data<br />&nbsp; &nbsp; &nbsp; CALL GetObjectItem(cCurrentModuleObject,Loop,MaterialNames,MaterialNumAlpha, &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MaterialProps,MaterialNumProp,IOSTAT,&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks,&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)</p><br /><p>&nbsp; &nbsp; &nbsp; !Load the material derived type from the input data.<br />&nbsp; &nbsp; &nbsp; MaterNum = FindItemInList(MaterialNames(1),Material%Name,TotMaterials)<br />&nbsp; &nbsp; &nbsp; IF (MaterNum == 0) THEN<br />&nbsp; &nbsp; &nbsp; &nbsp; CALL ShowSevereError(TRIM(cCurrentModuleObject)//&#039;: invalid &#039;//TRIM(cAlphaFieldNames(1))//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#039; entered=&#039;//TRIM(MaterialNames(1))//&#039;, must match to a valid Material name.&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; ErrorsFound=.true.<br />&nbsp; &nbsp; &nbsp; &nbsp; Cycle<br />&nbsp; &nbsp; &nbsp; ENDIF</p><p>&nbsp; &nbsp; &nbsp; IF (Material(MaterNum)%Group /= RegularMaterial) THEN<br />&nbsp; &nbsp; &nbsp; &nbsp; CALL ShowSevereError(TRIM(cCurrentModuleObject)//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#039;: Reference Material is not appropriate type for CondFD properties, material=&#039;//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TRIM(Material(MaterNum)%Name)//&#039;, must have regular properties (L,Cp,K,D)&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; ErrorsFound=.true.<br />&nbsp; &nbsp; &nbsp; ENDIF</p><br /><p>&nbsp; &nbsp; ! Once the material derived type number is found then load the additional CondFD variable material properties<br />&nbsp; &nbsp; !&nbsp; &nbsp;Some or all may be zero (default).&nbsp; They will be checked when calculating node temperatures<br />!JCDBUG PHASE CHANGE ANALYTICAL BELOW<br />!--------------------------------------------------------------------------------------------------------------------<br />!JCDBUG G-FORTRAN COMPILER <br />&nbsp; !JCDBUG CHARACTER(len=MaxNameLength), DIMENSION(4) :: AlphaNameP !Error: Symbol &#039;alphanamep&#039; at (1) already has basic type of CHARACTER 523.57:<br />&nbsp; !JCDBUG INTEGER :: NumAlphaP !Error: Symbol &#039;numalphap&#039; at (1) already has basic type of INTEGER 524.59:<br />&nbsp; !JCDBUG INTEGER :: NumObjectsP&nbsp; !Error: Symbol &#039;numobjectsp&#039; at (1) already has basic type of INTEGER 532.29:</p><p>&nbsp; &nbsp;cCurrentModuleObject=&#039;PhaseChangeMaterialSettings&#039;</p><p>&nbsp; &nbsp;NumObjectsP=GetNumObjectsFound(TRIM(cCurrentModuleObject))<br />&nbsp; &nbsp;<br />&nbsp; &nbsp; IF (NumObjectsP &gt; 0) THEN<br />&nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; DO Loop=1,NumObjectsP<br />&nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CALL GetObjectItem(TRIM(cCurrentModuleObject),Loop,AlphaNameP,MaterialNumAlpha, &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MaterialProps,MaterialNumProp,IOSTAT,&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks,&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SELECT CASE (AlphaNameP(1))<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CASE (&#039;SIMPLECURVEFIT&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PCMalgorithm = 0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CASE (&#039;HYSTERESIS&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PCMalgorithm = 1 <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CASE DEFAULT<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PCMalgorithm = 0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AlphaNameP(1) = &#039;SIMPLECURVEFIT&#039;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CALL ShowWarningError(TRIM(cCurrentModuleObject)//&#039;: Invalid input of &#039;//TRIM(cAlphaFieldNames(1))//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;. The default choice assigned is &#039;//TRIM(AlphaNameP(1)))<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CALL ShowContinueError(&#039;Valid choices are: SimpleCurveFit or&nbsp; Hysteresis&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; END SELECT</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SELECT CASE (AlphaNameP(2))<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CASE (&#039;TRANSITION&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PCMModel = 0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CASE (&#039;NON-TRANSITION&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PCMModel = 1<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CASE DEFAULT<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PCMModel = 0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AlphaNameP(2) = &#039;TRANSITION&#039;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CALL ShowWarningError(TRIM(cCurrentModuleObject)//&#039;: Invalid input of &#039;//TRIM(cAlphaFieldNames(2))//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;. The default choice assigned is &#039;//TRIM(AlphaNameP(2)))<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CALL ShowContinueError(&#039;Valid choices are: Transition, Non-Transition.&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; END SELECT<br />&nbsp; &nbsp; &nbsp; &nbsp; END DO<br />&nbsp; &nbsp; END IF<br />!-------------------------------------------------------------------------------------------------------------------------</p><p>&nbsp; ! Load the additional CondFD Material properties<br />&nbsp; cCurrentModuleObject=&#039;MaterialProperty:PhaseChange&#039;&nbsp; &nbsp; ! Phase Change Information First<br />&nbsp; CondFDMat=GetNumObjectsFound(TRIM(cCurrentModuleObject))</p><p>&nbsp; IF ( CondFDMat .NE. 0 ) Then&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; Get Phase Change info<br />&nbsp; &nbsp; DO Loop=1,CondFDMat</p><p>&nbsp; &nbsp; !Call Input Get routine to retrieve material data<br />&nbsp; &nbsp; CALL GetObjectItem(TRIM(cCurrentModuleObject),Loop,MaterialNames,MaterialNumAlpha, &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MaterialProps,MaterialNumProp,IOSTAT,&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks,&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)</p><br /><p>&nbsp; &nbsp; !Load the material derived type from the input data.<br />&nbsp; &nbsp; MaterNum = FindItemInList(MaterialNames(1),Material%Name,TotMaterials)<br />&nbsp; &nbsp; IF (MaterNum == 0) THEN<br />&nbsp; &nbsp; &nbsp; CALL ShowSevereError(TRIM(cCurrentModuleObject)//&#039;: invalid &#039;//TRIM(cAlphaFieldNames(1))//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#039; entered=&#039;//TRIM(MaterialNames(1))//&#039;, must match to a valid Material name.&#039;)<br />&nbsp; &nbsp; &nbsp; ErrorsFound=.true.<br />&nbsp; &nbsp; &nbsp; Cycle<br />&nbsp; &nbsp; ENDIF</p><p>&nbsp; &nbsp; IF (Material(MaterNum)%Group /= RegularMaterial) THEN<br />&nbsp; &nbsp; &nbsp; CALL ShowSevereError(TRIM(cCurrentModuleObject)//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#039;: Reference Material is not appropriate type for CondFD properties, material=&#039;//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TRIM(Material(MaterNum)%Name)//&#039;, must have regular properties (L,Cp,K,D)&#039;)<br />&nbsp; &nbsp; &nbsp; ErrorsFound=.true.<br />&nbsp; &nbsp; ENDIF</p><br /><br /><p>&nbsp; &nbsp; ! Once the material derived type number is found then load the additional CondFD variable material properties<br />&nbsp; &nbsp; !&nbsp; &nbsp;Some or all may be zero (default).&nbsp; They will be checked when calculating node temperatures</p><p>&nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%tk1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;=&nbsp; &nbsp;&nbsp; MaterialProps(1)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempLowPCM&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&nbsp; &nbsp;&nbsp; MaterialProps(2)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempHighPCM&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&nbsp; &nbsp;&nbsp; MaterialProps(3)<br />&nbsp; &nbsp; Material(MaterNum)%TempEnth(1,1)&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;=&nbsp; &nbsp;&nbsp; MaterialProps(4)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnth(1,2)&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;=&nbsp; &nbsp;&nbsp; MaterialProps(5)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnth(2,1)&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;=&nbsp; &nbsp;&nbsp; MaterialProps(6)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnth(2,2)&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;=&nbsp; &nbsp;&nbsp; MaterialProps(7)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnth(3,1)&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;=&nbsp; &nbsp;&nbsp; MaterialProps(8)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnth(3,2)&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;=&nbsp; &nbsp;&nbsp; MaterialProps(9)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnth(4,1)&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;=&nbsp; &nbsp;&nbsp; MaterialProps(10)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnth(4,2)&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;=&nbsp; &nbsp;&nbsp; MaterialProps(11)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnth(5,1)&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;=&nbsp; &nbsp;&nbsp; MaterialProps(12)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnth(5,2)&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;=&nbsp; &nbsp;&nbsp; MaterialProps(13)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnth(6,1)&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;=&nbsp; &nbsp;&nbsp; MaterialProps(14)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnth(6,2)&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;=&nbsp; &nbsp;&nbsp; MaterialProps(15)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%blank3&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;=&nbsp; &nbsp;&nbsp; MaterialProps(16)&nbsp; &nbsp; !This value is not used anywhere&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%blank4&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;=&nbsp; &nbsp;&nbsp; MaterialProps(17)&nbsp; &nbsp; !This value is not used anywhere&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthMelting(1,1)&nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(18)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthMelting(1,2)&nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(19)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthMelting(2,1)&nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(20)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthMelting(2,2)&nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(21)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthMelting(3,1)&nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(22)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthMelting(3,2)&nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(23)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthMelting(4,1)&nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(24)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthMelting(4,2)&nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(25)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthMelting(5,1)&nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(26)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthMelting(5,2)&nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(27)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthMelting(6,1)&nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(28)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthMelting(6,2)&nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(29)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%blank5&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(30)&nbsp; &nbsp; !This value is not used anywhere&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%blank6&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(31)&nbsp; &nbsp; !This value is not used anywhere&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthFreezing(1,1)&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(32)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthFreezing(1,2)&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(33)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthFreezing(2,1)&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(34)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthFreezing(2,2)&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(35)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthFreezing(3,1)&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(36)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthFreezing(3,2)&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(37)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthFreezing(4,1)&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(38)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthFreezing(4,2)&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(39)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthFreezing(5,1)&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(40)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthFreezing(5,2)&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(41)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthFreezing(6,1)&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(42)<br />&nbsp; &nbsp; Material(MaterNum)%TempEnthFreezing(6,2)&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(43)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%blank7&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(44)&nbsp; &nbsp; !This value is not used anywhere&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%blank8&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(45)&nbsp; &nbsp; !This value is not used anywhere&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthCrystallizationPoint(1,1)&nbsp; &nbsp; =&nbsp; &nbsp; MaterialProps(46)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Material(MaterNum)%TempEnthCrystallizationPoint(1,2)&nbsp; &nbsp; =&nbsp; &nbsp; MaterialProps(47)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </p><br /><p>&nbsp; &nbsp;ENDDO<br />&nbsp; END IF<br />&nbsp; <br />!******************************************************************************************************************************<br />&nbsp; &nbsp; cCurrentModuleObject=&#039;MaterialProperty:PhaseChangeAnalytical&#039;&nbsp; &nbsp; ! Phase Change Information First<br />&nbsp; &nbsp; CondFDMat=GetNumObjectsFound(TRIM(cCurrentModuleObject))</p><p>&nbsp; &nbsp; IF ( CondFDMat .NE. 0 ) Then&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; Get Phase Change info<br />&nbsp; &nbsp; &nbsp; &nbsp; DO Loop=1,CondFDMat</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !Call Input Get routine to retrieve material data<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CALL GetObjectItem(TRIM(cCurrentModuleObject),Loop,MaterialNames,MaterialNumAlpha, &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MaterialProps,MaterialNumProp,IOSTAT,&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks,&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MaterNum = FindItemInList(MaterialNames(1),Material%Name,TotMaterials)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IF (MaterNum == 0) THEN<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CALL ShowSevereError(TRIM(cCurrentModuleObject)//&#039;: invalid &#039;//TRIM(cAlphaFieldNames(1))//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#039; entered=&#039;//TRIM(MaterialNames(1))//&#039;, must match to a valid Material name.&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ErrorsFound=.true.<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CYCLE<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ENDIF</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IF (Material(MaterNum)%Group /= RegularMaterial) THEN<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CALL ShowSevereError(TRIM(cCurrentModuleObject)//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#039;: Reference Material is not appropriate type for CondFD properties, material=&#039;//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TRIM(Material(MaterNum)%Name)//&#039;, must have regular properties (L,Cp,K,D)&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ErrorsFound=.true.<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ENDIF<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Material(MaterNum)%tk1&nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(1)&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Material(MaterNum)%DeltaHF&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(2)&nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Material(MaterNum)%DeltaHS&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(3)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Material(MaterNum)%CpSolid&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(4)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Material(MaterNum)%CpLiquid&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(5)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Material(MaterNum)%Tm&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&nbsp; &nbsp;&nbsp; MaterialProps(6)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Material(MaterNum)%Tf&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(7)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Material(MaterNum)%Tau1&nbsp; &nbsp;&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(8)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Material(MaterNum)%Tau2&nbsp; &nbsp;&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(9)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Material(MaterNum)%Tau1Prime&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(10)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Material(MaterNum)%Tau2Prime&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(11)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IF(PCMAlgorithm==0) THEN <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IF(MaterialProps(2) /= MaterialProps(3)) THEN<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MaterialProps(3) = MaterialProps(2)&nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Material(MaterNum)%DeltaHS = MaterialProps(3)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CALL ShowWarningError(TRIM(cCurrentModuleObject)//&#039;: Invalid input of &#039;//TRIM(cNumericFieldNames(3))//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;. The default choice assigned is &#039;//TRIM(cNumericFieldNames(2)))<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CALL ShowContinueError(&#039;Melting properties assigned to freezing properties&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; END IF<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF(MaterialProps(6) /= MaterialProps(7)) THEN<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MaterialProps(7) = MaterialProps(6)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Material(MaterNum)%Tf = MaterialProps(6)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Material(MaterNum)%Tau1Prime&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(8)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Material(MaterNum)%Tau2Prime&nbsp; &nbsp; =&nbsp; &nbsp;&nbsp; MaterialProps(9)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CALL ShowWarningError(TRIM(cCurrentModuleObject)//&#039;: Invalid input for &#039;//TRIM(cNumericFieldNames(7))//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;. The default choice assigned is &#039;//TRIM(cNumericFieldNames(6)))<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CALL ShowContinueError(&#039;Melting properties assigned to freezing properties&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; END IF<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ELSE IF(PCMAlgorithm==1) THEN<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IF(MaterialProps(6) == MaterialProps(7)) THEN<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CALL ShowSevereError(TRIM(cCurrentModuleObject)//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;: Freezing Temperature equal to Melting Temperature, material=&#039;//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TRIM(Material(MaterNum)%Name)//&#039;, must have different values, PCM Algorithm = &#039;//TRIM(AlphaNameP(1))//&#039; Model&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ErrorsFound=.true.<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; END IF<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; END IF<br />!JCDBUG PHASE CHANGE BELOW</p><p>&nbsp; &nbsp; &nbsp; MaterialFD(MaterNum)%numTempCond&nbsp; = MaterialNumProp/2<br />&nbsp; &nbsp; &nbsp; IF (MaterialFD(MaterNum)%numTempCond*2 /= MaterialNumProp) THEN<br />&nbsp; &nbsp; &nbsp; &nbsp; CALL ShowSevereError(&#039;GetCondFDInput: &#039;//trim(cCurrentModuleObject)//&#039;=&quot;&#039;//trim(MaterialNames(1))//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#039;&quot;, mismatched pairs&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; CALL ShowContinueError(&#039;...expected &#039;//trim(RoundSigDigits(MaterialFD(MaterNum)%numTempCond))//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#039; pairs, but only entered &#039;//trim(RoundSigDigits(MaterialNumProp))//&#039; numbers.&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; ErrorsFound=.true.<br />&nbsp; &nbsp; &nbsp; ENDIF<br />&nbsp; &nbsp; &nbsp; ALLOCATE(MaterialFD(MaterNum)%TempCond(MaterialFD(MaterNum)%numTempCond,2))<br />&nbsp; &nbsp; &nbsp; MaterialFD(MaterNum)%TempCond&nbsp; &nbsp; =0.0d0<br />&nbsp; &nbsp; &nbsp; propNum=1<br />&nbsp; &nbsp; &nbsp; ! Temperature first<br />&nbsp; &nbsp; &nbsp; DO pcount=1,MaterialFD(MaterNum)%numTempCond<br />&nbsp; &nbsp; &nbsp; &nbsp; MaterialFD(MaterNum)%TempCond(pcount,1)&nbsp; &nbsp;= MaterialProps(propNum)<br />&nbsp; &nbsp; &nbsp; &nbsp; propNum=propNum+2<br />&nbsp; &nbsp; &nbsp; ENDDO<br />&nbsp; &nbsp; &nbsp; propNum=2<br />&nbsp; &nbsp; &nbsp; ! Then Conductivity<br />&nbsp; &nbsp; &nbsp; DO pcount=1,MaterialFD(MaterNum)%numTempCond<br />&nbsp; &nbsp; &nbsp; &nbsp; MaterialFD(MaterNum)%TempCond(pcount,2)&nbsp; &nbsp;= MaterialProps(propNum)<br />&nbsp; &nbsp; &nbsp; &nbsp; propNum=propNum+2<br />&nbsp; &nbsp; &nbsp; ENDDO<br />&nbsp; &nbsp; &nbsp; nonInc=.false.<br />&nbsp; &nbsp; &nbsp; inegptr=0<br />&nbsp; &nbsp; &nbsp; DO pcount=1,MaterialFD(MaterNum)%numTempCond-1<br />&nbsp; &nbsp; &nbsp; &nbsp; IF (MaterialFD(MaterNum)%TempCond(pcount,1) &lt; MaterialFD(MaterNum)%TempCond(pcount+1,1)) CYCLE<br />&nbsp; &nbsp; &nbsp; &nbsp; nonInc=.true.<br />&nbsp; &nbsp; &nbsp; &nbsp; inegptr=pcount+1<br />&nbsp; &nbsp; &nbsp; &nbsp; EXIT<br />&nbsp; &nbsp; &nbsp; ENDDO<br />&nbsp; &nbsp; &nbsp; IF (nonInc) THEN<br />&nbsp; &nbsp; &nbsp; &nbsp; CALL ShowSevereError(&#039;GetCondFDInput: &#039;//trim(cCurrentModuleObject)//&#039;=&quot;&#039;//trim(MaterialNames(1))//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#039;&quot;, non increasing Temperatures. Temperatures must be strictly increasing.&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; CALL ShowContinueError(&#039;...occurs first at item=[&#039;//trim(RoundSigDigits(inegptr))//&#039;], value=[&#039;//&nbsp; &amp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;trim(RoundSigDigits(MaterialFD(MaterNum)%TempCond(inegptr,1),2))//&#039;].&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; ErrorsFound=.true.<br />&nbsp; &nbsp; &nbsp; ENDIF<br />&nbsp; &nbsp; ENDDO<br />&nbsp; END IF</p><p>&nbsp; DO MaterNum=1,TotMaterials<br />&nbsp; &nbsp; IF (MaterialFD(MaterNum)%numTempEnth == 0) THEN<br />&nbsp; &nbsp; &nbsp; MaterialFD(MaterNum)%numTempEnth=3<br />&nbsp; &nbsp; &nbsp; ALLOCATE(MaterialFD(MaterNum)%TempEnth(MaterialFD(MaterNum)%numTempEnth,2))<br />&nbsp; &nbsp; &nbsp; MaterialFD(MaterNum)%TempEnth=-100.0d0<br />&nbsp; &nbsp; ENDIF<br />&nbsp; &nbsp; IF (MaterialFD(MaterNum)%numTempCond == 0) THEN<br />&nbsp; &nbsp; &nbsp; MaterialFD(MaterNum)%numTempCond=3<br />&nbsp; &nbsp; &nbsp; ALLOCATE(MaterialFD(MaterNum)%TempCOnd(MaterialFD(MaterNum)%numTempCond,2))<br />&nbsp; &nbsp; &nbsp; MaterialFD(MaterNum)%TempCond=-100.0d0<br />&nbsp; &nbsp; ENDIF<br />ENDDO</p><p>&nbsp; IF (ErrorsFound) THEN<br />&nbsp; &nbsp; CALL ShowFatalError(&#039;GetCondFDInput: Errors found getting ConductionFiniteDifference properties. Program terminates.&#039;)<br />&nbsp; ENDIF</p><p>&nbsp; CALL InitialInitHeatBalFiniteDiff</p><p>&nbsp; RETURN</p><p>END SUBROUTINE GetCondFDInput</p><p>SUBROUTINE InitHeatBalFiniteDiff</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! SUBROUTINE INFORMATION:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp;AUTHOR&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Richard J. Liesen<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp;DATE WRITTEN&nbsp; &nbsp;Oct 2003<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp;MODIFIED&nbsp; &nbsp; &nbsp; &nbsp;na<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp;RE-ENGINEERED&nbsp; C O Pedersen 2006<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; B. Griffith May 2011 move begin-environment and every-timestep inits, cleanup formatting</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! PURPOSE OF THIS SUBROUTINE:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! This subroutine sets the initial values for the FD moisture calculation</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! METHODOLOGY EMPLOYED:</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! REFERENCES:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! USE STATEMENTS:<br />&nbsp; USE DataInterfaces, ONLY:SetupOutputVariable<br />&nbsp; USE DataSurfaces, ONLY: HeatTransferModel_CondFD</p><p>&nbsp; IMPLICIT NONE&nbsp; &nbsp; ! Enforce explicit typing of all variables in this routine</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! SUBROUTINE PARAMETER DEFINITIONS:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! INTERFACE BLOCK SPECIFICATIONS<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! DERIVED TYPE DEFINITIONS<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! SUBROUTINE LOCAL VARIABLE DECLARATIONS:<br />&nbsp; LOGICAL,SAVE&nbsp; &nbsp; &nbsp; &nbsp; :: MyEnvrnFlag=.TRUE.<br />&nbsp; INTEGER :: SurfNum<br />&nbsp; INTEGER :: ConstrNum&nbsp; &nbsp; ! Loop counter<br />&nbsp; LOGICAL :: errorsFound</p><p>&nbsp; IF (GetHBFiniteDiffInputFlag) THEN<br />&nbsp; &nbsp; &nbsp; ! Obtains conduction FD related parameters from input file<br />&nbsp; &nbsp; CALL GetCondFDInput<br />&nbsp; &nbsp; GetHBFiniteDiffInputFlag=.false.<br />&nbsp; ENDIF</p><p>&nbsp; errorsFound=.false.</p><p>&nbsp; ! now do begin environment inits.<br />&nbsp; IF (BeginEnvrnFlag .AND. MyEnvrnFlag) THEN<br />&nbsp; &nbsp; DO SurfNum=1,TotSurfaces<br />&nbsp; &nbsp; &nbsp; IF (Surface(SurfNum)%HeatTransferAlgorithm /= HeatTransferModel_CondFD)&nbsp; &nbsp;CYCLE<br />&nbsp; &nbsp; &nbsp; IF(Surface(SurfNum)%Construction &lt;= 0) CYCLE&nbsp; ! Shading surface, not really a heat transfer surface<br />&nbsp; &nbsp; &nbsp; ConstrNum=Surface(SurfNum)%Construction<br />&nbsp; &nbsp; &nbsp; IF(Construct(ConstrNum)%TypeIsWindow) CYCLE&nbsp; !&nbsp; Windows simulated in Window module<br />&nbsp; &nbsp; &nbsp; SurfaceFD(SurfNum)%T&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = TempInitValue<br />&nbsp; &nbsp; &nbsp; SurfaceFD(SurfNum)%TOld&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= TempInitValue<br />&nbsp; &nbsp; &nbsp; SurfaceFD(SurfNum)%TT&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= TempInitValue<br />&nbsp; &nbsp; &nbsp; SurfaceFD(SurfNum)%Rhov&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= RhovInitValue<br />&nbsp; &nbsp; &nbsp; SurfaceFD(SurfNum)%RhovOld&nbsp; &nbsp; &nbsp; &nbsp; = RhovInitValue<br />&nbsp; &nbsp; &nbsp; SurfaceFD(SurfNum)%RhoT&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= RhovInitValue<br />&nbsp; &nbsp; &nbsp; SurfaceFD(SurfNum)%TD&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= TempInitValue<br />&nbsp; &nbsp; &nbsp; SurfaceFD(SurfNum)%TDT&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = TempInitValue<br />&nbsp; &nbsp; &nbsp; SurfaceFD(SurfNum)%TDTLast&nbsp; &nbsp; &nbsp; &nbsp; = TempInitValue<br />&nbsp; &nbsp; &nbsp; SurfaceFD(SurfNum)%TDOld&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = TempInitValue<br />&nbsp; &nbsp; &nbsp; SurfaceFD(SurfNum)%TDreport&nbsp; &nbsp; &nbsp; &nbsp;= TempInitValue<br />&nbsp; &nbsp; &nbsp; SurfaceFD(SurfNum)%RH&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 0.0d0<br />&nbsp; &nbsp; &nbsp; SurfaceFD(SurfNum)%RHreport&nbsp; &nbsp; &nbsp; &nbsp;= 0.0d0<br />&nbsp; &nbsp; &nbsp; SurfaceFD(SurfNum)%EnthOld&nbsp; &nbsp; &nbsp; &nbsp; = EnthInitValue<br />&nbsp; &nbsp; &nbsp; SurfaceFD(SurfNum)%EnthNew&nbsp; &nbsp; &nbsp; &nbsp; = EnthInitValue<br />&nbsp; &nbsp; &nbsp; SurfaceFD(SurfNum)%EnthLast&nbsp; &nbsp; &nbsp; &nbsp;= EnthInitValue</p><p>&nbsp; &nbsp; &nbsp; TempOutsideAirFD(SurfNum)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 0.d0<br />&nbsp; &nbsp; &nbsp; RhoVaporAirOut(SurfNum)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 0.d0<br />&nbsp; &nbsp; &nbsp; RhoVaporSurfIn(SurfNum)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 0.d0<br />&nbsp; &nbsp; &nbsp; RhoVaporAirIn(SurfNum)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 0.d0<br />&nbsp; &nbsp; &nbsp; HConvExtFD(SurfNum)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 0.d0<br />&nbsp; &nbsp; &nbsp; HMassConvExtFD(SurfNum)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 0.d0<br />&nbsp; &nbsp; &nbsp; HConvInFD(SurfNum)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 0.d0<br />&nbsp; &nbsp; &nbsp; HMassConvInFD(SurfNum)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 0.d0<br />&nbsp; &nbsp; &nbsp; HSkyFD(SurfNum)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 0.d0<br />&nbsp; &nbsp; &nbsp; HGrndFD(SurfNum)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 0.d0<br />&nbsp; &nbsp; &nbsp; HAirFD(SurfNum)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 0.d0<br />&nbsp; &nbsp; ENDDO<br />&nbsp; &nbsp; WarmupSurfTemp=0<br />&nbsp; &nbsp; MyEnvrnFlag = .FALSE.<br />&nbsp; END IF<br />&nbsp; IF (.NOT. BeginEnvrnFlag) THEN<br />&nbsp; &nbsp; MyEnvrnFlag=.TRUE.<br />&nbsp; ENDIF</p><p>&nbsp; ! now do every timestep inits</p><p>&nbsp; DO SurfNum=1,TotSurfaces<br />&nbsp; &nbsp; IF (Surface(SurfNum)%HeatTransferAlgorithm /= HeatTransferModel_CondFD)&nbsp; CYCLE<br />&nbsp; &nbsp; IF(Surface(SurfNum)%Construction &lt;= 0) CYCLE&nbsp; ! Shading surface, not really a heat transfer surface<br />&nbsp; &nbsp; ConstrNum=Surface(SurfNum)%Construction<br />&nbsp; &nbsp; IF(Construct(ConstrNum)%TypeIsWindow) CYCLE&nbsp; !&nbsp; Windows simulated in Window module<br />&nbsp; &nbsp; SurfaceFD(SurfNum)%T&nbsp; &nbsp; &nbsp; &nbsp; = SurfaceFD(SurfNum)%TOld<br />&nbsp; &nbsp; SurfaceFD(SurfNum)%Rhov&nbsp; &nbsp; &nbsp;= SurfaceFD(SurfNum)%RhovOld<br />&nbsp; &nbsp; SurfaceFD(SurfNum)%TD&nbsp; &nbsp; &nbsp; &nbsp;= SurfaceFD(SurfNum)%TDOld<br />&nbsp; &nbsp; SurfaceFD(SurfNum)%TDT&nbsp; &nbsp; &nbsp; = SurfaceFD(SurfNum)%TDreport !PT changes from TDold to TDreport<br />&nbsp; &nbsp; SurfaceFD(SurfNum)%TDTLast&nbsp; = SurfaceFD(SurfNum)%TDOld<br />&nbsp; &nbsp; SurfaceFD(SurfNum)%EnthOld&nbsp; = SurfaceFD(SurfNum)%EnthOld<br />&nbsp; &nbsp; SurfaceFD(SurfNum)%EnthNew&nbsp; = SurfaceFD(SurfNum)%EnthOld<br />&nbsp; &nbsp; SurfaceFD(SurfNum)%EnthLast = SurfaceFD(SurfNum)%EnthOld<br />&nbsp; ENDDO</p><p>&nbsp; RETURN</p><p>END SUBROUTINE InitHeatBalFiniteDiff</p><br /><p>SUBROUTINE InitialInitHeatBalFiniteDiff</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! SUBROUTINE INFORMATION:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp;AUTHOR&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Linda Lawrie<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp;DATE WRITTEN&nbsp; &nbsp;March 2012<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp;MODIFIED&nbsp; &nbsp; &nbsp; &nbsp;na<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !&nbsp; &nbsp; &nbsp; &nbsp;RE-ENGINEERED&nbsp; na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! PURPOSE OF THIS SUBROUTINE:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! This routine performs the original allocate, inits and setup output variables for the<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! module.</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! METHODOLOGY EMPLOYED:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! REFERENCES:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! USE STATEMENTS:<br />&nbsp; USE General,&nbsp; &nbsp; &nbsp; ONLY : TrimSigDigits, RoundSigDigits<br />&nbsp; USE DataSurfaces, ONLY : HeatTransferModel_CondFD<br />&nbsp; USE DataHeatBalance, Only: HighDiffusivityThreshold, ThinMaterialLayerThreshold</p><p>&nbsp; IMPLICIT NONE ! Enforce explicit typing of all variables in this routine</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! SUBROUTINE ARGUMENT DEFINITIONS:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! SUBROUTINE PARAMETER DEFINITIONS:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! INTERFACE BLOCK SPECIFICATIONS:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! DERIVED TYPE DEFINITIONS:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! na</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! SUBROUTINE LOCAL VARIABLE DECLARATIONS:<br />&nbsp; Logical,Save :: OneTimeFlag = .true.<br />&nbsp; INTEGER :: Lay<br />&nbsp; INTEGER :: SurfNum<br />&nbsp; CHARACTER(len=MaxNameLength) :: LayChar</p><p>&nbsp; REAL(r64)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:: dxn&nbsp; &nbsp; &nbsp; &nbsp; ! Intermediate calculation of nodal spacing. This is the full dx. There is<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! a half dxn thick node at each surface. dxn is the &quot;capacitor&quot; spacing.<br />&nbsp; INTEGER&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:: ipts1&nbsp; &nbsp; &nbsp; ! Intermediate calculation for number of full thickness nodes per layer. There<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! are always two half nodes at the layer faces.<br />&nbsp; INTEGER :: Layer&nbsp; &nbsp; &nbsp; ! Loop counter<br />&nbsp; INTEGER :: OutwardMatLayerNum ! layer index, layer outward of the current layer<br />&nbsp; INTEGER :: layerNode<br />&nbsp; INTEGER :: Delt<br />&nbsp; INTEGER :: ConstrNum&nbsp; &nbsp; ! Loop counter<br />&nbsp; INTEGER :: TotNodes&nbsp; &nbsp; &nbsp;! Loop counter<br />&nbsp; INTEGER :: CurrentLayer ! Loop counter<br />&nbsp; INTEGER :: Surf&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! Loop counter<br />&nbsp; INTEGER :: index&nbsp; &nbsp; &nbsp; &nbsp; ! Loop Counters</p><p>&nbsp; REAL(r64) :: Alpha<br />&nbsp; REAL(r64) :: Malpha<br />&nbsp; REAL(r64) :: stabilitytemp<br />&nbsp; REAL(r64) :: stabilitymoist<br />&nbsp; REAL(r64) :: a<br />&nbsp; REAL(r64) :: b<br />&nbsp; REAL(r64) :: c<br />&nbsp; REAL(r64) :: d<br />&nbsp; REAL(r64) :: kt<br />&nbsp; REAL(r64) :: RhoS<br />&nbsp; REAL(r64) :: Por<br />&nbsp; REAL(r64) :: Cp<br />&nbsp; REAL(r64) :: Dv<br />&nbsp; LOGICAL :: errorsFound<br />&nbsp; REAL(r64) :: DeltaTimestep&nbsp; &nbsp; &nbsp; ! zone timestep in seconds, for local check of properties</p>]]></description>
			<author><![CDATA[null@example.com (NRGSIM)]]></author>
			<pubDate>Mon, 26 Aug 2013 19:58:11 +0000</pubDate>
			<guid>https://forums.approximatrix.com/viewtopic.php?pid=954#p954</guid>
		</item>
		<item>
			<title><![CDATA[Re: Error identification]]></title>
			<link>https://forums.approximatrix.com/viewtopic.php?pid=949#p949</link>
			<description><![CDATA[<p>The first two are related to where the <em>public</em> and <em>private</em> keywords are being incorrectly used.&nbsp; This <a href="http://stackoverflow.com/questions/221170/private-function-in-fortran">Stackoverflow question</a> shows a quick example of how to properly use them.</p><p>For the third error, you might have to provide some code (example code only if you prefer) or simple context as to why it is occurring.&nbsp; Are you calling a function that requires a pointer?&nbsp; We&#039;ll just need to learn more.</p>]]></description>
			<author><![CDATA[null@example.com (jeff)]]></author>
			<pubDate>Sun, 25 Aug 2013 02:06:47 +0000</pubDate>
			<guid>https://forums.approximatrix.com/viewtopic.php?pid=949#p949</guid>
		</item>
		<item>
			<title><![CDATA[Error identification]]></title>
			<link>https://forums.approximatrix.com/viewtopic.php?pid=946#p946</link>
			<description><![CDATA[<p>I got the following fatal errors repeating in the new code identified by the Simply Fortran IDE:</p><p>Error: PUBLIC statement at (1) is only allowed in the specification part of the module<br />Error: Syntax error in PRIVATE statement at (1)<br />Error: Component at (1) must have the POINTER attribute</p><p>Would you have any clues as to how I should interpret these?</p>]]></description>
			<author><![CDATA[null@example.com (NRGSIM)]]></author>
			<pubDate>Sat, 24 Aug 2013 16:10:37 +0000</pubDate>
			<guid>https://forums.approximatrix.com/viewtopic.php?pid=946#p946</guid>
		</item>
	</channel>
</rss>
