Dear Hal,<div><br></div><div>While at University of Wisconsin-Madison, I got started on a Type that called Refprop dll.</div><div>The overall structure is:</div><div>- Define interfaces for the subroutines in the dll.</div>
<div>- Open the library</div><div>- Create handles to the subroutines in the dll.</div><div>- Use the subroutines</div><div>- Close the dll at the end of the simulation. </div><div><br></div><div>Not all of the subroutines in Refprop were implemented, and only preliminary testing was done. In fact, all this process should be done not under a type, but as a kernell routine, so the properties are available for other types.</div>
<div>Below is the code. Please consider it as under development.</div><div>I hope that this helps.</div><div><br></div><div>Diego</div><div><br></div><div>===============</div><div><br></div><div><div>! TRNSYS Type 75: Calling REFPROP</div>
<div>! ----------------------------------------------------------------------------------------------------------------------</div><div>!</div><div>! This component calls the program REFPROP</div><div>!</div><div>! Inputs </div>
<div>! ----------------------------------------------------------------------------------------------------------------------</div><div>! Nb | Variable      | Description                                                    | Input  Units   | Internal Units </div>
<div>! ---|---------------|----------------------------------------------------------------|----------------|----------------</div><div>!  1 ! property1-i<span class="Apple-tab-span" style="white-space: pre; ">  </span> | Value of first property at point i                             | -              | - </div>
<div>!  2 ! property2-i<span class="Apple-tab-span" style="white-space: pre; "> </span> | Value of second property at point i                            | -              | - </div><div>!</div><div>!  </div><div>! Parameters</div>
<div>! ----------------------------------------------------------------------------------------------------------------------</div><div>! Nb | Variable      | Description                                                    | Param. Units   | Internal Units </div>
<div>! ---|---------------|----------------------------------------------------------------|----------------|----------------</div><div>!  1 | mode          | Not Implemented yet                                            | -              | -</div>
<div>!  2 | lu_refprop    | Logical unit number for Refprop.dll                            | -              | -!</div><div>!  3 | lu_fluid      | Logical unit number for file with fluid properties             | -              | -!</div>
<div>!  4 | n_points      | Number of points at which to calculate properties              | -              | - </div><div>!  5 ! property1-i<span class="Apple-tab-span" style="white-space: pre; ">       </span> | First property                                                 | -              | - </div>
<div>!  6 ! property2-i<span class="Apple-tab-span" style="white-space: pre; "> </span> | Second property                                                | -              | - </div><div>!</div><div>! Outputs </div><div>! ----------------------------------------------------------------------------------------------------------------------</div>
<div>! Nb | Variable      | Description                                                    | Output  Units  | Internal Units </div><div>! ---|---------------|----------------------------------------------------------------|----------------|----------------</div>
<div>!  1 ! wwm<span class="Apple-tab-span" style="white-space: pre; ">                 </span> | Molecular weight                                               | -              | - </div><div>!  2 ! ttrp<span class="Apple-tab-span" style="white-space: pre; ">                        </span> | Triple point temperature                                       | -              | - </div>
<div>!  3 ! tnbpt<span class="Apple-tab-span" style="white-space: pre; ">               </span> | Molecular weight                                               | -              | - </div><div>!  4 ! tc<span class="Apple-tab-span" style="white-space: pre; ">                  </span> | Critical temperature                                           | -              | - </div>
<div>!  5 ! pc<span class="Apple-tab-span" style="white-space: pre; ">                  </span> | Critical pressure                                              | -              | - </div><div>!  6 ! Dc<span class="Apple-tab-span" style="white-space: pre; ">                  </span> | Critical density                                               | -              | - </div>
<div>!6+1 ! Temperature-i | Temperature at point i<span class="Apple-tab-span" style="white-space: pre; ">                                                                              </span>  | -              | - </div><div>!6+2 ! Pressure-i<span class="Apple-tab-span" style="white-space: pre; ">  </span> | Pressure at point i<span class="Apple-tab-span" style="white-space: pre; ">                                                                                   </span>  | -              | - </div>
<div>!6+3 ! Enthalpy-i<span class="Apple-tab-span" style="white-space: pre; ">  </span> | Enthalpy at point i<span class="Apple-tab-span" style="white-space: pre; ">                                                                                   </span>  | -              | - </div><div>!6+4 ! Entropy-i<span class="Apple-tab-span" style="white-space: pre; ">   </span> | Entropy at point i<span class="Apple-tab-span" style="white-space: pre; ">                                                                                    </span>  | -              | - </div>
<div>!6+5 ! Quality-i<span class="Apple-tab-span" style="white-space: pre; ">   </span> | Quality at point i<span class="Apple-tab-span" style="white-space: pre; ">                                                                                    </span>  | -              | - </div><div>!6+6 ! SpecVolume-i<span class="Apple-tab-span" style="white-space: pre; ">        </span> | Specific volume at point i<span class="Apple-tab-span" style="white-space: pre; ">                                                                    </span>  | -              | - </div>
<div>!6+7 ! IntEnergy-i<span class="Apple-tab-span" style="white-space: pre; "> </span> | Internal energy at point i<span class="Apple-tab-span" style="white-space: pre; ">                                                                    </span>  | -              | - </div><div>
!6+8 ! Density-i<span class="Apple-tab-span" style="white-space: pre; ">      </span> | Density at point i<span class="Apple-tab-span" style="white-space: pre; ">                                                                                    </span>  | -              | - </div><div>!6+9 ! cp-i<span class="Apple-tab-span" style="white-space: pre; ">                        </span> | Specific heat at constant volume at point i<span class="Apple-tab-span" style="white-space: pre; ">                                   </span>  | -              | - </div>
<div>!6+10! cv-i<span class="Apple-tab-span" style="white-space: pre; ">                        </span> | Specific heat at constant pressure at point i<span class="Apple-tab-span" style="white-space: pre; ">                         </span>  | -              | - </div>
<div>!6+11! mu<span class="Apple-tab-span" style="white-space: pre; ">                  </span> | Dynamic viscosity<span class="Apple-tab-span" style="white-space: pre; ">                                                                                     </span>  | -              | - </div><div>!6+12! k <span class="Apple-tab-span" style="white-space: pre; ">                  </span> | Thermoconductivity <span class="Apple-tab-span" style="white-space: pre; ">                                                                                   </span>  | -              | - </div>
<div>!</div><div>!</div><div>! SubPrograms</div><div>! ----------------------------------------------------------------------------------------------------------------------</div><div>! </div><div>! None </div><div>!</div>
<div>! Required external librairies</div><div>! ----------------------------------------------------------------------------------------------------------------------</div><div>!</div><div>! refprop.dll</div><div>!</div><div>
!</div><div>! Revision history</div><div>! ---------------------------------------------------------------------------------------------------------------------</div><div>!</div><div>! This type was originally written by Diego A. Arias at the Solar Energy Laboratory, University of Wisconsin-Madison, </div>
<div>! in August 2006, for TRNSYS 16.</div><div>!</div><div>! Modifications:</div><div>!</div><div>! 2006-08-   </div><div>!</div><div>!</div><div>! Use of the Storage array</div><div>! ----------------------------------------------------------------------------------------------------------------------</div>
<div>! Stored array contains the values of the input signals during the previous time step</div><div>! stored((i-1) + 1 ) = icount(i)</div><div>! stored((i-1) + 2 ) = itime(i)</div><div>!</div><div>! ----------------------------------------------------------------------------------------------------------------------</div>
<div><br></div><div><br></div><div><br></div><div><br></div><div>subroutine type75(time,xin,out,t,dtdt,par,info,iCntrl,*)</div><div><br></div><div>!dec$attributes dllexport :: type75</div><div><br></div><div>use TrnsysConstants </div>
<div>use TrnsysFunctions </div><div>use KERNEL32</div><div><br></div><div>implicit none   </div><div><br></div><div>! --- External routine declarations -----------------------------------------------------------------------------------</div>
<div>! These routines are found in the file refprop.dll</div><div><br></div><div>interface</div><div><span class="Apple-tab-span" style="white-space: pre; "> </span>subroutine SETUPdll(i,hf,hfmix,hrf,ierr,herr)</div><div>
<span class="Apple-tab-span" style="white-space: pre; ">      </span>!DEC$ ATTRIBUTES DLLIMPORT :: SETUPdll</div><div><span class="Apple-tab-span" style="white-space: pre; ">            </span>parameter (ncmax=20)   !max number of components in mixture</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>integer i, ierr</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>character*255 hf(ncmax),hfmix </div><div><span class="Apple-tab-span" style="white-space: pre; ">            </span>character hrf*3, herr*255</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>end subroutine SETUPdll</div><div>end interface</div><div>pointer(lpfnfunc,SETUPdll)</div><div><br></div><div><br></div><div>interface</div><div><span class="Apple-tab-span" style="white-space: pre; ">    </span>subroutine SETREFdll(hrf,ixflag,x0,h0,s0,t0,p0,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>!DEC$ ATTRIBUTES DLLIMPORT :: SETUPdll</div><div><span class="Apple-tab-span" style="white-space: pre; ">            </span>parameter (ncmax=20)   !max number of components in mixture</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>integer ixflag, ierr</div><div><span class="Apple-tab-span" style="white-space: pre; ">              </span>character*255 hf(ncmax),hfmix </div><div><span class="Apple-tab-span" style="white-space: pre; ">            </span>character*3 hrf</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>character*255 herr</div><div><span class="Apple-tab-span" style="white-space: pre; ">                </span>double precision x0(ncmax)</div><div><span class="Apple-tab-span" style="white-space: pre; ">                </span>double precision h0,s0,t0,p0</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space: pre; ">  </span>end subroutine SETREFdll</div><div>end interface</div><div>POINTER(lpSETREF,SETREFdll)</div><div><br></div><div>interface</div><div><span class="Apple-tab-span" style="white-space: pre; ">   </span>subroutine INFOdll (icomp,wmm,ttrp,tnbpt,tc,pc,Dc,Zc,acf,dip,Rgas)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>!DEC$ ATTRIBUTES DLLIMPORT :: INFOdll</div><div><span class="Apple-tab-span" style="white-space: pre; ">             </span>integer icomp</div><div><span class="Apple-tab-span" style="white-space: pre; ">             </span>double precision wmm,ttrp,tnbpt,tc,pc,Dc,Zc,acf,dip,Rgas</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>end subroutine INFOdll</div><div>end interface</div><div>pointer(lpINFO,INFOdll)</div><div><br></div><div><br></div><div>interface</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>subroutine SATTdll (t,x,kph,p,rhol,rhov,xl,xv,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>!DEC$ ATTRIBUTES DLLIMPORT :: SATTdll</div><div><span class="Apple-tab-span" style="white-space: pre; ">             </span>parameter (ncmax=20)   !max number of components in mixture</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>double precision t,x, p, rhol, rhov, xl(ncmax), xv(ncmax)</div><div><span class="Apple-tab-span" style="white-space: pre; ">         </span>integer kph, ierr</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>character*255 herr<span class="Apple-tab-span" style="white-space: pre; ">                               </span></div><div><span class="Apple-tab-span" style="white-space: pre; ">  </span>end subroutine SATTdll</div>
<div>end interface</div><div>pointer(lpSATT,SATTdll)</div><div><br></div><div>interface</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>subroutine TPFLSHdll (t,p,x,D,Dl,Dv,xl,xv,q,e,h,s,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>!DEC$ ATTRIBUTES DLLIMPORT :: TPFLSHdll</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>parameter (ncmax=20)   !max number of components in mixture</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>integer ierr</div><div><span class="Apple-tab-span" style="white-space: pre; ">              </span>double precision t,p,x(ncmax),D,Dl,Dv,xl(ncmax),xv(ncmax),q,e,h,s,cv,cp,w</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>character*255 herr</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>end subroutine TPFLSHdll</div><div>end interface</div><div>
pointer(lpTPFLSH,TPFLSHdll)</div><div><br></div><div>interface</div><div><span class="Apple-tab-span" style="white-space: pre; ">   </span>subroutine TDFLSHdll (t,D,x,p,Dl,Dv,xl,xv,q,e,h,s,cv,cp,w,ierr,herr)</div><div><span class="Apple-tab-span" style="white-space: pre; ">              </span>!DEC$ ATTRIBUTES DLLIMPORT :: TDFLSHdll</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>parameter (ncmax=20)   !max number of components in mixture</div><div><span class="Apple-tab-span" style="white-space: pre; ">               </span>integer ierr</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>double precision t,p,x(ncmax),D,Dl,Dv,xl(ncmax),xv(ncmax),q,e,h,s,cv,cp,w</div><div><span class="Apple-tab-span" style="white-space: pre; ">         </span>character*255 herr</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>end subroutine TDFLSHdll</div><div>end interface</div><div>pointer(lpTDFLSH,TDFLSHdll)</div><div><br></div><div>interface</div><div><span class="Apple-tab-span" style="white-space: pre; ">   </span>subroutine PDFLSHdll (p,D,x,t,Dl,Dv,xl,xv,q,e,h,s,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>!DEC$ ATTRIBUTES DLLIMPORT :: PDFLSHdll</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>parameter (ncmax=20)   !max number of components in mixture</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>integer ierr</div><div><span class="Apple-tab-span" style="white-space: pre; ">              </span>double precision t,p,x(ncmax),D,Dl,Dv,xl(ncmax),xv(ncmax),q,e,h,s,cv,cp,w</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>character*255 herr</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>end subroutine PDFLSHdll</div><div>end interface</div><div>
pointer(lpPDFLSH,PDFLSHdll)</div><div><br></div><div>interface</div><div><span class="Apple-tab-span" style="white-space: pre; ">   </span>subroutine PHFLSHdll (p,h,x,t,D,Dl,Dv,xl,xv,q,e,s,cv,cp,w,ierr,herr)</div><div><span class="Apple-tab-span" style="white-space: pre; ">              </span>!DEC$ ATTRIBUTES DLLIMPORT :: PHFLSHdll</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>parameter (ncmax=20)   !max number of components in mixture</div><div><span class="Apple-tab-span" style="white-space: pre; ">               </span>integer ierr</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>double precision t,p,x(ncmax),D,Dl,Dv,xl(ncmax),xv(ncmax),q,e,h,s,cv,cp,w</div><div><span class="Apple-tab-span" style="white-space: pre; ">         </span>character*255 herr</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>end subroutine PHFLSHdll</div><div>end interface</div><div>pointer(lpPHFLSH,PHFLSHdll)</div><div><br></div><div>interface</div><div>    subroutine PSFLSHdll (p,s,x,t,D,Dl,Dv,xl,xv,q,e,h,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>!DEC$ ATTRIBUTES DLLIMPORT :: PSFLSHdll</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>parameter (ncmax=20)   !max number of components in mixture</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>integer ierr</div><div><span class="Apple-tab-span" style="white-space: pre; ">              </span>double precision t,p,x(ncmax),D,Dl,Dv,xl(ncmax),xv(ncmax),q,e,h,s,cv,cp,w</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>character*255 herr</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>end subroutine PSFLSHdll</div><div>end interface</div><div>
pointer(lpPSFLSH,PSFLSHdll)</div><div><br></div><div>interface</div><div><span class="Apple-tab-span" style="white-space: pre; ">   </span>subroutine PEFLSHdll (p,e,x,t,D,Dl,Dv,xl,xv,q,h,s,cv,cp,w,ierr,herr)</div><div><span class="Apple-tab-span" style="white-space: pre; ">              </span>!DEC$ ATTRIBUTES DLLIMPORT :: PEFLSHdll</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>parameter (ncmax=20)   !max number of components in mixture</div><div><span class="Apple-tab-span" style="white-space: pre; ">               </span>integer ierr</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>double precision t,p,x(ncmax),D,Dl,Dv,xl(ncmax),xv(ncmax),q,e,h,s,cv,cp,w</div><div><span class="Apple-tab-span" style="white-space: pre; ">         </span>character*255 herr</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>end subroutine PEFLSHdll</div><div>end interface</div><div>pointer(lpPEFLSH,PEFLSHdll)</div><div><br></div><div>interface</div><div><span class="Apple-tab-span" style="white-space: pre; ">   </span>subroutine THFLSHdll (t,h,x,kr,p,D,Dl,Dv,xl,xv,q,e,s,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>!DEC$ ATTRIBUTES DLLIMPORT :: THFLSHdll</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>parameter (ncmax=20)   !max number of components in mixture</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>integer ierr, kr</div><div><span class="Apple-tab-span" style="white-space: pre; ">          </span>double precision t,p,x(ncmax),D,Dl,Dv,xl(ncmax),xv(ncmax),q,e,h,s,cv,cp,w</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>character*255 herr</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>end subroutine THFLSHdll</div><div>end interface</div><div>
pointer(lpTHFLSH,THFLSHdll)</div><div><br></div><div>interface</div><div><span class="Apple-tab-span" style="white-space: pre; ">   </span>subroutine TSFLSHdll (t,s,x,kr,p,D,Dl,Dv,xl,xv,q,e,h,cv,cp,w,ierr,herr)</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>!DEC$ ATTRIBUTES DLLIMPORT :: TSFLSHdll</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>parameter (ncmax=20)   !max number of components in mixture</div><div><span class="Apple-tab-span" style="white-space: pre; ">               </span>integer ierr, kr</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>double precision t,p,x(ncmax),D,Dl,Dv,xl(ncmax),xv(ncmax),q,e,h,s,cv,cp,w</div><div><span class="Apple-tab-span" style="white-space: pre; ">         </span>character*255 herr</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>end subroutine TSFLSHdll</div><div>end interface</div><div>pointer(lpTSFLSH,TSFLSHdll)</div><div><br></div><div>interface</div><div><span class="Apple-tab-span" style="white-space: pre; ">   </span>subroutine TEFLSHdll (t,e,x,kr,p,D,Dl,Dv,xl,xv,q,h,s,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>!DEC$ ATTRIBUTES DLLIMPORT :: TEFLSHdll</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>parameter (ncmax=20)   !max number of components in mixture</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>integer ierr, kr</div><div><span class="Apple-tab-span" style="white-space: pre; ">          </span>double precision t,p,x(ncmax),D,Dl,Dv,xl(ncmax),xv(ncmax),q,e,h,s,cv,cp,w</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>character*255 herr</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>end subroutine TEFLSHdll</div><div>end interface</div><div>
pointer(lpTEFLSH,TEFLSHdll)</div><div><br></div><div>interface</div><div>    subroutine DHFLSHdll (D,h,x,t,p,Dl,Dv,xl,xv,q,e,s,cv,cp,w,ierr,herr)</div><div><span class="Apple-tab-span" style="white-space: pre; ">            </span>!DEC$ ATTRIBUTES DLLIMPORT :: DHFLSHdll</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>parameter (ncmax=20)   !max number of components in mixture</div><div><span class="Apple-tab-span" style="white-space: pre; ">               </span>integer ierr</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>double precision t,p,x(ncmax),D,Dl,Dv,xl(ncmax),xv(ncmax),q,e,h,s,cv,cp,w</div><div><span class="Apple-tab-span" style="white-space: pre; ">         </span>character*255 herr</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>end subroutine DHFLSHdll</div><div>end interface</div><div>pointer(lpDHFLSH,DHFLSHdll)</div><div><br></div><div>interface</div><div>    subroutine DSFLSHdll (D,s,x,t,p,Dl,Dv,xl,xv,q,e,h,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>!DEC$ ATTRIBUTES DLLIMPORT :: DSFLSHdll</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>parameter (ncmax=20)   !max number of components in mixture</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>integer ierr</div><div><span class="Apple-tab-span" style="white-space: pre; ">              </span>double precision t,p,x(ncmax),D,Dl,Dv,xl(ncmax),xv(ncmax),q,e,h,s,cv,cp,w</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>character*255 herr</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>end subroutine DSFLSHdll</div><div>end interface</div><div>
pointer(lpDSFLSH,DSFLSHdll)</div><div><br></div><div>interface</div><div>    subroutine DEFLSHdll (D,e,x,t,p,Dl,Dv,xl,xv,q,h,s,cv,cp,w,ierr,herr)</div><div><span class="Apple-tab-span" style="white-space: pre; ">            </span>!DEC$ ATTRIBUTES DLLIMPORT :: DEFLSHdll</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>parameter (ncmax=20)   !max number of components in mixture</div><div><span class="Apple-tab-span" style="white-space: pre; ">               </span>integer ierr</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>double precision t,p,x(ncmax),D,Dl,Dv,xl(ncmax),xv(ncmax),q,e,h,s,cv,cp,w</div><div><span class="Apple-tab-span" style="white-space: pre; ">         </span>character*255 herr</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>end subroutine DEFLSHdll</div><div>end interface</div><div>pointer(lpDEFLSH,DEFLSHdll)</div><div><br></div><div>interface</div><div><span class="Apple-tab-span" style="white-space: pre; ">   </span>subroutine TQFLSHdll (t,q,x,kq,p,D,Dl,Dv,xl,xv,e,h,s,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>!DEC$ ATTRIBUTES DLLIMPORT :: TQFLSHdll</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>parameter (ncmax=20)   !max number of components in mixture</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>integer ierr, kq</div><div><span class="Apple-tab-span" style="white-space: pre; ">          </span>double precision t,p,x(ncmax),D,Dl,Dv,xl(ncmax),xv(ncmax),q,e,h,s,cv,cp,w</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>character*255 herr</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>end subroutine TQFLSHdll</div><div>end interface</div><div>
pointer(lpTQFLSH,TQFLSHdll)</div><div><br></div><div>interface</div><div><span class="Apple-tab-span" style="white-space: pre; ">   </span>subroutine PQFLSHdll (p,q,x,kq,t,D,Dl,Dv,xl,xv,e,h,s,cv,cp,w,ierr,herr)</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>!DEC$ ATTRIBUTES DLLIMPORT :: PQFLSHdll</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>parameter (ncmax=20)   !max number of components in mixture</div><div><span class="Apple-tab-span" style="white-space: pre; ">               </span>integer ierr, kq</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>double precision t,p,x(ncmax),D,Dl,Dv,xl(ncmax),xv(ncmax),q,e,h,s,cv,cp,w</div><div><span class="Apple-tab-span" style="white-space: pre; ">         </span>character*255 herr</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>end subroutine PQFLSHdll</div><div>end interface</div><div>pointer(lpPQFLSH,PQFLSHdll)</div><div><br></div><div>interface</div><div>    subroutine HSFLSHdll (h,s,x,t,p,D,Dl,Dv,xl,xv,q,e,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>!DEC$ ATTRIBUTES DLLIMPORT :: HSFLSHdll</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>parameter (ncmax=20)   !max number of components in mixture</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>integer ierr</div><div><span class="Apple-tab-span" style="white-space: pre; ">              </span>double precision t,p,x(ncmax),D,Dl,Dv,xl(ncmax),xv(ncmax),q,e,h,s,cv,cp,w</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>character*255 herr</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>end subroutine HSFLSHdll</div><div>end interface</div><div>
pointer(lpHSFLSH,HSFLSHdll)</div><div><br></div><div>interface</div><div><span class="Apple-tab-span" style="white-space: pre; ">   </span>subroutine TRNPRPdll (t,rho,x,eta,tcx,ierr,herr)</div><div><span class="Apple-tab-span" style="white-space: pre; ">          </span>!DEC$ ATTRIBUTES DLLIMPORT :: TRNPRPdll</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>parameter (ncmax=20)   !max number of components in mixture</div><div><span class="Apple-tab-span" style="white-space: pre; ">               </span>double precision t,rho,x(ncmax),eta,tcx</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>integer ierr</div><div><span class="Apple-tab-span" style="white-space: pre; ">              </span>character*255 herr</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>end subroutine TRNPRPdll</div>
<div>end interface</div><div>pointer(lpTRNPRP,TRNPRPdll)</div><div><br></div><div><br></div><div>! --- TRNSYS declarations ----------------------------------------------------------------------------------------------</div>
<div>integer, parameter<span class="Apple-tab-span" style="white-space: pre; "> </span>:: NImax=100, NP =4, ND=0,  ncmax = 20, NSmax = 200</div><div>integer, parameter :: nmaxpoints = 20</div><div>real(8), intent(in)    :: time, xin, par, t</div>
<div>real(8), intent(inout) :: dtdt</div><div>real(8), intent(out)   :: out</div><div>integer, intent(inout) :: info, iCntrl</div><div><br></div><div>dimension xin(NImax), par(NP), OUT(nMaxOutputs), info(15)</div><div><br>
</div><div>! --- Local variables --------------------------------------------------------------------------------------------------</div><div>! --- Parameters:</div><div>integer :: mode</div><div>integer :: n_points</div>
<div><br></div><div>! Intermediate variables</div><div>integer NI, NO, NS</div><div>integer iUnit</div><div>integer icomp, kr, kq</div><div>integer hLib,i, ierr, ist</div><div>integer prop1(nmaxpoints), prop2(nmaxpoints), propCase(nmaxpoints)</div>
<div><br></div><div>character*255 hf(ncmax),hfmix, herr</div><div>character*3 hrf</div><div>character (len=maxFileWidth) :: refpropFile</div><div>character (len=maxFileWidth) :: message</div><div><br></div><div>logical :: openedLibrary = .false.</div>
<div>logical :: closedLibrary = .false.</div><div><br></div><div>double precision wmm<span class="Apple-tab-span" style="white-space: pre; ">     </span>!Molecular weight</div><div>double precision ttrp<span class="Apple-tab-span" style="white-space: pre; ">    </span>!Triple point temperature</div>
<div>double precision tnbpt<span class="Apple-tab-span" style="white-space: pre; ">     </span>!Normal boiling point temperature</div><div>double precision tc<span class="Apple-tab-span" style="white-space: pre; ">              </span>!Critical temperature</div>
<div>double precision pc<span class="Apple-tab-span" style="white-space: pre; ">                </span>!Critical pressure</div><div>double precision Dc<span class="Apple-tab-span" style="white-space: pre; ">             </span>!Critical density</div>
<div>double precision Zc<span class="Apple-tab-span" style="white-space: pre; ">                </span>!Critical compressibility factor</div><div>double precision acf<span class="Apple-tab-span" style="white-space: pre; ">      </span>!Critical accectric factor</div>
<div>double precision dip<span class="Apple-tab-span" style="white-space: pre; ">       </span>!Dipole moment</div><div>double precision Rgas<span class="Apple-tab-span" style="white-space: pre; ">       </span>!Gas constant</div><div>
double precision t1<span class="Apple-tab-span" style="white-space: pre; ">           </span>!Temperature</div><div>double precision p<span class="Apple-tab-span" style="white-space: pre; ">            </span>!Pressure</div><div>double precision x(ncmax)<span class="Apple-tab-span" style="white-space: pre; ">                </span>!</div>
<div>double precision D<span class="Apple-tab-span" style="white-space: pre; ">         </span>!Density</div><div>double precision Dl<span class="Apple-tab-span" style="white-space: pre; ">               </span>!Liquid density</div><div>double precision Dv<span class="Apple-tab-span" style="white-space: pre; ">                </span>!Liquid density</div>
<div>double precision xl(ncmax)<span class="Apple-tab-span" style="white-space: pre; "> </span></div><div>double precision xv(ncmax)</div><div>double precision q<span class="Apple-tab-span" style="white-space: pre; ">               </span>!Quality</div>
<div>double precision e<span class="Apple-tab-span" style="white-space: pre; ">         </span>!Internal energy</div><div>double precision h<span class="Apple-tab-span" style="white-space: pre; ">                </span>!Enthalpy</div><div>double precision s<span class="Apple-tab-span" style="white-space: pre; ">               </span>!Entropy</div>
<div>double precision cv<span class="Apple-tab-span" style="white-space: pre; ">                </span>!Specific heat</div><div>double precision cp<span class="Apple-tab-span" style="white-space: pre; ">         </span>!Specific heat</div><div>
double precision w<span class="Apple-tab-span" style="white-space: pre; ">            </span>!</div><div>double precision mu<span class="Apple-tab-span" style="white-space: pre; ">              </span>!Dynamic viscosity</div><div>double precision kt<span class="Apple-tab-span" style="white-space: pre; ">             </span>!Thermal conductivity</div>
<div>double precision stored(NSmax)</div><div><br></div><div>! Read parameters</div><div>mode<span class="Apple-tab-span" style="white-space: pre; ">                 </span>= jfix(par(1) + 0.1)</div><div>n_points<span class="Apple-tab-span" style="white-space: pre; ">              </span>= jfix(par(2) + 0.1)</div>
<div><br></div><div>do i=1,n_points</div><div><span class="Apple-tab-span" style="white-space: pre; ">    </span>prop1(i) = jfix(par((i-1)*2 + 1 + 2) + 0.1)</div><div><span class="Apple-tab-span" style="white-space: pre; ">       </span>prop2(i) = jfix(par((i-1)*2 + 2 + 2) + 0.1)</div>
<div>enddo</div><div><br></div><div>!-----------------------------------------------------------------------------------------------------------------------</div><div>! --- Initial call to detect the TRNSYS version for which this Type is written -----------------------------------------</div>
<div>if (info(7) .eq. -2) then</div><div>    info(12) = 16   ! This component is a TRNSYS 16 Type</div><div>    return 1</div><div>endif</div><div><br></div><div>!-----------------------------------------------------------------------------------------------------------------------</div>
<div>! --- Very last call in simulation -------------------------------------------------------------------------------------</div><div>if (info(8).eq.-1) then</div><div><span class="Apple-tab-span" style="white-space: pre; ">      </span>iSt = FreeLibrary(hLib)</div>
<div>    return 1    !    </div><div>endif</div><div><br></div><div>!-----------------------------------------------------------------------------------------------------------------------</div><div>! --- Extra call after convergence at a time step - The type should not modify its outputs here ------------------------</div>
<div>if (info(13) .gt. 0) then</div><div>    return 1</div><div>endif</div><div><br></div><div>!-----------------------------------------------------------------------------------------------------------------------</div>
<div>! --- Initialization call (not a simulation call) ----------------------------------------------------------------------</div><div>if (info(7) .eq. -1) then</div><div><span class="Apple-tab-span" style="white-space: pre; ">    </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>iUnit = info(1)</div><div><span class="Apple-tab-span" style="white-space: pre; ">   </span>NI = n_points*2</div><div><span class="Apple-tab-span" style="white-space: pre; ">   </span>NO = n_points*12 + 6</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>NS = n_points + 7</div><div>    info(6)  = NO<span class="Apple-tab-span" style="white-space: pre; ">                                </span> ! Set outputs number</div><div>    info(9)  = 1<span class="Apple-tab-span" style="white-space: pre; ">                             </span> ! This type's outputs depend upon the passage of time</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>info(10) = 0</div><div>    call typeck(1,info,NI,NP,ND) ! Check the number of inputs/parameters/derivatives</div><div><span class="Apple-tab-span" style="white-space: pre; ">   </span>call setStorageSize(NS,info)<span class="Apple-tab-span" style="white-space: pre; ">     </span>!Set number of storage spots</div>
<div>    return 1    </div><div>endif</div><div><br></div><div>!-----------------------------------------------------------------------------------------------------------------------</div><div>! --- First time step - No iterations ----------------------------------------------------------------------------------</div>
<div>if ( time .lt. (getSimulationStartTime()+getSimulationTimeStep()/2.0) ) then</div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre; ">       </span>!Check values of parameters</div><div><span class="Apple-tab-span" style="white-space: pre; ">       </span>if (mode /= 1)<span class="Apple-tab-span" style="white-space: pre; ">           </span>   call typeck(-4,info,0,1,0)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>if (n_points < 1)<span class="Apple-tab-span" style="white-space: pre; ">     </span>   call typeck(-4,info,0,2,0)</div><div><span class="Apple-tab-span" style="white-space: pre; ">     </span>do i=1,n_points</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>if ((prop1(i) < 1).or.(prop1(i)>7))<span class="Apple-tab-span" style="white-space: pre; ">        </span>   call typeck(-4,info,0,((i-1)*2+3),0)</div><div>
<span class="Apple-tab-span" style="white-space: pre; ">              </span>if ((prop2(i) < 1).or.(prop2(i)>7))<span class="Apple-tab-span" style="white-space: pre; ">        </span>   call typeck(-4,info,0,((i-1)*2+4),0)</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>if (prop1(i) == prop2(i)) <span class="Apple-tab-span" style="white-space: pre; ">                       </span>   call typeck(-4,info,0,((i-1)*2+3),0)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>enddo</div><div><span class="Apple-tab-span" style="white-space: pre; ">     </span></div><div><span class="Apple-tab-span" style="white-space: pre; ">  </span>!Decide the case for calculation of properties<span class="Apple-tab-span" style="white-space: pre; ">   </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>do i=1,n_points</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>if (((prop1(i)==1).and.(prop2(i)==2)).or.((prop1(i)==2).and.(prop2(i)==1))) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>propCase(i) = 1<span class="Apple-tab-span" style="white-space: pre; ">  </span>!TP</div><div><span class="Apple-tab-span" style="white-space: pre; ">               </span>endif</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>if (((prop1(i)==1).and.(prop2(i)==3)).or.((prop1(i)==3).and.(prop2(i)==1))) then</div><div><span class="Apple-tab-span" style="white-space: pre; ">                  </span>propCase(i) = 2<span class="Apple-tab-span" style="white-space: pre; ">  </span>!TH</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">             </span>if (((prop1(i)==1).and.(prop2(i)==4)).or.((prop1(i)==4).and.(prop2(i)==1))) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>propCase(i) = 3<span class="Apple-tab-span" style="white-space: pre; ">  </span>!TS</div><div><span class="Apple-tab-span" style="white-space: pre; ">               </span>endif</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>if (((prop1(i)==1).and.(prop2(i)==5)).or.((prop1(i)==5).and.(prop2(i)==1))) then</div><div><span class="Apple-tab-span" style="white-space: pre; ">                  </span>propCase(i) = 4<span class="Apple-tab-span" style="white-space: pre; ">  </span>!TQ</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">             </span>if (((prop1(i)==1).and.(prop2(i)==6)).or.((prop1(i)==6).and.(prop2(i)==1))) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>propCase(i) = 5<span class="Apple-tab-span" style="white-space: pre; ">  </span>!TD</div><div>!DAA### - THE FUNCTION USES DENSITY BUT INPUT SHOULD BE SPECIFIC VOLUME!!!</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">             </span>if (((prop1(i)==1).and.(prop2(i)==7)).or.((prop1(i)==7).and.(prop2(i)==1))) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>propCase(i) = 6<span class="Apple-tab-span" style="white-space: pre; ">  </span>!TE</div><div><span class="Apple-tab-span" style="white-space: pre; ">               </span>endif</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>if (((prop1(i)==2).and.(prop2(i)==3)).or.((prop1(i)==3).and.(prop2(i)==2))) then</div><div><span class="Apple-tab-span" style="white-space: pre; ">                  </span>propCase(i) = 7<span class="Apple-tab-span" style="white-space: pre; ">  </span>!PH</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">             </span>if (((prop1(i)==2).and.(prop2(i)==4)).or.((prop1(i)==4).and.(prop2(i)==2))) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>propCase(i) = 8<span class="Apple-tab-span" style="white-space: pre; ">  </span>!PS</div><div><span class="Apple-tab-span" style="white-space: pre; ">               </span>endif</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>if (((prop1(i)==2).and.(prop2(i)==5)).or.((prop1(i)==5).and.(prop2(i)==2))) then</div><div><span class="Apple-tab-span" style="white-space: pre; ">                  </span>propCase(i) = 9<span class="Apple-tab-span" style="white-space: pre; ">  </span>!PQ</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">             </span>if (((prop1(i)==2).and.(prop2(i)==6)).or.((prop1(i)==6).and.(prop2(i)==2))) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>propCase(i) = 10<span class="Apple-tab-span" style="white-space: pre; "> </span>!PD</div><div>!DAA### - THE FUNCTION USES DENSITY BUT INPUT SHOULD BE SPECIFIC VOLUME!!!</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">             </span>if (((prop1(i)==2).and.(prop2(i)==7)).or.((prop1(i)==7).and.(prop2(i)==2))) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>propCase(i) = 11<span class="Apple-tab-span" style="white-space: pre; "> </span>!PE</div><div><span class="Apple-tab-span" style="white-space: pre; ">               </span>endif</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>if (((prop1(i)==3).and.(prop2(i)==4)).or.((prop1(i)==4).and.(prop2(i)==3))) then</div><div><span class="Apple-tab-span" style="white-space: pre; ">                  </span>propCase(i) = 12<span class="Apple-tab-span" style="white-space: pre; "> </span>!HS</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">             </span>if (((prop1(i)==3).and.(prop2(i)==5)).or.((prop1(i)==5).and.(prop2(i)==3))) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>propCase(i) = 13<span class="Apple-tab-span" style="white-space: pre; "> </span>!HQ-NOT IMPLEMENTED DAA###</div><div><span class="Apple-tab-span" style="white-space: pre; ">                </span>endif</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>if (((prop1(i)==3).and.(prop2(i)==6)).or.((prop1(i)==6).and.(prop2(i)==3))) then</div><div><span class="Apple-tab-span" style="white-space: pre; ">                  </span>propCase(i) = 14<span class="Apple-tab-span" style="white-space: pre; "> </span>!HD</div>
<div>!DAA### - THE FUNCTION USES DENSITY BUT INPUT SHOULD BE SPECIFIC VOLUME!!!</div><div><span class="Apple-tab-span" style="white-space: pre; ">          </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">             </span>if (((prop1(i)==3).and.(prop2(i)==7)).or.((prop1(i)==7).and.(prop2(i)==3))) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>propCase(i) = 15<span class="Apple-tab-span" style="white-space: pre; "> </span>!HE-NOT IMPLEMENTED DAA###</div><div><span class="Apple-tab-span" style="white-space: pre; ">                </span>endif</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>if (((prop1(i)==4).and.(prop2(i)==5)).or.((prop1(i)==5).and.(prop2(i)==4))) then</div><div><span class="Apple-tab-span" style="white-space: pre; ">                  </span>propCase(i) = 16<span class="Apple-tab-span" style="white-space: pre; "> </span>!SQ-NOT IMPLEMENTED DAA###</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">             </span>if (((prop1(i)==4).and.(prop2(i)==6)).or.((prop1(i)==6).and.(prop2(i)==4))) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>propCase(i) = 17<span class="Apple-tab-span" style="white-space: pre; "> </span>!DS</div><div>!DAA### - THE FUNCTION USES DENSITY BUT INPUT SHOULD BE SPECIFIC VOLUME!!!</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">             </span>if (((prop1(i)==4).and.(prop2(i)==7)).or.((prop1(i)==7).and.(prop2(i)==4))) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>propCase(i) = 18<span class="Apple-tab-span" style="white-space: pre; "> </span>!SE-NOT IMPLEMENTED DAA###</div><div><span class="Apple-tab-span" style="white-space: pre; ">                </span>endif</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>if (((prop1(i)==5).and.(prop2(i)==6)).or.((prop1(i)==6).and.(prop2(i)==5))) then</div><div><span class="Apple-tab-span" style="white-space: pre; ">                  </span>propCase(i) = 19<span class="Apple-tab-span" style="white-space: pre; "> </span>!QD-NOT IMPLEMENTED DAA###</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">             </span>if (((prop1(i)==5).and.(prop2(i)==7)).or.((prop1(i)==7).and.(prop2(i)==5))) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>propCase(i) = 20<span class="Apple-tab-span" style="white-space: pre; "> </span>!QE-NOT IMPLEMENTED DAA###</div><div><span class="Apple-tab-span" style="white-space: pre; ">                </span>endif</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>if (((prop1(i)==6).and.(prop2(i)==7)).or.((prop1(i)==7).and.(prop2(i)==6))) then</div><div><span class="Apple-tab-span" style="white-space: pre; ">                  </span>propCase(i) = 21<span class="Apple-tab-span" style="white-space: pre; "> </span>!DE-NOT IMPLEMENTED DAA###</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">     </span>enddo</div><div><br></div><div>    ! Find the location of the REFPROP.DLL from the first label</div>
<div>    refpropFile  =getlabel(INFO(1),1)</div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre; ">      </span>!Create handle to REFPROP.dll and internal functions</div><div><span class="Apple-tab-span" style="white-space: pre; ">      </span>if (.not.(openedLibrary)) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>openedLibrary = .true.</div><div><span class="Apple-tab-span" style="white-space: pre; ">            </span>! Create a handle to the refprop.dll</div><div><span class="Apple-tab-span" style="white-space: pre; ">              </span>hLib = LoadLibrary(TRIM(refpropFile))</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>! Find addressses to the internal functions</div><div><span class="Apple-tab-span" style="white-space: pre; ">               </span>lpfnfunc = GetProcAddress(hLib,"SETUPdll")</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>lpINFO = GetProcAddress(hLib,"INFOdll")</div><div><span class="Apple-tab-span" style="white-space: pre; ">         </span>lpTPFLSH = GetProcAddress(hLib,"TPFLSHdll")</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>lpTHFLSH = GetProcAddress(hLib,"THFLSHdll")</div><div><span class="Apple-tab-span" style="white-space: pre; ">             </span>lpTSFLSH = GetProcAddress(hLib,"TSFLSHdll")</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>lpTQFLSH = GetProcAddress(hLib,"TQFLSHdll")</div><div><span class="Apple-tab-span" style="white-space: pre; ">             </span>lpTDFLSH = GetProcAddress(hLib,"TDFLSHdll")</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>lpTEFLSH = GetProcAddress(hLib,"TEFLSHdll")</div><div><span class="Apple-tab-span" style="white-space: pre; ">             </span>lpPHFLSH = GetProcAddress(hLib,"PHFLSHdll")</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>lpPSFLSH = GetProcAddress(hLib,"PSFLSHdll")</div><div><span class="Apple-tab-span" style="white-space: pre; ">             </span>lpPQFLSH = GetProcAddress(hLib,"PQFLSHdll")</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>lpPDFLSH = GetProcAddress(hLib,"PDFLSHdll")<span class="Apple-tab-span" style="white-space: pre; ">            </span></div><div><span class="Apple-tab-span" style="white-space: pre; ">          </span>lpPEFLSH = GetProcAddress(hLib,"PEFLSHdll")<span class="Apple-tab-span" style="white-space: pre; ">            </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>lpHSFLSH = GetProcAddress(hLib,"HSFLSHdll")<span class="Apple-tab-span" style="white-space: pre; ">            </span></div><div>!<span class="Apple-tab-span" style="white-space: pre; ">         </span>lpHQFLSH = GetProcAddress(hLib,"HQFLSHdll")<span class="Apple-tab-span" style="white-space: pre; ">            </span>!DAA### NOT IMPLEMENTED</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>lpDHFLSH = GetProcAddress(hLib,"DHFLSHdll")<span class="Apple-tab-span" style="white-space: pre; ">            </span></div><div>!<span class="Apple-tab-span" style="white-space: pre; ">         </span>lpHEFLSH = GetProcAddress(hLib,"HEFLSHdll")<span class="Apple-tab-span" style="white-space: pre; ">            </span>!DAA### NOT IMPLEMENTED</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>lpDSFLSH = GetProcAddress(hLib,"DSFLSHdll")<span class="Apple-tab-span" style="white-space: pre; ">            </span></div><div>!<span class="Apple-tab-span" style="white-space: pre; ">         </span>lpSEFLSH = GetProcAddress(hLib,"SEFLSHdll")<span class="Apple-tab-span" style="white-space: pre; ">            </span>!DAA### NOT IMPLEMENTED</div>
<div>!<span class="Apple-tab-span" style="white-space: pre; ">          </span>lpQDFLSH = GetProcAddress(hLib,"QDFLSHdll")<span class="Apple-tab-span" style="white-space: pre; ">            </span>!DAA### NOT IMPLEMENTED</div><div>
!<span class="Apple-tab-span" style="white-space: pre; ">             </span>lpQEFLSH = GetProcAddress(hLib,"QEFLSHdll")<span class="Apple-tab-span" style="white-space: pre; ">            </span>!DAA### NOT IMPLEMENTED</div><div>!<span class="Apple-tab-span" style="white-space: pre; ">          </span>lpDEFLSH = GetProcAddress(hLib,"DEFLSHdll")<span class="Apple-tab-span" style="white-space: pre; ">            </span>!DAA### NOT IMPLEMENTED</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>lpTRNPRP = GetProcAddress(hLib,"TRNPRPdll")<span class="Apple-tab-span" style="white-space: pre; ">            </span></div><div><span class="Apple-tab-span" style="white-space: pre; ">  </span>endif</div>
<div><br></div><div>!       Units are K, kPa, mol/dm^3, mole fraction, J/mol, J/mol-K, m/s</div><div>!       uPa-s, W/m-K, N/m</div><div><br></div><div>    ! Find the location of file with the fluid properties from the second label</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>hf(1) = getlabel(INFO(1),2)</div><div><span class="Apple-tab-span" style="white-space: pre; ">       </span>!Initialize REFPROP</div><div>    i=1</div><div><span class="Apple-tab-span" style="white-space: pre; "> </span>hrf='DEF'<span class="Apple-tab-span" style="white-space: pre; ">                        </span>! default reference state as specified in fluid file</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>CALL SETUPdll(i,hf,hfmix,hrf,ierr,herr)</div><div><span class="Apple-tab-span" style="white-space: pre; ">   </span>! Get basic information about the substance</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>CALL INFOdll (icomp,wmm,ttrp,tnbpt,tc,pc,Dc,Zc,acf,dip,Rgas)</div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre; ">     </span>!Set storage variables</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>stored(1) = wmm</div><div><span class="Apple-tab-span" style="white-space: pre; ">   </span>stored(2) = ttrp</div><div><span class="Apple-tab-span" style="white-space: pre; ">  </span>stored(3) = tnbpt</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>stored(4) = tc</div><div><span class="Apple-tab-span" style="white-space: pre; ">    </span>stored(5) = pc</div><div><span class="Apple-tab-span" style="white-space: pre; ">    </span>stored(6) = Dc</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>stored(7) = Rgas</div><div><span class="Apple-tab-span" style="white-space: pre; ">  </span>do i=1,n_points</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>stored(7+i) = propCase(i)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>enddo</div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre; ">    </span>call setStorageVars(stored,NS,info)</div><div><br></div><div>
endif</div><div><br></div><div>! --- Iterative Call ---------------------------------------------------------------------------------------------------</div><div><br></div><div>if ( iUnit /= info(1)) then</div><div><span class="Apple-tab-span" style="white-space: pre; ">       </span>call getStorageVars(stored,NS,info)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>wmm   = stored(1)</div><div><span class="Apple-tab-span" style="white-space: pre; "> </span>ttrp  = stored(2)</div><div><span class="Apple-tab-span" style="white-space: pre; "> </span>tnbpt = stored(3)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>tc    = stored(4)</div><div><span class="Apple-tab-span" style="white-space: pre; "> </span>pc    = stored(5)</div><div><span class="Apple-tab-span" style="white-space: pre; "> </span>Dc    = stored(6)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>Rgas  = stored(7)</div><div><span class="Apple-tab-span" style="white-space: pre; "> </span>do i=1,n_points</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>propCase(i) = stored(7+i)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>enddo</div><div><br></div><div>    ! Find the location of file with the fluid properties from the second label</div><div><span class="Apple-tab-span" style="white-space: pre; ">      </span>hf(1) = getlabel(INFO(1),2)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>!Initialize REFPROP</div><div>    i=1</div><div><span class="Apple-tab-span" style="white-space: pre; "> </span>hrf='DEF'<span class="Apple-tab-span" style="white-space: pre; ">                        </span>! default reference state as specified in fluid file</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>CALL SETUPdll(i,hf,hfmix,hrf,ierr,herr)</div><div>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">       </span></div><div><span class="Apple-tab-span" style="white-space: pre; ">  </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span></div><div>do i=1, n_points</div><div><span class="Apple-tab-span" style="white-space: pre; ">   </span>select case ( propCase(i))</div><div><span class="Apple-tab-span" style="white-space: pre; ">                </span>case(1)<span class="Apple-tab-span" style="white-space: pre; ">          </span>!TP </div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>if (prop1(i) == 1) then</div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>t1 = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>p  = xin( (i-1)*2 + 2) </div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div><div><span class="Apple-tab-span" style="white-space: pre; ">                              </span>t1 = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>p  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">                     </span>call TPFLSHdll (t1,p,x,D,Dl,Dv,xl,xv,q,e,h,s,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(2)<span class="Apple-tab-span" style="white-space: pre; ">          </span>!TH</div><div><span class="Apple-tab-span" style="white-space: pre; ">                       </span>if (prop1(i) == 1) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>t1 = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>h  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>t1 = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>h  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">                     </span>call THFLSHdll (t1,h,x,kr,p,D,Dl,Dv,xl,xv,q,e,s,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(3)<span class="Apple-tab-span" style="white-space: pre; ">          </span>!TS</div><div><span class="Apple-tab-span" style="white-space: pre; ">                       </span>if (prop1(i) == 1) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>t1 = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>s  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>t1 = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>s  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">                     </span>call TSFLSHdll (t1,s,x,kr,p,D,Dl,Dv,xl,xv,q,e,h,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(4)<span class="Apple-tab-span" style="white-space: pre; ">          </span>!TQ</div><div><span class="Apple-tab-span" style="white-space: pre; ">                       </span>if (prop1(i) == 1) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>t1 = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>q  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>t1 = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>q  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">                     </span>call TQFLSHdll (t1,q,x,kq,p,D,Dl,Dv,xl,xv,e,h,s,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(5)<span class="Apple-tab-span" style="white-space: pre; ">          </span>!TD</div><div><span class="Apple-tab-span" style="white-space: pre; ">                       </span>if (prop1(i) == 1) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>t1 = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>D  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>t1 = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>D  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">                     </span>call TDFLSHdll (t1,D,x,p,Dl,Dv,xl,xv,q,e,h,s,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(6)<span class="Apple-tab-span" style="white-space: pre; ">          </span>!TE</div><div><span class="Apple-tab-span" style="white-space: pre; ">                       </span>if (prop1(i) == 1) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>t1 = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>e  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>t1 = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>e  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">                     </span>call TEFLSHdll (t1,e,x,kr,p,D,Dl,Dv,xl,xv,q,h,s,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(7)<span class="Apple-tab-span" style="white-space: pre; ">          </span>!PH</div><div><span class="Apple-tab-span" style="white-space: pre; ">                       </span>if (prop1(i) == 2) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>p  = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>h  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>p  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>h  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">                     </span>call PHFLSHdll (p,h,x,t1,D,Dl,Dv,xl,xv,q,e,s,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(8)<span class="Apple-tab-span" style="white-space: pre; ">          </span>!PS</div><div><span class="Apple-tab-span" style="white-space: pre; ">                       </span>if (prop1(i) == 2) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>p  = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>s  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>p  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>s  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">                     </span>call PSFLSHdll (p,s,x,t1,D,Dl,Dv,xl,xv,q,e,h,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(9)<span class="Apple-tab-span" style="white-space: pre; ">          </span>!PQ</div><div><span class="Apple-tab-span" style="white-space: pre; ">                       </span>if (prop1(i) == 2) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>p  = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>q  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>p  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>q  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">                     </span>call PQFLSHdll (p,q,x,kq,t1,D,Dl,Dv,xl,xv,e,h,s,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(10)<span class="Apple-tab-span" style="white-space: pre; "> </span>!PD</div><div><span class="Apple-tab-span" style="white-space: pre; ">                       </span>if (prop1(i) == 2) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>p  = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>D  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>p  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>D  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">                     </span>call PDFLSHdll (p,D,x,t1,Dl,Dv,xl,xv,q,e,h,s,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(11)<span class="Apple-tab-span" style="white-space: pre; "> </span>!PE</div><div><span class="Apple-tab-span" style="white-space: pre; ">                       </span>if (prop1(i) == 2) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>p  = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>e  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>p  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>e  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">                     </span>call PEFLSHdll (p,e,x,t1,D,Dl,Dv,xl,xv,q,h,s,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(12)<span class="Apple-tab-span" style="white-space: pre; "> </span>!HS</div><div><span class="Apple-tab-span" style="white-space: pre; ">                       </span>if (prop1(i) == 3) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>h  = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>s  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>h  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>s  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">                     </span>call HSFLSHdll (h,s,x,t1,p,D,Dl,Dv,xl,xv,q,e,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(13)<span class="Apple-tab-span" style="white-space: pre; "> </span>!HQ</div><div><span class="Apple-tab-span" style="white-space: pre; ">                       </span>if (prop1(i) == 3) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>h  = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>q  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>h  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>q  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div>!<span class="Apple-tab-span" style="white-space: pre; ">                    </span>call HQFLSHdll (h,s,x,t1,p,D,Dl,Dv,xl,xv,q,e,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>!DAA### NOT IMPLIMENTED</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(14)<span class="Apple-tab-span" style="white-space: pre; "> </span>!HD - DH</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>if (prop1(i) == 3) then</div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>h  = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>D  = xin( (i-1)*2 + 2) </div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div><div><span class="Apple-tab-span" style="white-space: pre; ">                              </span>h  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>D  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">                     </span>call DHFLSHdll (D,h,x,t1,p,Dl,Dv,xl,xv,q,e,s,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(15)<span class="Apple-tab-span" style="white-space: pre; "> </span>!HE</div><div><span class="Apple-tab-span" style="white-space: pre; ">                       </span>if (prop1(i) == 3) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>h  = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>e  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>h  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>e  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div>!<span class="Apple-tab-span" style="white-space: pre; ">                    </span>call HEFLSHdll (h,s,x,t1,p,D,Dl,Dv,xl,xv,q,e,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>!DAA### NOT IMPLIMENTED</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(16)<span class="Apple-tab-span" style="white-space: pre; "> </span>!SQ</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>if (prop1(i) == 4) then</div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>s  = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>q  = xin( (i-1)*2 + 2) </div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div><div><span class="Apple-tab-span" style="white-space: pre; ">                              </span>s  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>q  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div>!<span class="Apple-tab-span" style="white-space: pre; ">                    </span>call SQFLSHdll (h,s,x,t1,p,D,Dl,Dv,xl,xv,q,e,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>!DAA### NOT IMPLIMENTED</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(17)<span class="Apple-tab-span" style="white-space: pre; "> </span>!DS</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>if (prop1(i) == 4) then</div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>s  = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>d  = xin( (i-1)*2 + 2) </div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div><div><span class="Apple-tab-span" style="white-space: pre; ">                              </span>s  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>d  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div><span class="Apple-tab-span" style="white-space: pre; ">                     </span>call DSFLSHdll (D,s,x,t1,p,Dl,Dv,xl,xv,q,e,h,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(18)<span class="Apple-tab-span" style="white-space: pre; "> </span>!SE</div><div><span class="Apple-tab-span" style="white-space: pre; ">                       </span>if (prop1(i) == 4) then</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>s  = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>e  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>s  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>e  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div>!<span class="Apple-tab-span" style="white-space: pre; ">                    </span>call SEFLSHdll (D,s,x,t1,p,Dl,Dv,xl,xv,q,e,h,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>!DAA### NOT IMPLIMENTED</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(19)<span class="Apple-tab-span" style="white-space: pre; "> </span>!QD</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>if (prop1(i) == 5) then</div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>q  = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>d  = xin( (i-1)*2 + 2) </div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div><div><span class="Apple-tab-span" style="white-space: pre; ">                              </span>q  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>d  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div>!<span class="Apple-tab-span" style="white-space: pre; ">                    </span>call QDFLSHdll (D,s,x,t1,p,Dl,Dv,xl,xv,q,e,h,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>!DAA### NOT IMPLIMENTED</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(20)<span class="Apple-tab-span" style="white-space: pre; "> </span>!QE</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>if (prop1(i) == 5) then</div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>q  = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>e  = xin( (i-1)*2 + 2) </div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div><div><span class="Apple-tab-span" style="white-space: pre; ">                              </span>q  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>e  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div>!<span class="Apple-tab-span" style="white-space: pre; ">                    </span>call QEFLSHdll (D,s,x,t1,p,Dl,Dv,xl,xv,q,e,h,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>!DAA### NOT IMPLIMENTED</div><div><span class="Apple-tab-span" style="white-space: pre; ">           </span>case(21)<span class="Apple-tab-span" style="white-space: pre; "> </span>!DE</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>if (prop1(i) == 6) then</div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>d  = xin( (i-1)*2 + 1) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>e  = xin( (i-1)*2 + 2) </div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>else</div><div><span class="Apple-tab-span" style="white-space: pre; ">                              </span>d  = xin( (i-1)*2 + 2) </div><div><span class="Apple-tab-span" style="white-space: pre; ">                           </span>e  = xin( (i-1)*2 + 1) <span class="Apple-tab-span" style="white-space: pre; ">                          </span></div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>endif</div><div>!<span class="Apple-tab-span" style="white-space: pre; ">                    </span>call DEFLSHdll (D,s,x,t1,p,Dl,Dv,xl,xv,q,e,h,cv,cp,w,ierr,herr)</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                   </span>!DAA### NOT IMPLIMENTED</div><div><span class="Apple-tab-span" style="white-space: pre; ">   </span>end select</div><div>enddo</div><div><br></div><div>
!Viscosity and Thermoconductivity</div><div>call TRNPRPdll (t1,D,x,mu,kt,ierr,herr)</div><div><br></div><div>out(1) = wmm</div><div>out(2) = ttrp</div><div>out(3) = tnbpt</div><div>out(4) = tc</div><div>out(5) = pc</div><div>
out(6) = Dc</div><div>do i=1,n_points</div><div><span class="Apple-tab-span" style="white-space: pre; ">      </span>out( (i-1)*12 + 1  + 6) = t1</div><div><span class="Apple-tab-span" style="white-space: pre; ">      </span>out( (i-1)*12 + 2  + 6) = p</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>out( (i-1)*12 + 3  + 6) = h</div><div><span class="Apple-tab-span" style="white-space: pre; ">       </span>out( (i-1)*12 + 4  + 6) = s</div><div><span class="Apple-tab-span" style="white-space: pre; ">       </span>out( (i-1)*12 + 5  + 6) = q</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>out( (i-1)*12 + 6  + 6) = 1.d0/D</div><div><span class="Apple-tab-span" style="white-space: pre; ">  </span>out( (i-1)*12 + 7  + 6) = e</div><div><span class="Apple-tab-span" style="white-space: pre; ">       </span>out( (i-1)*12 + 8  + 6) = D</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>out( (i-1)*12 + 9  + 6) = cv</div><div><span class="Apple-tab-span" style="white-space: pre; ">      </span>out( (i-1)*12 + 10 + 6) = cp</div><div><span class="Apple-tab-span" style="white-space: pre; ">      </span>out( (i-1)*12 + 11 + 6) = mu</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">   </span>out( (i-1)*12 + 12 + 6) = kt</div><div>enddo</div><div><br></div><div><br></div><div><br></div><div>return 1</div><div><br></div><div>end subroutine type75</div>
<div><br></div><div>!===================================================================================================</div><div><br></div></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br><br><div class="gmail_quote">
On Thu, Apr 8, 2010 at 8:13 PM, Hal Gurgenci <span dir="ltr"><<a href="mailto:h.gurgenci@uq.edu.au">h.gurgenci@uq.edu.au</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; ">
<div bgcolor="white" lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; ">First of all, I thank QiChao Zhu, Edward Halawa, and Werner Keilholz for their useful commentary on interfacing TRNSYS with C++.   I now have TRNSYS happily running with Microsoft Visual Studio 2008.</span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; "> </span></p><p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; ">I have a problem in interfacing it to REFPROP (Version 8.0).  I am posting with the hope someone may have encountered this problem before; or they may be able to shed some light regardless.</span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; "> </span></p><p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; ">QUESTION #1: Has anyone created a TRNSYS component that is defined by a MS Visual C++ DLL which itself queries the REFPROP.DLL?  If so, what MS Visual Studio Version was it?  The REFPROP Manual says that their example C++ files were tested with Microsoft VS 2003 edition.  I may try to find a 2003 edition of the MS VS but then again this may not work either because this could be a REFPROP-TRNSYS interface idiosnycracy.</span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; "> </span></p><p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; ">QUESTION #2: Regardless of your answer to the above question, can you comment on the following sequence of events?</span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; "> </span></p><p><span style="font-size: 10pt; font-family: Symbol; color: windowtext; "><span>·<span style="font: normal normal normal 7pt/normal 'Times New Roman'; ">         </span></span></span><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; ">I export my TRNSYS Component to C++ (Microsoft Visual Studio 2008) – No problem</span></p>
<p><span style="font-size: 10pt; font-family: Symbol; color: windowtext; "><span>·<span style="font: normal normal normal 7pt/normal 'Times New Roman'; ">         </span></span></span><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; ">I add the lines with REFPROP definitons and with the REFPROP initialisation function (its name is SETUPdll).</span></p>
<p><span style="font-size: 10pt; font-family: Symbol; color: windowtext; "><span>·<span style="font: normal normal normal 7pt/normal 'Times New Roman'; ">         </span></span></span><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; ">I reiterate that I have nothing about REFPROP except the call to the SETUPdll function.</span></p>
<p><span style="font-size: 10pt; font-family: Symbol; color: windowtext; "><span>·<span style="font: normal normal normal 7pt/normal 'Times New Roman'; ">         </span></span></span><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; ">I compile and link and create the ‘component.LIB’ file --- No problem</span></p>
<p><span style="font-size: 10pt; font-family: Symbol; color: windowtext; "><span>·<span style="font: normal normal normal 7pt/normal 'Times New Roman'; ">         </span></span></span><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; ">I run the TRNSYS Project.  Big Problem.  I get the following TRNSYS error in a separate error box and the TRNSYS aborts the calculation:</span></p>
<p style="margin-left: 72pt; "><span style="font-size: 10pt; font-family: 'Courier New'; color: windowtext; "><span>o<span style="font: normal normal normal 7pt/normal 'Times New Roman'; ">    </span></span></span><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; ">TRNEXE – Access violation at address 00000000.  Read of address 0000000.</span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; "> </span></p><p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; ">Thank you.</span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; "> </span></p><p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; "> </span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; ">PS: If you are interested, the free download of the MS Visual Studio Express Edition 2005 did work with TRNSYS.  But it failed to compile the REFPROP example C++ file because the VS Express Edition had no WINDOWS.H file.  I think it was possible to download an Environment package (1.5 gigabytes) to provide that file among other things.  I switched to MS Visual Studio 2008 because I found out that we had a site licens</span></p>
<div class="im"><p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; "> </span></p><p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; "> </span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; "> </span></p><div><p class="MsoNormal"><span style="font-size: 8pt; ">H Gurgenci, </span><span style="font-size: 8pt; color: rgb(31, 73, 125); ">+61 7 3365 3607,Rm:</span><span style="font-size: 8pt; ">43-208, <a href="http://www.uq.edu.au/geothermal/gurgenci-blog" target="_blank">http://www.uq.edu.au/geothermal/gurgenci-blog</a></span><span style="font-size: 8pt; color: rgb(31, 73, 125); "></span></p>
</div><p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: windowtext; "> </span></p></div><div><div style="border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-top-style: solid; border-top-color: rgb(181, 196, 223); border-top-width: 1pt; padding-top: 3pt; padding-right: 0cm; padding-bottom: 0cm; padding-left: 0cm; ">
<p class="MsoNormal"><b><span style="font-size: 10pt; color: windowtext; ">From:</span></b><span style="font-size: 10pt; color: windowtext; "> David Bradley [mailto:<a href="mailto:bradley@tess-inc.com" target="_blank">bradley@tess-inc.com</a>] <br>
<b>Sent:</b> Friday, 2 April 2010 7:04 AM<br><b>To:</b> Hal Gurgenci</span></p><div class="im"><br><b>Cc:</b> <a href="mailto:trnsys-users@cae.wisc.edu" target="_blank">trnsys-users@cae.wisc.edu</a><br></div><b>Subject:</b> Re: [TRNSYS-users] REFPROP and TRNSYS<p>
</p></div></div><p class="MsoNormal"> </p><p class="MsoNormal">Hal,<br>  There was a connection between TRNSYS 15 and REFPROP  although it was never (to the best of my knowledge) part of the official package.  The connection was built on the concept of Type61 (calling external DLLs ) and a piece of code called refprop.for. It also required a REFPROP license (and the corresponding REFPROP.dll). I imagine that the connection could probably be revived for TRNSYS 16. I notice on the NIST website that you can purchase the REFPROP (Fortran) sourcecode so I am not entirely sure what the advantage there is to the previous implementation of calling the REFPROP DLL.<br>
Kind regards,<br> David<br><br><br>Hal Gurgenci wrote:</p><p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; ">I would like to use REFPROP to calculate the fluid properties while using TRNSYS.  I understand this is possible but I could not find a reference that tells me how.</span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; "> </span></p><p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; ">Is there any place where I can find information on using REFPROP from within TRNSYS?</span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; "> </span></p><p class="MsoNormal"><span style="font-size: 8pt; ">Professor H Gurgenci, +61 7 3365 3607,Building 43, Room 208</span></p>
<p class="MsoNormal"><span style="font-size: 8pt; "><a href="mailto:h.gurgenci@uq.edu.au" title="mailto:h.gurgenci@uq.edu.au" target="_blank">h.gurgenci@uq.edu.au</a>  -o-  <a href="http://www.uq.edu.au/geothermal/gurgenci-blog" target="_blank">http://www.uq.edu.au/geothermal/gurgenci-blog</a> </span></p>
<p class="MsoNormal"><span style="font-size: 8pt; ">Director, Queensland Geothermal Energy Centre of Excellence, </span></p><p class="MsoNormal"><span style="font-size: 8pt; ">The University of Queensland, Brisbane</span></p>
<p class="MsoNormal"><span style="font-size: 7pt; color: silver; "><a href="https://exchange.uq.edu.au/exchweb/bin/redir.asp?URL=http://cricos.dest.gov.au/" title="https://exchange.uq.edu.au/exchweb/bin/redir.asp?URL=http://cricos.dest.gov.au/" target="_blank">CRICOS</a><b> Provider Code: 00025B</b></span></p>
<p class="MsoNormal"> </p><pre> </pre><pre style="text-align: center; "><hr size="4" width="90%" align="center">

</pre><div class="im"><pre> </pre><pre>_______________________________________________</pre><pre>TRNSYS-users mailing list</pre><pre><a href="mailto:TRNSYS-users@cae.wisc.edu" target="_blank">TRNSYS-users@cae.wisc.edu</a></pre>
<pre><a href="https://www-old.cae.wisc.edu/mailman/listinfo/trnsys-users" target="_blank">https://www-old.cae.wisc.edu/mailman/listinfo/trnsys-users</a></pre><pre>  </pre><p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif; "><br>
<br></span></p><pre>-- </pre></div><pre>***********************************************************************</pre><pre>Thermal Energy System Specialists (TESS), LLC </pre><pre>David BRADLEY                      22 N. Carroll Street - Suite 370 </pre>
<pre>Partner                            Madison, WI 53703 </pre><pre>                                   USA</pre><pre>P: +1.608.274.2577 </pre><pre>F: +1.608.278.1475</pre><pre>E-mail: <a href="mailto:bradley@tess-inc.com" target="_blank">bradley@tess-inc.com</a> </pre>
<pre>Web Pages:  <a href="http://www.tess-inc.com/" target="_blank">http://www.tess-inc.com</a>    and      <a href="http://www.trnsys.com/" target="_blank">http://www.trnsys.com</a></pre><pre> </pre><pre>***********************************************************************</pre>
</div></div><br>_______________________________________________<br>TRNSYS-users mailing list<br><a href="mailto:TRNSYS-users@cae.wisc.edu">TRNSYS-users@cae.wisc.edu</a><br><a href="https://www-old.cae.wisc.edu/mailman/listinfo/trnsys-users" target="_blank">https://www-old.cae.wisc.edu/mailman/listinfo/trnsys-users</a><br>
<br></blockquote></div></div><br><div class="gmail_quote">On Thu, Apr 8, 2010 at 8:13 PM, Hal Gurgenci <span dir="ltr"><<a href="mailto:h.gurgenci@uq.edu.au">h.gurgenci@uq.edu.au</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">










<div bgcolor="white" lang="EN-US" link="blue" vlink="purple">

<div>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext">First of all, I thank QiChao Zhu, Edward Halawa, and Werner
Keilholz for their useful commentary on interfacing TRNSYS with C++.   I now
have TRNSYS happily running with Microsoft Visual Studio 2008.</span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext"> </span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext">I have a problem in interfacing it to REFPROP (Version 8.0). 
I am posting with the hope someone may have encountered this problem before; or
they may be able to shed some light regardless.</span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext"> </span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext">QUESTION #1: Has anyone created a TRNSYS component that is
defined by a MS Visual C++ DLL which itself queries the REFPROP.DLL?  If so, what
MS Visual Studio Version was it?  The REFPROP Manual says that their example
C++ files were tested with Microsoft VS 2003 edition.  I may try to find a 2003
edition of the MS VS but then again this may not work either because this could
be a REFPROP-TRNSYS interface idiosnycracy.</span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext"> </span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext">QUESTION #2: Regardless of your answer to the above question,
can you comment on the following sequence of events?</span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext"> </span></p>

<p><span style="font-size:10.0pt;font-family:Symbol;color:windowtext"><span>·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext">I export my TRNSYS Component to C++ (Microsoft Visual Studio
2008) – No problem</span></p>

<p><span style="font-size:10.0pt;font-family:Symbol;color:windowtext"><span>·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext">I add the lines with REFPROP definitons and with the REFPROP
initialisation function (its name is SETUPdll). </span></p>

<p><span style="font-size:10.0pt;font-family:Symbol;color:windowtext"><span>·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext">I reiterate that I have nothing about REFPROP except the call
to the SETUPdll function.</span></p>

<p><span style="font-size:10.0pt;font-family:Symbol;color:windowtext"><span>·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext">I compile and link and create the ‘component.LIB’ file --- No
problem</span></p>

<p><span style="font-size:10.0pt;font-family:Symbol;color:windowtext"><span>·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext">I run the TRNSYS Project.  Big Problem.  I get the following TRNSYS
error in a separate error box and the TRNSYS aborts the calculation:</span></p>

<p style="margin-left:72.0pt"><span style="font-size:10.0pt;font-family:"Courier New";color:windowtext"><span>o<span style="font:7.0pt "Times New Roman"">    </span></span></span><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext">TRNEXE
– Access violation at address 00000000.  Read of address 0000000.</span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext"> </span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext">Thank you.</span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext"> </span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext"> </span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext">PS: If you are interested, the free download of the MS Visual
Studio Express Edition 2005 did work with TRNSYS.  But it failed to compile the
REFPROP example C++ file because the VS Express Edition had no WINDOWS.H file.  I
think it was possible to download an Environment package (1.5 gigabytes) to
provide that file among other things.  I switched to MS Visual Studio 2008
because I found out that we had a site licens</span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext"> </span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext"> </span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext"> </span></p>

<div>

<p class="MsoNormal"><span style="font-size:8.0pt">H
Gurgenci, </span><span style="font-size:8.0pt;color:#1F497D">+61 7 3365 3607,Rm:</span><span style="font-size:8.0pt">43-208, <a href="http://www.uq.edu.au/geothermal/gurgenci-blog" target="_blank">http://www.uq.edu.au/geothermal/gurgenci-blog</a></span><span style="font-size:8.0pt;color:#1F497D"></span></p>


</div>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif";color:windowtext"> </span></p>

<div>

<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">

<p class="MsoNormal"><b><span style="font-size:10.0pt;color:windowtext">From:</span></b><span style="font-size:10.0pt;color:windowtext"> David Bradley [mailto:<a href="mailto:bradley@tess-inc.com" target="_blank">bradley@tess-inc.com</a>]
<br>
<b>Sent:</b> Friday, 2 April 2010 7:04 AM<br>
<b>To:</b> Hal Gurgenci</span></p><div class="im"><br>
<b>Cc:</b> <a href="mailto:trnsys-users@cae.wisc.edu" target="_blank">trnsys-users@cae.wisc.edu</a><br>
</div><b>Subject:</b> Re: [TRNSYS-users] REFPROP and TRNSYS<p></p>

</div>

</div><div><div></div><div class="h5">

<p class="MsoNormal"> </p>

<p class="MsoNormal">Hal,<br>
  There was a connection between TRNSYS 15 and REFPROP  although it
was never (to the best of my knowledge) part of the official package.  The
connection was built on the concept of Type61 (calling external DLLs ) and a
piece of code called refprop.for. It also required a REFPROP license (and the
corresponding REFPROP.dll). I imagine that the connection could probably be
revived for TRNSYS 16. I notice on the NIST website that you can purchase the
REFPROP (Fortran) sourcecode so I am not entirely sure what the advantage there
is to the previous implementation of calling the REFPROP DLL.<br>
Kind regards,<br>
 David<br>
<br>
<br>
Hal Gurgenci wrote: </p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif"">I
would like to use REFPROP to calculate the fluid properties while using
TRNSYS.  I understand this is possible but I could not find a reference
that tells me how.</span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif""> </span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif"">Is
there any place where I can find information on using REFPROP from within
TRNSYS? </span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman","serif""> </span></p>

<p class="MsoNormal"><span style="font-size:8.0pt">Professor
H Gurgenci, +61 7 3365 3607,Building 43, Room 208</span></p>

<p class="MsoNormal"><span style="font-size:8.0pt"><a href="mailto:h.gurgenci@uq.edu.au" title="mailto:h.gurgenci@uq.edu.au" target="_blank">h.gurgenci@uq.edu.au</a>  -o-  <a href="http://www.uq.edu.au/geothermal/gurgenci-blog" target="_blank">http://www.uq.edu.au/geothermal/gurgenci-blog</a> 
</span></p>

<p class="MsoNormal"><span style="font-size:8.0pt">Director,
Queensland Geothermal Energy Centre of Excellence,  </span></p>

<p class="MsoNormal"><span style="font-size:8.0pt">The
University of Queensland, Brisbane</span></p>

<p class="MsoNormal"><span style="font-size:7.0pt;color:silver"><a href="https://exchange.uq.edu.au/exchweb/bin/redir.asp?URL=http://cricos.dest.gov.au/" title="https://exchange.uq.edu.au/exchweb/bin/redir.asp?URL=http://cricos.dest.gov.au/" target="_blank">CRICOS</a><b>
Provider Code: 00025B</b></span></p>

<p class="MsoNormal"> </p>

<pre> </pre><pre style="text-align:center"><hr size="4" width="90%" align="center">

</pre><pre> </pre><pre>_______________________________________________</pre><pre>TRNSYS-users mailing list</pre><pre><a href="mailto:TRNSYS-users@cae.wisc.edu" target="_blank">TRNSYS-users@cae.wisc.edu</a></pre><pre><a href="https://www-old.cae.wisc.edu/mailman/listinfo/trnsys-users" target="_blank">https://www-old.cae.wisc.edu/mailman/listinfo/trnsys-users</a></pre>
<pre>  </pre>

<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman","serif""><br>
<br>
</span></p>

<pre>-- </pre><pre>***********************************************************************</pre><pre>Thermal Energy System Specialists (TESS), LLC </pre><pre>David BRADLEY                      22 N. Carroll Street - Suite 370 </pre>
<pre>Partner                            Madison, WI 53703 </pre><pre>                                   USA</pre><pre>P: +1.608.274.2577 </pre><pre>F: +1.608.278.1475</pre><pre>E-mail: <a href="mailto:bradley@tess-inc.com" target="_blank">bradley@tess-inc.com</a> </pre>
<pre>Web Pages:  <a href="http://www.tess-inc.com" target="_blank">http://www.tess-inc.com</a>    and      <a href="http://www.trnsys.com" target="_blank">http://www.trnsys.com</a></pre><pre> </pre><pre>***********************************************************************</pre>
</div></div></div>

</div>


<br>_______________________________________________<br>
TRNSYS-users mailing list<br>
<a href="mailto:TRNSYS-users@cae.wisc.edu">TRNSYS-users@cae.wisc.edu</a><br>
<a href="https://www-old.cae.wisc.edu/mailman/listinfo/trnsys-users" target="_blank">https://www-old.cae.wisc.edu/mailman/listinfo/trnsys-users</a><br>
<br></blockquote></div><br>