C THIS IS THE FINAL REVISION OF HEAVY WATER SUBROUTINES C Ji. Zhang, January 20, 98 C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C SATURATED HEAVY WATER PROPERTIES as a function of pressure; C C followed by saturated heavy water properties as a function of C C temperature, suncooled and superheated heavy water properties C C as a function of pressure and temperature. C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC SUBROUTINE HWSAT1(P,T) C**********************************************************************C C Temperature, in C, of heavy water at saturation as C C a function of pressure in Pa. C C The valid range of pressure is C C 0.0741494 MPa < P < 21.2082144 MPa C C The relative error is C C err < 0.04% C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 8th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (0.0741494D6 .gt. P .or. P .gt. 21.2082144D6) then write(*,*) 'HWSAT1: exceed the valid pressure range!' elseif (P .gt. 6.9829216D6) then Z = (P - 6.9829216D6)/14.2252928D6 T = 2.85D2 + (136.2916149D0 - 517.5749172D0*Z)*Z * + 465.2833023D0*Z**2.0509579D0 elseif (P .gt. 2.2074482D6) then Z = (P - 2.2074482D6)/4.7754734D6 T = 2.175D2 + (110.6079115D0 - 414.5685862D0*Z)*Z * + 371.4606747D0*Z**2.0575065D0 elseif (P .gt. 0.6891798D6) then Z = (P - 0.6891798D6)/1.5182684D6 T = 1.65D2 + (87.5356881D0 - 423.3068041D0*Z)*Z * + 388.271116D0*Z**2.0455901D0 elseif (P .gt. 0.2241012D6) then Z = (P - 0.2241012D6)/0.4650786D6 T = 1.25D2 + (66.1987487D0 - 225.285045D0*Z)*Z * + 199.0862962D0*Z**2.0653628D0 else Z = (P - 0.0741494D6)/0.1499518D6 T = 9.3D1 + (53.0754191D0 - 165.0407938D0*Z)*Z * + 143.9653747D0*Z**2.0723743D0 end if C RETURN END C SUBROUTINE HWDSAT1(P,DTDP) C**********************************************************************C C Derivative of temperature, in C/Pa, of heavy water with respect C C to pressure at saturation. C C The valid range of pressure is C C 0.0741494 MPa < P < 21.2082144 MPa . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 8th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (0.0741494D6 .gt. P .or. P .gt. 21.2082144D6) then write(*,*) 'HWDSAT1: the valid range of pressure is exceeded!' elseif (P .gt. 6.9829216D6) then Z = (P - 6.9829216D6)/14.2252928D6 DTDP = (136.2916149D0 - 1035.149834D0*Z * + 954.2764646D0*Z**1.0509579D0)/14.2252928D6 elseif (P .gt. 2.2074482D6) then Z = (P - 2.2074482D6)/4.7754734D6 DTDP = (110.6079115D0 - 829.1371724D0*Z * + 764.2827527D0*Z**1.0575065D0)/4.7754734D6 elseif (P .gt. 0.6891798D6) then Z = (P - 0.6891798D6)/1.5182684D6 DTDP = (87.5356881D0 - 846.6136082D0*Z * + 794.243551D0*Z**1.0455901D0)/1.5182684D6 elseif (P .gt. 0.2241012D6) then Z = (P - 0.2241012D6)/0.4650786D6 DTDP = (66.1987487D0 - 450.57009D0*Z * + 411.1854302D0*Z**1.0653628D0)/0.4650786D6 else Z = (P - 0.0741494D6)/0.1499518D6 DTDP = (53.0754191D0 - 330.0815876D0*Z * + 298.3501426D0*Z**1.0723743D0)/0.1499518D6 end if C RETURN END C SUBROUTINE HWRP01(P,RO) C**********************************************************************C C Density, in kg/m3, of heavy water in liquid phase at saturation C C as a function of pressure in Pa. C C The valid range of pressure is C C 0.0660673 MPa < P < 21.2082144 MPa ; C C the relative error is C C err < 0.1% . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 8th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (0.0660673D6 .gt. P .or. P .gt. 21.2082144D6) then write(*,*) 'HWRP01: the valid range of pressure is exceeded!' elseif (P .gt. 19.4836567D6) then Z = (P - 19.4836567D6)/1.7245577D6 RO = 0.5504775D3 - (0.590659504D2 + 0.1675948D2*Z)*Z * - 0.104618051D2*Z**6.09210142D0 elseif (P .gt. 9.9920546D6) then Z = (P - 9.9920546D6)/9.4916021D6 RO = 0.7601516D3 - (0.1788898D3 + 0.7048606D1*Z)*Z * - 0.2373564D2*Z**5.5654484D0 elseif (P. gt. 1.1122097D6) then Z = (P - 1.1122097D6)/8.8798449D6 RO = 0.9773673D3 - (0.4328976D3 + 0.2656682D3*Z)*Z * + 0.4813501D3*Z**1.655498D0 else Z = (P - 0.0660673D6)/1.0461424D6 RO = 1.0710254D3 - (0.2997626D3 + 0.100771D3*Z)*Z * + 0.3068756D3*Z**1.4673848D0 endif C RETURN END C SUBROUTINE HWDRP01(P,DRDP) C**********************************************************************C C Derivative of density, in kg/m3.Pa, of heavy water with respect C C to pressure in liquid phase at saturation. C C The valid range of pressure is C C 0.0660673 MPa < P < 21.2082144 MPa . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 8th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (0.0660673D6 .gt. P .or. P .gt. 21.2082144D6) then write(*,*) 'HWDRP01: the valid range of pressure is exceeded!' elseif (P .gt. 19.4836567D6) then Z = (P - 19.4836567D6)/1.7245577D6 DRDP = (-0.590659504D2 - 0.3351896D2*Z * - 0.637343777D2*Z**5.09210142D0)/1.7245577D6 elseif (P .gt. 9.9920546D6) then Z = (P - 9.9920546D6)/9.4916021D6 DRDP = (-0.1788898D3 - 1.4097212D1*Z * - 1.320994797D2*Z**4.5654484D0)/9.4916021D6 elseif (P. gt. 1.1122097D6) then Z = (P - 1.1122097D6)/8.8798449D6 DRDP = (-0.4328976D3 - 0.5313364D3*Z * + 0.796874128D3*Z**0.655498D0)/8.8798449D6 else Z = (P - 0.0660673D6)/1.0461424D6 DRDP = (-0.2997626D3 - 0.201542D3*Z * + 0.450304591D3*Z**0.4673848D0)/1.0461424D6 endif C RETURN END C SUBROUTINE HWHP01(P,H) C**********************************************************************C C Specific enthalpy, in kJ/kg, of heavy water in liquid phase C C at saturation as a function of pressure in Pa. C C The valid range of pressure is C C 0.06606727 MPa < P < 21.337 MPa ; C C the relative error is C C err < 0.1% . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 8th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (0.0660673D6 .gt. P .or. P .gt. 21.337D6) then write(*,*) 'HWHP01: the valid range of pressure is exceeded!' elseif (P .gt. 17.6692805D6) then Z = (P - 17.6692805D6)/3.5389339D6 H = 1641.47619D0 + (141.3317761D0 + 25.5609351D0*Z)*Z * + 24.8088589D0*Z**8.1301223D0 elseif (P .gt. 4.1683858D6) then Z = (P - 4.1683858D6)/13.5008947D6 H = 1060.07474D0 + (894.3932644D0 - 1265.2238859D0*Z)*Z * + 952.2320715D0*Z**2.2843483D0 elseif (P .gt. 0.9911931D6) then Z = (P - 0.9911931D6)/3.1771927D6 H = 739.575922D0 + (584.090826D0 + 1293.9319422D0*Z)*Z * - 1557.52395D0*Z**1.9013996D0 elseif (P .gt. 0.2422341D6) then Z = (P - 0.2422341D6)/0.748959D6 H = 519.463653D0 + (416.1583851D0 + 1017.9737875D0*Z)*Z * - 1214.0199036D0*Z**1.9064089D0 else Z = (P - 0.0660673D6)/0.1761668D6 H = 363.427765D0 + (284.0675001D0 - 9328.85628D0*Z)*Z * + 9200.824671D0*Z**2.0075953D0 endif C RETURN END C SUBROUTINE HWDHP01(P,DHDP) C**********************************************************************C C Derivative of specific enthalpy, in kJ/kg.Pa, of heavy water with C C respect to pressure in liquid phase at saturation. C C The valid range of pressure is C C 0.06606727 MPa < P < 21.337 MPa . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 8th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (0.0660673D6 .gt. P .or. P .gt. 21.337D6) then write(*,*) 'HWDHP01: the valid range of pressure is exceeded!' elseif (P .gt. 17.6692805D6) then Z = (P - 17.6692805D6)/3.5389339D6 DHDP = (141.3317761D0 + 51.1218701D0*Z * + 201.699057D0*Z**7.1301223D0)/3.5389339D6 elseif (P .gt. 4.1683858D6) then Z = (P - 4.1683858D6)/13.5008947D6 DHDP = (894.3932644D0 - 2530.4477718D0*Z * + 2175.229714D0*Z**1.2843483D0)/13.5008947D6 elseif (P .gt. 0.9911931D6) then Z = (P - 0.9911931D6)/3.1771927D6 DHDP = (584.090826D0 + 2587.9638844D0*Z * - 2961.475416D0*Z**0.9013996D0)/3.1771927D6 elseif (P .gt. 0.2422341D6) then Z = (P - 0.2422341D6)/0.748959D6 DHDP = (416.1583851D0 + 2035.947575D0*Z * - 2314.418348D0*Z**0.9064089D0)/0.748959D6 else Z = (P - 0.0660673D6)/0.1761668D6 DHDP = (284.0675001D0 - 18657.71256D0*Z * + 18471.53237D0*Z**1.0075953D0)/0.1761668D6 endif C RETURN END C SUBROUTINE HWSP01(P,S) C**********************************************************************C C Specific entropy, in kJ/kg.K, of heavy water in liquid phase C C at saturation as a function of pressure in Pa. C C The valid range of pressure is C C 0.0660673 MPa < P < 21.2082144 MPa ; C C the relative error is C C err < 0.1% . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 10th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (0.0660673D6 .gt. P .or. P .gt. 21.2082144D6) then write(*,*) 'HWSP01: the valid range of pressure is exceeded!' elseif (P .gt. 17.8877084D6) then Z = (P - 17.8877084D6)/3.320506D6 S = 3.6993578D0 + (0.2052537D0 + 0.3626243D-1*Z)*Z * + 0.3629019D-1*Z**7.907354D0 elseif (P .gt. 4.3471703D6) then Z = (P - 4.3471703D6)/13.5405381D6 S = 2.7358009D0 + (1.6237319D0 - 3.1471917D0*Z)*Z * + 2.4870167D0*Z**2.2145594D0 elseif (P .gt. 0.9911931D6) then Z = (P - 0.9911931D6)/3.3559772D6 S = 2.0656044D0 + (1.353958D0 + 2.3037233D0*Z)*Z * - 2.9874848D0*Z**1.8607519D0 elseif (P .gt. 0.2422341D6) then Z = (P - 0.2422341D6)/0.748959D6 S = 1.5511845D0 + (1.0369112D0 + 2.2697468D0*Z)*Z * - 2.7922381D0*Z**1.8888932D0 else Z = (P - 0.0660673D6)/0.1761668D6 S = 1.1427015D0 + (0.781241D0 + 22.4857223D0*Z)*Z * - 22.8584803D0*Z**1.990893D0 endif C RETURN END C SUBROUTINE HWDSP01(P,DSDP) C**********************************************************************C C Derivative of specific entropy, in kJ/(kg.K.Pa), of heavy water C C with respect to pressure in liquid phase at saturation. C C The valid range of pressure is C C 0.0660673 MPa < P < 21.2082144 MPa . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 10th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (0.0660673D6 .gt. P .or. P .gt. 21.2082144D6) then write(*,*) 'HWDSP01: the valid range of pressure is exceeded!' elseif (P .gt. 17.8877084D6) then Z = (P - 17.8877084D6)/3.320506D6 DSDP = (0.2052537D0 + 0.7252486D-1*Z * + 2.869593791D-1*Z**6.907354D0)/3.320506D6 elseif (P .gt. 4.3471703D6) then Z = (P - 4.3471703D6)/13.5405381D6 DSDP = (1.6237319D0 - 6.2943834D0*Z * + 5.507646211D0*Z**1.2145594D0)/13.5405381D6 elseif (P .gt. 0.9911931D6) then Z = (P - 0.9911931D6)/3.3559772D6 DSDP = (1.353958D0 + 4.6074466D0*Z * - 5.558968D0*Z**0.8607519D0)/3.3559772D6 elseif (P .gt. 0.2422341D6) then Z = (P - 0.2422341D6)/0.748959D6 DSDP = (1.0369112D0 + 4.5394936D0*Z * - 5.27423956D0*Z**0.8888932D0)/0.748959D6 else Z = (P - 0.0660673D6)/0.1761668D6 DSDP = (0.781241D0 + 44.9714446D0*Z * - 45.50878842D0*Z**0.990893D0)/0.1761668D6 endif C RETURN END C SUBROUTINE HWCP01(P,CP) C**********************************************************************C C Specific heat, in kJ/kg.K, of heavy water in liquid phase C C at saturation as a function of pressure in Pa. C C The valid range of pressure is C C 0.0660673 MPa < P < 20.5761998 MPa ; C C the relative error is C C err < 0.1% . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 10th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (0.0660673D6 .gt. P .or. P .gt. 20.5766998D6) then write(*,*) 'HWCP01: the valid range of pressure is exceeded!' elseif (P .gt. 16.5079768D6) then Z = (P - 16.5079768D6)/4.068723D6 CP = 0.102957D0 - (0.5726574D-1 + 0.1135917D-1*Z)*Z * - 0.7406377D-2*Z**2.6830492D0 CP = 1.D0/CP elseif (P .gt. 11.2150143D6) then Z = (P - 11.2150143D6)/5.2929625D6 CP = 6.20016991D0 + (1.8095874D0 + 0.9977298D0*Z)*Z * + 0.7053064D0*Z**4.5748808D0 elseif (P .gt. 1.2445358D6) then Z = (P - 1.2445358D6)/9.9704785D6 CP = 4.2733456D0 + (1.3052185D0 + 0.1197669D0*Z)*Z * + 0.5018388D0*Z**3.7143601D0 else Z = (P - 0.0660673D6)/1.1784685D6 CP = 4.1699709D0 - (0.491687D0 + 0.2116389D0*Z)*Z * + 0.8067006D0*Z**1.3254434D0 endif C RETURN END C SUBROUTINE HWDCP01(P,DCDP) C**********************************************************************C C Derivative of specific heat, in kJ/(kg.K.Pa), of heavy water C C with respect to pressure in liquid phase at saturation. C C The valid range of pressure is C C 0.0660673 MPa < P < 20.5761998 MPa . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 10th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (0.0660673D6 .gt. P .or. P .gt. 20.5766998D6) then write(*,*) 'HWDCP01: the valid range of pressure is exceeded!' elseif (P .gt. 16.5079768D6) then Z = (P - 16.5079768D6)/4.068723D6 CP = 0.102957D0 - (0.5726574D-1 + 0.1135917D-1*Z)*Z * - 0.7406377D-2*Z**2.6830492D0 DCDP = (0.5726574D-1 + 0.2271834D-1*Z * + 1.987167388D-2*Z**1.6830492D0)/(4.068723D6*CP**2) elseif (P .gt. 11.2150143D6) then Z = (P - 11.2150143D6)/5.2929625D6 DCDP = (1.8095874D0 + 1.9954596D0*Z * + 3.226692707D0*Z**3.5748808D0)/5.2929625D6 elseif (P .gt. 1.2445358D6) then Z = (P - 1.2445358D6)/9.9704785D6 DCDP = (1.3052185D0 + 0.2395338D0*Z * + 1.864010015D0*Z**2.7143601D0)/9.9704785D6 else Z = (P - 0.0660673D6)/1.1784685D6 DCDP = (-0.491687D0 - 0.4232778D0*Z * + 1.069235986D0*Z**0.3254434D0)/1.1784685D6 endif C RETURN END C SUBROUTINE HWRH01(H,RO) C**********************************************************************C C Density, in kg/m3, of heavy water in liquid phase at saturation C C as a function of specific enthalpy in kJ/kg. C C The valid range of enthalpy is C C 363.427765 < H < 1798.764 ; C C the relative error is C C err < 0.05% . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 10th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (363.427765D0 .gt. H .or. H .gt. 1798.764D0) then write(*,*) 'HWRH01: the valid range of enthalpy is exceeded!' elseif (H .gt. 1143.20476D0) then Z = (H - 1143.20476D0)/655.55924D0 RO = 0.8480824D3 - (0.2560465D3 + 0.6920457D2*Z)*Z * - 0.310793D2*Z**3.9010993D0 else Z = (H - 363.427765D0)/779.776995D0 RO = 1.07102536D3 - (0.1385669D3 + 0.8214176D2*Z)*Z * - 0.2234221D1*Z**0.7664509D0 endif C RETURN END C SUBROUTINE HWDRH01(H,DRDH) C**********************************************************************C C Derivative of density, in kg2/m3.kJ, of heavy water with respect C C to specific enthalpy in liquid phase at saturation. C C The valid range of specific enthalpy is C C 363.427765 < H < 1798.764 . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 10th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (363.427765D0 .gt. H .or. H .gt. 1798.764D0) then write(*,*) 'HWDRH01: the valid range of enthalpy is exceeded!' elseif (H .gt. 1143.20476) then Z = (H - 1143.20476D0)/655.55924D0 DRDH = (-0.2560465D3 - 1.3840914D2*Z * - 1.212434355D2*Z**2.9010993D0)/655.55924D0 else Z = (H - 363.427765D0)/779.776995D0 DRDH = (-0.1385669D3 - 1.6428352D2*Z * - 0.17124207D1/Z**0.2335491D0)/779.776995D0 endif C RETURN END C SUBROUTINE HSRP01(P,RO) C**********************************************************************C C Density, in kg/m3, of heavy water in vapour phase at saturation C C as a function of pressure in Pa. C C The valid range of pressure is C C 0.06736076 MPa < P < 20.7011 MPa ; C C the relative error is C C err < 0.1% . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 8th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (0.06736076D6 .gt. P .or. P .gt. 20.7011D6) then write(*,*) 'HSRP01: the valid range of pressure is exceeded!' elseif (P .gt. 17.0275875D6) then Z = (P - 17.0275875D6)/3.4244417D6 RO = 0.1364154D3 + (0.5169946D2 + 0.1673954D2*Z)*Z * + 0.98361724D1*Z**5.32D0 elseif (P .gt. 8.56571575D6) then Z = (P - 8.56571575D6)/8.46187175D6 RO = 0.5175778D2 + (0.6063223D2 + 0.1630572D2*Z)*Z * + 0.7719649D1*Z**4.47D0 elseif (P. gt. 0.6891798D6) then Z = (P - 0.6891798D6)/7.876536D6 RO = 0.4014339D1 + (0.4353304D2 - 0.1125253D2*Z)*Z * + 0.1546293D2*Z**2.29D0 else Z = (P - 0.06736076D6)/0.621819D6 RO = 0.451542D0 + (0.3905746D1 + 0.9329308D0*Z)*Z * - 0.1275879D1*Z**1.83D0 endif C RETURN END C SUBROUTINE HSDRP01(P,DRDP) C**********************************************************************C C Derivative of density, in kg/m3.Pa, of heavy water with respect C C to pressure, in Pa, in vapour phase at saturation. C C The valid range of pressure is C C 0.06736076 MPa < P < 20.7011 MPa . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 8th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (0.06736076D6 .gt. P .or. P .gt. 20.7011D6) then write(*,*) 'HSDRP01: the valid range of pressure is exceeded!' elseif (P .gt. 17.0275875D6) then Z = (P - 17.0275875D6)/3.4244417D6 DRDP = (0.5169946D2 + 0.3347908D2*Z * + 5.2328437D1*Z**4.32D0)/3.4244417D6 elseif (P .gt. 8.56571575D6) then Z = (P - 8.56571575D6)/8.46187175D6 DRDP = (0.6063223D2 + 0.3261144D2*Z * + 3.4506831D1*Z**3.47D0)/8.46187175D6 elseif (P. gt. 0.6891798D6) then Z = (P - 0.6891798D6)/7.876536D6 DRDP = (0.4353304D2 - 0.2250506D2*Z * + 0.354101097D2*Z**1.29D0)/7.876536D6 else Z = (P - 0.06736076D6)/0.621819D6 DRDP = (0.3905746D1 + 1.8658616D0*Z * - 0.233485857D1*Z**0.83D0)/0.621819D6 endif C RETURN END C SUBROUTINE HSHP01(P,H) C**********************************************************************C C Specific enthalpy, in kJ/kg, of heavy water in vapour phase C C at saturation as a function of pressure in Pa. C C The valid range of pressure is C C 0.0660673 MPa < P < 20.4520292 MPa ; C C the relative error is C C err < 0.1% . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 8th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (0.0660673D6 .gt. P .or. P .gt. 20.4520292D6) then write(*,*) 'HSHP01: the valid range of pressure is exceeded!' elseif (P .gt. 11.0653801D6) then Z = (P - 11.0653801D6)/9.3866491D6 H = 2510.60787D0 - (170.3116585D0 + 87.4361951D0*Z)*Z * - 49.9081163D0*Z**7.8486264D0 elseif (P .gt. 0.9911931D6) then Z = (P - 0.9911931D6)/10.074187D6 H = 2575.04708D0 + (355.0150535D0 + 117.7895727D0*Z)*Z * - 537.2438362D0*Z**1.4395336D0 else Z = (P - 0.0660673D6)/0.9251258D6 H = 2464.25675D0 + (545.8860287D0 + 200.8946001D0*Z)*Z * - 635.9902988D0*Z**1.4388171D0 endif C RETURN END C SUBROUTINE HSDHP01(P,DHDP) C**********************************************************************C C Derivative of specific enthalpy, in kJ/kg.Pa, of heavy water with C C respect to presure in vapour phase at saturation. C C The valid range of pressure is C C 0.0660673 MPa < P < 20.4520292 MPa . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 8th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (0.0660673D6 .gt. P .or. P .gt. 20.4520292D6) then write(*,*) 'HSDHP01: the valid range of pressure is exceeded!' elseif (P .gt. 11.0653801D6) then Z = (P - 11.0653801D6)/9.3866491D6 DHDP = (-170.3116585D0 - 174.8723902D0*Z * - 391.7101592D0*Z**6.8486264D0)/9.3866491D6 elseif (P .gt. 0.9911931D6) then Z = (P - 0.9911931D6)/10.074187D6 DHDP = (355.0150535D0 + 235.5791454D0*Z * - 773.3805536D0*Z**0.4395336D0)/10.074187D6 else Z = (P - 0.0660673D6)/0.9251258D6 DHDP = (545.8860287D0 + 401.7892002D0*Z * - 915.0737173D0*Z**0.4388171D0)/0.9251258D6 endif C RETURN END C SUBROUTINE HSSP01(P,S) C**********************************************************************C C Specific entropy, in kJ/kg.K, of heavy water in vapour phase C C at saturation as a function of pressure in Pa. C C The valid range of pressure is C C 0.0660673 MPa < P < 21.2082144 MPa ; C C the relative error is C C err < 0.1% . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 8th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (0.0660673D6 .gt. P .or. P .gt. 21.2082144D6) then write(*,*) 'HSSP01: the valid range of pressure is exceeded!' elseif (P .gt. 17.3459145D6) then Z = (P - 17.3459145D6)/3.8622999D6 S = 4.82732505D0 - (0.2570173D0 + 0.7493741D-1*Z)*Z * - 0.6576914D-1*Z**8.1685078D0 elseif (P .gt. 3.6656098D6) then Z = (P - 3.6656098D6)/13.6803047D6 S = 5.6836534D0 - (1.3660556D0 - 3.014588D0*Z)*Z * - 2.5048608D0*Z**2.2250651D0 elseif (P .gt. 0.4978913D6) then Z = (P - 0.4978913D6)/3.1677185D6 S = 6.3249363D0 - (1.9047455D0 + 1.1349457D0*Z)*Z * + 2.3985083D0*Z**1.6086341D0 else Z = (P - 0.0660673D6)/0.431824D6 S = 6.9277677D0 - (1.9544322D0 + 1.2508769D0*Z)*Z * + 2.6023778D0*Z**1.6125756D0 endif C RETURN END C SUBROUTINE HSDSP01(P,DSDP) C**********************************************************************C C Derivative of specific entropy, in kJ/kg.K, of heavy water with C C respect to presure in vapour phase at saturation. C C The valid range of pressure is C C 0.0660673 MPa < P < 21.2082144 MPa . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 8th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (0.0660673D6 .gt. P .or. P .gt. 21.2082144D6) then write(*,*) 'HSSP01: the valid range of pressure is exceeded!' elseif (P .gt. 17.3459145D6) then Z = (P - 17.3459145D6)/3.8622999D6 DSDP = (-0.2570173D0 - 1.4987482D-1*Z * - 5.372357331D-1*Z**7.1685078D0)/3.8622999D6 elseif (P .gt. 3.6656098D6) then Z = (P - 3.6656098D6)/13.6803047D6 DSDP = (-1.3660556D0 + 6.029176D0*Z * - 5.573478346D0*Z**1.2250651D0)/13.6803047D6 elseif (P .gt. 0.4978913D6) then Z = (P - 0.4978913D6)/3.1677185D6 DSDP = (-1.9047455D0 - 2.2698914D0*Z * + 3.858322241D0*Z**0.6086341D0)/3.1677185D6 else Z = (P - 0.0660673D6)/0.431824D6 DSDP = (-1.9544322D0 - 2.5017538D0*Z * + 4.196530942D0*Z**0.6125756D0)/0.431824D6 endif C RETURN END C SUBROUTINE HSCP01(P,CP) C**********************************************************************C C Specific heat, in kJ/kg.K, of heavy water in vapour phase C C at saturation as a function of pressure in Pa. C C The valid range of pressure is C C 0.0660673 MPa < P < 20.7010966 MPa ; C C the relative error is C C err < 0.1% . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 8th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (0.0660673D6 .gt. P .or. P .gt. 20.7010966D6) then write(*,*) 'HSCP01: the valid range of pressure is exceeded!' elseif (P .gt. 14.3747408D6) then Z = (P - 14.3747408D6)/6.3263558D6 CP = 0.8867425D-1 - (0.7892396D-1 - 0.7527344D-2*Z)*Z * - 0.529514D-2*Z**3.4905466D0 CP = 1.D0/CP elseif (P .gt. 7.7999898D6) then Z = (P - 7.7999898D6)/6.574751D6 CP = 5.3891964D0 + (3.5183682D0 + 1.4071187D0*Z)*Z * + 0.9625478D0*Z**4.2356759D0 elseif (P .gt. 0.7336369D6) then Z = (P - 0.7336369D6)/7.0663529D6 CP = 2.2700113D0 + (3.3708836D0 - 4.1025769D0*Z)*Z * + 3.8508784D0*Z**2.2350993D0 else Z = (P - 0.0660673D6)/0.6675696D6 CP = 1.8675658D0 + (0.7250382D0 + 0.2827184D0*Z)*Z * - 0.6053112D0*Z**1.6042495D0 endif C RETURN END C SUBROUTINE HSDCP01(P,DCDP) C**********************************************************************C C Derivative of specific heat, in kJ/(kg.K.Pa), of heavy water C C with respect to pressure in vapour phase at saturation. C C The valid range of pressure is C C 0.0660673 MPa < P < 20.7010966 MPa . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 8th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (0.0660673D6 .gt. P .or. P .gt. 20.7010966D6) then write(*,*) 'HSCP01: the valid range of pressure is exceeded!' elseif (P .gt. 14.3747408D6) then Z = (P - 14.3747408D6)/6.3263558D6 CP = 0.8867425D-1 - (0.7892396D-1 - 0.7527344D-2*Z)*Z * - 0.529514D-2*Z**3.4905466D0 DCDP = (0.7892396D-1 - 1.5054688D-2*Z * + 1.848293292D-2*Z**2.4905466D0)/(6.3263558D6*CP**2) elseif (P .gt. 7.7999898D6) then Z = (P - 7.7999898D6)/6.574751D6 DCDP = (3.5183682D0 + 2.8142374D0*Z * + 4.07704052D0*Z**3.2356759D0)/6.574751D6 elseif (P .gt. 0.7336369D6) then Z = (P - 0.7336369D6)/7.0663529D6 DCDP = (3.3708836D0 - 8.2051538D0*Z * + 8.607095616D0*Z**1.2350993D0)/7.0663529D6 else Z = (P - 0.0660673D6)/0.6675696D6 DCDP = (0.7250382D0 + 0.5654368D0*Z * - 0.97107019D0*Z**0.6042495D0)/0.6675696D6 endif C RETURN END CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C SATURATED HEAVY WATER PROPERTIES as a function of temperature C C followed suncooled and superheated heavy water properties as C C a function of pressure and temperature. C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC SUBROUTINE HWSAP1(T,P) C**********************************************************************C C Pressure, in Pa, of heavy water at saturation as a C C function of temperature in C. C C The valid range of temperature is C C 90.5 C < T < 370.74 C ; C C the relative error is C C err < 0.01% . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 23th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 370.74D0) then write(*,*) 'HWSAP1: the valid range of temperature is exceeded!' elseif (T .gt. 320.D0) then Z = (T - 320.D0)/46.D0 P = 11.442428D6 + (7.0289472D6 + 1.7422423D6*Z)*Z * + 0.2384117D6*Z**3.68D0 elseif (T .gt. 252.D0) then Z = (T - 252.D0)/68.D0 P = 4.1333143D6 + (4.75435D6 + 2.124772D6*Z)*Z * + 0.4299918D6*Z**3.225D0 elseif (T .gt. 179.D0) then Z = (T - 179.D0)/73.D0 P = 0.9682855D6 + (1.6569005D6 + 1.1322316D6*Z)*Z * + 0.3758966D6*Z**3.146D0 elseif (T .gt. 127.D0) then Z = (T - 127.D0)/52.D0 P = 0.2385152D6 + (0.384338812D6 + 0.2559459D6*Z)*Z * + 0.089485567D6*Z**3.174D0 else Z = (T - 90.5D0)/36.5D0 P = 0.06736076D6 + (0.09519366D6 + 0.05709235D6*Z)*Z * + 0.01886846D6*Z**3.201D0 end if C RETURN END C SUBROUTINE HWDSAP1(T,DPDT) C**********************************************************************C C Derivative of pressure, in Pa/C, of heavy water with respect to C C temperature at saturation. C C The valid range of temperature is C C 90.5 C < T < 370.74 C . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 23th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 370.74D0) then write(*,*) 'HWDSAP1: the valid range of temperature is exceeded!' elseif (T .gt. 320.D0) then Z = (T - 320.D0)/46.D0 DPDT = (7.0289472D6 + 3.4844846D6*Z * + 0.877355056D6*Z**2.68D0)/46.D0 elseif (T .gt. 252.D0) then Z = (T - 252.D0)/68.D0 DPDT = (4.75435D6 + 4.249544D6*Z * + 1.3867236D6*Z**2.225D0)/68.D0 elseif (T .gt. 179.D0) then Z = (T - 179.D0)/73.D0 DPDT = (1.6569005D6 + 2.2644632D6*Z * + 1.1825707D6*Z**2.146D0)/73.D0 elseif (T .gt. 127.D0) then Z = (T - 127.D0)/52.D0 DPDT = (0.384338812D6 + 0.5118918D6*Z * + 0.28402719D6*Z**2.174D0)/52.D0 else Z = (T - 90.5D0)/36.5D0 DPDT = (0.09519366D6 + 0.1141847D6*Z * + 0.06039794D6*Z**2.201D0)/36.5D0 end if C RETURN END C SUBROUTINE HWRT01(T,RO) C*********************************************************************C C Density, in kg/m3, of heavy water in liquid phase at saturation C C as a function of temperature in C. C C The valid range of temperature is C C 90.5 C < T < 369 C ; C C the relative error is C C err < 0.02% . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 24th, 1993 at UNB. C C*********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 369.D0) then write(*,*) 'HWRT01: the valid range of temperature is exceeded!' elseif (T .lt. 307.5D0) then Z = (T - 90.5D0)/217.D0 RO = 1.07065471D3 - (0.1611572D3 + 0.12188254D3*Z)*Z * - 0.2106382D2*Z**6.83D0 elseif (T .lt. 350.D0) then Z = (T - 307.5D0)/42.5D0 RO = 0.7665511D3 - (0.1074816D3 + 0.2506107D2*Z)*Z * - 0.1042465D2*Z**4.64D0 elseif (T .lt. 364.D0) then Z = (T - 350.D0)/14.D0 RO = 0.6235838D3 - (0.0678503D3 + 0.01551348D3*Z)*Z * - 0.7259508D1*Z**4.47D0 else Z = (T - 364.D0)/4.5D0 RO = 0.5329606D3 - (0.4286569D2 + 0.1064107D2*Z)*Z * - 0.4761284D1*Z**5 end if C RETURN END C SUBROUTINE HWDRT01(T,DRDT) C**********************************************************************C C Derivative of density, in kg/m3.C, of heavy water with respect C C to temperature in liquid phase at saturation. C C The valid range of temperature is C C 90.5 C < T < 369 C . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 24th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 369.D0) then write(*,*) 'HWDRT01: the valid range of temperature is exceeded!' elseif (T .lt. 307.5D0) then Z = (T - 90.5D0)/217.D0 DRDT = (-0.1611572D3 - 0.24376508D3*Z * - 1.4386589D2*Z**5.83D0)/217.D0 elseif (T .lt. 350.D0) then Z = (T - 307.5D0)/42.5D0 DRDT = (-0.1074816D3 - 0.5012214D2*Z * - 0.48370376D2*Z**3.64D0)/42.5D0 elseif (T .lt. 364.D0) then Z = (T - 350.D0)/14.D0 DRDT = (-0.0678503D3 - 0.03102696D3*Z * - 0.3245D2*Z**3.47D0)/14.D0 else Z = (T - 364.D0)/4.5D0 DRDT = (-0.4286569D2 - 0.2128214D2*Z * - 0.2380642D2*Z**4)/4.5D0 end if C RETURN END C SUBROUTINE HWHT01(T,H) C*********************************************************************C C Specific enthalpy, in kJ/kg, of heavy water in liquid phase C C at saturation as a function of temperature in C. C C The valid range of temperature is C C 90.5 C < T < 369.5 C ; C C the relative error is C C err < 0.02% . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 24th, 1993 at UNB. C C*********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 369.5D0) then write(*,*) 'HWHT01: the valid range of temperature is exceeded!' elseif (T .lt. 257.5D0) then Z = (T - 90.5D0)/167.D0 H = 365.515323D0 + (696.60209D0 - 9.3229851D0*Z)*Z * + 30.7092221D0*Z**3.535D0 elseif (T .lt. 340.D0) then Z = (T - 257.5D0)/82.5D0 H = 1083.50185D0 + (388.54695D0 + 40.6830346D0*Z)*Z * + 21.4058154D0*Z**4.79D0 elseif (T .lt. 364.D0) then Z = (T - 340.D0)/24.D0 H = 1534.137695D0 + (166.53D0 + 27.8460448D0*Z)*Z * + 15.9652752D0*Z**5.67D0 else Z = (T - 364.D0)/5.D0 H = 1744.47897D0 + (65.11525D0 + 15.3342016D0*Z)*Z * + 8.2093984D0*Z**5.74D0 end if C RETURN END C SUBROUTINE HWDHT01(T,DHDT) C**********************************************************************C C Derivative of specific enthalpy, in kJ/kg.K, of heavy water with C C respect to temperature, in C, in liquid phase at saturation. C C The valid range of temperature is C C 90.5 C < T < 369.5 C . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 24th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 369.5D0) then write(*,*) 'HWDHT01: the valid range of temperature is exceeded!' elseif (T .lt. 257.5D0) then Z = (T - 90.5D0)/167.D0 DHDT = (696.60209D0 - 18.6459702D0*Z * + 108.5571001D0*Z**2.535D0)/167.D0 elseif (T .lt. 340.D0) then Z = (T - 257.5D0)/82.5D0 DHDT = (388.54695D0 + 81.3660692D0*Z * + 102.5338558D0*Z**3.79D0)/82.5D0 elseif (T .lt. 364.D0) then Z = (T - 340.D0)/24.D0 DHDT = (166.53D0 + 55.6920896D0*Z * + 90.52311038D0*Z**4.67D0)/24.D0 else Z = (T - 364.D0)/5.D0 DHDT = (65.11525D0 + 30.6684032D0*Z * + 47.12194682D0*Z**4.74D0)/5.D0 end if C RETURN END C SUBROUTINE HWST01(T,S) C**********************************************************************C C Specific entropy, in kJ/kg.K, of heavy water in liquid phase C C at saturation as a function of temperature in C. C C The valid range of temperature is C C 90.5 C < T < 369 C ; C C the relative error is C C err < 0.01% . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 24th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 369.D0) then write(*,*) 'HWST01: the valid range of temperature is exceeded!' elseif (T .lt. 260.D0) then Z = (T - 90.5D0)/169.5D0 S = 1.148437D0 + (1.943126D0 - 0.4994547D0*Z)*Z * + 0.1872579D0*Z**2.845D0 elseif (T .lt. 338.D0) then Z = (T - 260.D0)/78.D0 S = 2.7793669D0 + (0.6796655D0 + 0.1107787D-1*Z)*Z * + 0.2847635D-1*Z**4.57D0 elseif (T .lt. 362.5D0) then Z = (T - 338.D0)/24.5D0 S = 3.4985866D0 + (0.2613202D0 + 0.3385254D-1*Z)*Z * + 0.2054974D-1*Z**5.33D0 else Z = (T - 362.5D0)/6.D0 S = 3.8143091D0 + (0.1074013D0 + 0.2293564D-1*Z)*Z * + 0.1272695D-1*Z**5.4D0 end if C RETURN END C SUBROUTINE HWDST01(T,DSDT) C**********************************************************************C C Derivative of specific entropy, in kJ/kg.K2, of heavy water C C with respect to temperature, in C, in liquid phase at saturation. C C The valid range of temperature is C C 90.5 C < T < 369 C . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 24th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 369.D0) then write(*,*) 'HWDST01: the valid range of temperature is exceeded!' elseif (T .lt. 260.D0) then Z = (T - 90.5D0)/169.5D0 DSDT = (1.943126D0 - 0.9985094D0*Z * + 0.53274873D0*Z**1.845D0)/169.5D0 elseif (T .lt. 338.D0) then Z = (T - 260.D0)/78.D0 DSDT = (0.6796655D0 + 0.2215574D-1*Z * + 1.3013692D-1*Z**3.57D0)/78.D0 elseif (T .lt. 362.5D0) then Z = (T - 338.D0)/24.5D0 DSDT = (0.2613202D0 + 0.6770508D-1*Z * + 1.09530114D-1*Z**4.33D0)/24.5D0 else Z = (T - 362.5D0)/6.D0 DSDT = (0.1074013D0 + 0.4587128D-1*Z * + 0.6872553D-1*Z**4.4D0)/6.D0 end if C RETURN END C SUBROUTINE HWCT01(T,CP) C**********************************************************************C C Specific heat, in kJ/kg.K, of heavy water in liquid phase C C at saturation as a function of temperature in C. C C The valid range of temperature is C C 90.5 C < T < 367 C ; C C the relative error is C C err < 0.02% . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 24th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 367.D0) then write(*,*) 'HWCT01: the valid range of temperature is exceeded!' elseif (T .lt. 216.D0) then Z = (T - 90.5D0)/125.5D0 CP = 0.2398399D0 + (0.7260874D-2 - 0.8715753D-2*Z)*Z * - 0.1067229D-1*Z**2.43D0 CP = 1.D0/CP elseif (T .lt. 289.D0) then Z = (T - 216.D0)/73.D0 CP = 4.3914986D0 + (0.4050098D0 + 0.2650923D0*Z)*Z * + 0.152426D0*Z**4.26D0 elseif (T .lt. 334.D0) then Z = (T - 289.D0)/45.D0 CP = 0.1917903D0 - (0.3592811D-1 + 0.1396726D-1*Z)*Z * - 0.5187553D-2*Z**4.07D0 CP = 1.D0/CP elseif (T .lt. 357.D0) then Z = (T - 334.D0)/23.D0 CP = 0.1367074D0 - (0.4343216D-1 + 0.1360508D-1*Z)*Z * - 0.5536208D-2*Z**3.82D0 CP = 1.D0/CP else Z = (T - 357.D0)/9.5D0 CP = 0.07413399D0 - (0.3791352D-1 + 0.6539416D-2*Z)*Z * - 0.2756629D-2*Z**2.58D0 CP = 1.D0/CP end if C RETURN END C SUBROUTINE HWDCT01(T,DCDT) C**********************************************************************C C Derivative of specific heat, in kJ/kg.K2, of heavy water with C C respect to temperature, in C, in liquid phase at saturation. C C The valid range of temperature is C C 90.5 C < T < 367 C . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 24th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 367.D0) then write(*,*) 'HWDCT01: the valid range of temperature is exceeded!' elseif (T .lt. 216.D0) then Z = (T - 90.5D0)/125.5D0 CP = 0.2398399D0 + (0.7260874D-2 - 0.8715753D-2*Z)*Z * - 0.1067229D-1*Z**2.43D0 DCDT = -(0.7260874D-2 - 1.7431506D-2*Z * - 0.25933664D-1*Z**1.43D0)/(125.5D0*CP**2) elseif (T .lt. 289.D0) then Z = (T - 216.D0)/73.D0 DCDT = (0.4050098D0 + 0.5301846D0*Z * + 0.64933476D0*Z**3.26D0)/73.D0 elseif (T .lt. 334.D0) then Z = (T - 289.D0)/45.D0 CP = 0.1917903D0 - (0.3592811D-1 + 0.1396726D-1*Z)*Z * - 0.5187553D-2*Z**4.07D0 DCDT = (0.3592811D-1 + 0.2793452D-1*Z * + 2.1113341D-2*Z**3.07D0)/(45.D0*CP**2) elseif (T .lt. 357.D0) then Z = (T - 334.D0)/23.D0 CP = 0.1367074D0 - (0.4343216D-1 + 0.1360508D-1*Z)*Z * - 0.5536208D-2*Z**3.82D0 DCDT = (0.4343216D-1 + 0.2721016D-1*Z * + 2.1148315D-2*Z**2.82D0)/(23.D0*CP**2) else Z = (T - 357.D0)/9.5D0 CP = 0.07413399D0 - (0.3791352D-1 + 0.6539416D-2*Z)*Z * - 0.2756629D-2*Z**2.58D0 DCDT = (0.3791352D-1 + 1.3078832D-2*Z * + 0.71121028D-2*Z**1.58D0)/(9.5D0*CP**2) end if C RETURN END C SUBROUTINE HSRT01(T,RO) C*********************************************************************C C Density, in kg/m^3, of heavy water in vapour phase at saturation C C as a function of temperature in C. C C The valid range of temperature is C C 90.5 C < T < 366.5 C ; C C the relative error is C C err < 0.05% . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 24th, 1993 at UNB. C C*********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 369.D0) then write(*,*) 'HSRT01: the valid range of temperature is exceeded!' elseif (T .gt. 350.D0) then Z = (T - 350.D0)/16.D0 RO = 7.5017113D0 - (2.7448665D0 - 0.4712976D-1*Z)*Z * - 0.1461081D0*Z**5.45D0 RO = 1.D3/RO elseif (T .gt. 288.D0) then Z = (T - 288.D0)/62.D0 RO = 23.2557129D0 - (24.2703096D0 - 12.7121893D0*Z)*Z * - 4.1958813D0*Z**2.81D0 RO = 1.D3/RO elseif (T .gt. 221.D0) then Z = (T - 221.D0)/67.D0 RO = 0.01319205D3 + (0.1687167D2 + 0.9533432D1*Z)*Z * + 0.3402844D1*Z**3.69D0 elseif (T .gt. 147.5D0) then Z = (T - 147.5D0)/73.5D0 RO = 0.2595185D1 + (0.4966204D1 + 0.3980025D1*Z)*Z * + 0.1650632D1*Z**3.382D0 else Z = (T - 90.5D0)/57.D0 RO = 0.451542D0 + (0.9337486D0 + 0.8179223D0*Z)*Z * + 0.3919721D0*Z**3.27D0 end if C RETURN END C SUBROUTINE HSDRT01(T,DRDT) C**********************************************************************C C Derivative of density, in kg/m3.K, of heavy water with respect C C to temperature, in C, in vapour phase at saturation. C C The valid range of temperature is C C 90.5 C < T < 366.5 C . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 24th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 369.D0) then write(*,*) 'HSDRT01: the valid range of temperature is exceeded!' elseif (T .gt. 350.D0) then Z = (T - 350.D0)/16.D0 RO = 7.5017113D0 - (2.7448665D0 - 0.4712976D-1*Z)*Z * - 0.1461081D0*Z**5.45D0 DRDT = (2.7448665D3 - 0.9425852D2*Z * + 0.7962891D3*Z**4.45D0)/(16.D0*RO**2) elseif (T .gt. 288.D0) then Z = (T - 288.D0)/62.D0 RO = 23.2557129D0 - (24.2703096D0 - 12.7121893D0*Z)*Z * - 4.1958813D0*Z**2.81D0 DRDT = (24.2703096D3 - 25.4243786D3*Z * + 11.79042645D3*Z**1.81D0)/(62.D0*RO**2) elseif (T .gt. 221.D0) then Z = (T - 221.D0)/67.D0 DRDT = (0.1687167D2 + 1.9066864D1*Z * + 1.2556494D1*Z**2.69D0)/67.D0 elseif (T .gt. 147.5D0) then Z = (T - 147.5D0)/73.5D0 DRDT = (0.4966204D1 + 0.796005D1*Z * + 0.55824374D1*Z**2.382D0)/73.5D0 else Z = (T - 90.5D0)/57.D0 DRDT = (0.9337486D0 + 1.6358446D0*Z * + 1.281749D0*Z**2.27D0)/57.D0 end if C RETURN END C SUBROUTINE HSHT01(T,H) C**********************************************************************C C Specific enthalpy, in kJ/kg, of heavy water in vapour phase C C at saturation as a function of temperature in C. C C The valid range of temperature is C C 90.5 C < T < 368 C ; C C the relative error is C C err < 0.01% . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 24th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 368.D0) then write(*,*) 'HSHT01: the valid range of temperature is exceeded!' elseif (T .lt. 259.D0) then Z = (T - 90.5D0)/168.5D0 H = 2465.02D0 + (257.038325D0 - 69.298269D0*Z)*Z * - 59.547036D0*Z**3.39D0 elseif (T .lt. 333.D0) then Z = (T - 259.D0)/74.D0 H = 2593.21302D0 - (36.63666D0 + 70.6712028D0*Z)*Z * - 26.1578672D0*Z**4.41D0 elseif (T .lt. 359.D0) then Z = (T - 333.D0)/26.D0 H = 2459.74729D0 - (103.06374D0 + 40.5743371D0*Z)*Z * - 17.2902029D0*Z**4.76D0 else Z = (T - 359.D0)/8.5D0 H = 2298.81901D0 - (87.129505D0 + 27.7163491D0*Z)*Z * - 14.0347359D0*Z**5.2D0 end if C RETURN END C SUBROUTINE HSDHT01(T,DHDT) C**********************************************************************C C Derivative of specific enthalpy, in kJ/kg.K, of heavy water with C C respect to temperature, in C, in vapour phase at saturation. C C The valid range of temperature is C C 90.5 C < T < 368 C . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 24th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 368.D0) then write(*,*) 'HSDHT01: the valid range of temperature is exceeded!' elseif (T .lt. 259.D0) then Z = (T - 90.5D0)/168.5D0 DHDT = (257.038325D0 - 138.596538D0*Z * - 201.864452D0*Z**2.39D0)/168.5D0 elseif (T .lt. 333.D0) then Z = (T - 259.D0)/74.D0 DHDT = (-36.63666D0 - 141.3424056D0*Z * - 115.3561944D0*Z**3.41D0)/74.D0 elseif (T .lt. 359.D0) then Z = (T - 333.D0)/26.D0 DHDT = (-103.06374D0 - 81.1486742D0*Z * - 82.3013658D0*Z**3.76D0)/26.D0 else Z = (T - 359.D0)/8.5D0 DHDT = (-87.129505D0 - 55.4326982D0*Z * - 72.9806267D0*Z**4.2D0)/8.5D0 end if C RETURN END C SUBROUTINE HSST01(T,S) C*********************************************************************C C Specific entropy, in kJ/kg.K, of heavy water in vapour phase C C at saturation as a function of temperature in C. C C The valid range of temperature is C C 90.5 C < T < 369 C ; C C the relative error is C C err < 0.01% . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 24th, 1993 at UNB. C C*********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 369.D0) then write(*,*) 'HWST01: the valid range of temperature is exceeded!' elseif (T .lt. 270.D0) then Z = (T - 90.5D0)/179.5D0 S = 6.9219133D0 - (2.0979386D0 - 1.471548D0*Z)*Z * - 0.7720297D0*Z**2.605D0 elseif (T .lt. 340.D0) then Z = (T - 270.D0)/70.D0 S = 5.5234931D0 - (0.4546997D0 + 0.4318922D-1*Z)*Z * - 0.4573105D-1*Z**4.53D0 elseif (T. lt. 362.5D0) then Z = (T - 340.D0)/22.5D0 S = 4.9798731D0 - (0.2405057D0 + 0.569047D-1*Z)*Z * - 0.3063506D-1*Z**5.15D0 else Z = (T - 362.5D0)/6.D0 S = 4.6518277D0 - (0.1365562D0 + 0.3797178D-1*Z)*Z * - 0.19334D-1*Z**5.4D0 end if C RETURN END C SUBROUTINE HSDST01(T,DSDT) C**********************************************************************C C Derivative of specific entropy, in kJ/kg.K, of heavy water with C C respect to temperature, in C, in vapour phase at saturation. C C The valid range of temperature is C C 90.5 C < T < 369 C . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 24th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 369.D0) then write(*,*) 'HWDST01: the valid range of temperature is exceeded!' elseif (T .lt. 270.D0) then Z = (T - 90.5D0)/179.5D0 DSDT = (-2.0979386D0 + 2.943096D0*Z * - 2.01113737D0*Z**1.605D0)/179.5D0 elseif (T .lt. 340.D0) then Z = (T - 270.D0)/70.D0 DSDT = (-0.4546997D0 - 0.8637844D-1*Z * - 2.0716166D-1*Z**3.53D0)/70.D0 elseif (T. lt. 362.5D0) then Z = (T - 340.D0)/22.5D0 DSDT = (-0.2405057D0 - 1.138094D-1*Z * - 1.57770559D-1*Z**4.15D0)/22.5D0 else Z = (T - 362.5D0)/6.D0 DSDT = (-0.1365562D0 - 0.7594356D-1*Z * - 1.044036D-1*Z**4.4D0)/6.D0 end if C RETURN END C SUBROUTINE HSCT01(T,CP) C**********************************************************************C C Specific heat, in kJ/kg.K, of heavy water in vapour phase C C at saturation as a function of temperature in C. C C The valid range of temperature is C C 90.5 C < T < 367.5 C ; C C the relative error is C C err < 0.02% . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 24th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 367.5D0) then write(*,*) 'HSCT01: the valid range of temperature is exceeded!' elseif (T .lt. 208.D0) then Z = (T - 90.5D0)/117.5D0 CP = 1.8689755D0 + (0.3394869D0 + 0.2728998D0*Z)*Z * + 0.2686182D0*Z**3.507D0 elseif (T .lt. 270.D0) then Z = (T - 208.D0)/62.D0 CP = 2.7499805D0 + (0.9642085D0 + 0.4429098D0*Z)*Z * + 0.141205D0*Z**3.945D0 elseif (T .lt. 339.D0) then Z = (T - 270.D0)/69.D0 CP = 0.2326499D0 - (0.1449925D0 - 0.19935345D-2*Z)*Z * - 0.441272D-2*Z**3.96D0 CP = 1.D0/CP elseif (T .lt. 363.D0) then Z = (T - 339.D0)/24.D0 CP = 0.08523823D0 - (0.5512341D-1 + 0.3706342D-2*Z)*Z * - 0.2012056D-2*Z**4.26D0 CP = 1.D0/CP else Z = (T - 363.D0)/4.D0 CP = 0.02439642D0 - (0.1185124D-1 + 0.4619397D-3*Z)*Z * - 0.1003777D-3*Z**2.4D0 CP = 1.D0/CP end if C RETURN END C SUBROUTINE HSDCT01(T,DCDT) C**********************************************************************C C Derivative of specific heat, in kJ/kg.K2, of heavy water with C C respect to temperature, in C, in vapour phase at saturation. C C The valid range of temperature is C C 90.5 C < T < 367.5 C . C C C C Created by Ji Zhang for the DSNP of Canadian version, C C Sept. 24th, 1993 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 367.5D0) then write(*,*) 'HSCT01: the valid range of temperature is exceeded!' elseif (T .lt. 208.D0) then Z = (T - 90.5D0)/117.5D0 DCDT = (0.3394869D0 + 0.5457996D0*Z * + 0.94204403D0*Z**2.507D0)/117.5D0 elseif (T .lt. 270.D0) then Z = (T - 208.D0)/62.D0 DCDT = (0.9642085D0 + 0.8858196D0*Z * + 0.55705373D0*Z**2.945D0)/62.D0 elseif (T .lt. 339.D0) then Z = (T - 270.D0)/69.D0 CP = 0.2326499D0 - (0.1449925D0 - 0.19935345D-2*Z)*Z * - 0.441272D-2*Z**3.96D0 DCDT = (0.1449925D0 - 0.3987065D-2*Z * + 1.74743712D-2*Z**2.96D0)/(69.D0*CP**2) elseif (T .lt. 363.D0) then Z = (T - 339.D0)/24.D0 CP = 0.08523823D0 - (0.5512341D-1 + 0.3706342D-2*Z)*Z * - 0.2012056D-2*Z**4.26D0 DCDT = (0.5512341D-1 + 0.7412684D-2*Z * + 0.85713586D-2*Z**3.26D0)/(24.D0*CP**2) else Z = (T - 363.D0)/4.D0 CP = 0.02439642D0 - (0.1185124D-1 + 0.4619397D-3*Z)*Z * - 0.1003777D-3*Z**2.4D0 DCDT = (0.1185124D-1 + 0.9238794D-3*Z * + 0.24090648D-3*Z**1.4D0)/(4.D0*CP**2) end if C RETURN END CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C SUBCOOLED HEAVY WATER PROPERTIES as a function of pressure and C C temperature; C C followed by superheated heavy water properties as a function of C C pressure and temperature. C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C SUBROUTINE HWRPT1(T,P,R) C**********************************************************************C C Density, in kg/m3, of subcooled heavy water as a function of C C temperature (C) and pressure (Pa) . C C The valid temperature and pressure ranges are C C 90.5 < T < 358.5 C, C C and C C saturation < P < 22.131475 MPa. C C C C The relative error is C C err < 0.05% if T < 354.5 C C C < 0.07% else. C C C C Created by Ji Zhang for the DSNP of Canadian version, C C January 8th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 358.5D0) then write(*,*) 'HWRTP1: exceed the valid tempurature range!' elseif (P .gt. 22.131475D06) then write(*,*) 'HWRTP1: exceed the valid pressure range!' else CALL HWSAP1(T, P0) CALL HWRT01(T,R0) A = (0.91725D0+0.61D-7*(R0-0.825D03)**2)*(R0+0.10365D03) - R0 B = 0.12D-6*P0 - 0.3D0 DT = 1.D06*(370.74D0 - T) RR = (B + DT/(22.131475D06 - P0))/(B + DT/(P - P0)) R = R0 + A*RR endif C RETURN END C SUBROUTINE HWDRP1(T,P,DRDP) C**********************************************************************C C Derivative of density, in kg/m3.Pa, of subcooled heavy water C C with respect to presssure, as a function of temperature (C) C C and pressure (Pa) . C C The valid temperature and pressure ranges are C C 90.5 < T < 358.5 C, C C and C C saturation < P < 22.131475 MPa. C C C C Created by Ji Zhang for the DSNP of Canadian version, C C January 8th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 358.5D0) then write(*,*) 'HWDRP1: exceed the valid tempurature range!' elseif (P .gt. 22.131475D06) then write(*,*) 'HWDRP1: exceed the valid pressure range!' else CALL HWSAP1(T, P0) CALL HWRT01(T,R0) A = (0.91725D0+0.61D-7*(R0-0.825D03)**2)*(R0+0.10365D03) - R0 B = 0.12D-6*P0 - 0.3D0 DT = 1.D06*(370.74D0 - T) RR = DT*(B + DT/(22.131475D06 - P0))/(B*(P - P0) + DT)**2 DRDP = A*RR endif C RETURN END C SUBROUTINE HWDRT1(T,P,DRDT) C**********************************************************************C C Derivative of density, in kg/m3.Pa, of subcooled heavy water C C with respect to temperature, as a function of temperature (C) C C and pressure (Pa) . C C The valid temperature and pressure ranges are C C 90.5 < T < 358.5 C, C C and C C saturation < P < 22.131475 MPa. C C C C Created by Ji Zhang for the DSNP of Canadian version, C C January 8th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) DT = 0.1D-3 CALL HWRPT1(T-DT,P,RO1) CALL HWRPT1(T+DT,P,RO2) DRDT = (RO2 - RO1)/(DT+DT) C CALL HWRPT1(T,P,RO) C CALL HWDSP1(T,P,DSDP) C DRDT = RO**2*DSDP C RETURN END C SUBROUTINE HWHPT1(T,P,H) C**********************************************************************C C Specific enthalpy, in kJ/kg, of subcooled heavy water as a C C function of temperature (C) and pressure (Pa) . C C The valid temperature and pressure ranges are C C 90.5 < T < 358.5 C, C C and C C saturation < P < 22.131475 MPa. C C C C The relative error is C C err < 0.07% C C C C Created by Ji Zhang for the DSNP of Canadian version, C C January 8th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0.gt.T .or. T.gt.358.5D0) then write(*,*) 'HWHTP1: exceed the valid tempurature range!' elseif (0.06868D06.gt.P .or. P.gt.22.131475D06) then write(*,*) 'HWHTP1: exceed the valid pressure range!' else CALL HWSAP1(T, P0) CALL HWHT01(T,H0) A = (0.9769D0 - 0.695D-6*(T - 199.4D0)**2)*(H0+27.93D0) - H0 B = 0.13D-1*T - 2.D0 DT = 1.D06*(370.74D0 - T) HH = (B + DT/(22.131475D06 - P0))/(B + DT/(P - P0)) H = H0 + A*HH endif C RETURN END C SUBROUTINE HWDHP1(T,P,DHDP) C**********************************************************************C C Derivative of specific enthalpy, in kJ/kg.Pa, of subcooled heavy C C water with respect to presssure, as a function of temperature (C) C C and pressure (Pa) . C C The valid temperature and pressure ranges are C C 90.5 < T < 358.5 C, C C and C C saturation < P < 22.131475 MPa. C C C C Created by Ji Zhang for the DSNP of Canadian version, C C January 8th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 358.5D0) then write(*,*) 'HWDHP1: exceed the valid tempurature range!' elseif (P .gt. 22.131475D06) then write(*,*) 'HWDHP1: exceed the valid pressure range!' else CALL HWSAP1(T, P0) CALL HWHT01(T,H0) A = (0.9769D0 - 0.695D-6*(T - 199.4D0)**2)*(H0+27.93D0) - H0 B = 0.13D-1*T - 2.D0 DT = 1.D06*(370.74D0 - T) HH = DT*(B + DT/(22.131475D06 - P0))/(B*(P - P0) + DT)**2 DHDP = A*HH endif C RETURN END C SUBROUTINE HWDHT1(T,P,DHDT) C**********************************************************************C C Derivative of specific enthalpy, in kJ/kg.Pa, of subcooled heavy C C water with respect to temperature, as a function of temperature (C)C C and pressure (Pa) . C C The valid temperature and pressure ranges are C C 90.5 < T < 354.5 C, C C and C C saturation < P < 20.06 MPa. C C C C Created by Ji Zhang for the DSNP of Canadian version, C C January 8th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) CALL HWCPT1(T,P,CP) DHDT = CP C RETURN END C SUBROUTINE HWSPT1(T,P,S) C**********************************************************************C C Specific entropy, in kJ/kg.K, of subcooled heavy water as a C C function of temperature (C) and pressure (Pa) . C C The valid temperature and pressure ranges are C C 90.5 < T < 358.5 C, C C and C C saturation < P < 22.131475 MPa. C C C C The relative error is C C err < 0.04% if T < 354.5 C C C < 0.07% elsewhere. C C C C Created by Ji Zhang for the DSNP of Canadian version, C C January 8th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 358.5D0) then write(*,*) 'HWSTP1: exceed the valid tempurature range!' elseif (P .gt. 22.131475D06) then write(*,*) 'HWSTP1: exceed the valid pressure range!' else CALL HWSAP1(T, P0) CALL HWST01(T,S0) A = (0.9815-0.305D-2*(S0-2.415D0)**2)*(S0 + 0.0136D0) - S0 B = 1.25D0 DT = 1.D06*(370.74D0 - T) SS = (B + DT/(22.131475D06 - P0))/(B + DT/(P - P0)) S = S0 + A*SS endif C RETURN END C SUBROUTINE HWDSP1(T,P,DSDP) C**********************************************************************C C Derivative of specific entropy, in kJ/kg.K.Pa, of subcooled heavy C C water with respect to presssure, as a function of temperature (C) C C and pressure (Pa) . C C The valid temperature and pressure ranges are C C 90.5 < T < 358.5 C, C C and C C saturation < P < 22.131475 MPa. C C C C Created by Ji Zhang for the DSNP of Canadian version, C C January 8th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 358.5D0) then write(*,*) 'HWDSP1: exceed the valid tempurature range!' elseif (P .gt. 22.131475D06) then write(*,*) 'HWDSP1: exceed the valid pressure range!' else CALL HWSAP1(T, P0) CALL HWST01(T,S0) A = (0.9815-0.305D-2*(S0-2.415D0)**2)*(S0 + 0.0136D0) - S0 B = 1.25D0 D = 0.9815 - 0.305D-2*(S0 - 2.415D0)**2 DT = 1.D06*(370.74D0 - T) SS = DT*(B + DT/(22.131475D06 - P0))/(B*(P - P0) + DT)**2 DSDP = A*SS endif C RETURN END SUBROUTINE HWDST1(T,P,DSDT) C**********************************************************************C C Derivative of specific entropy, in kJ/kg.K.Pa, of subcooled heavy C C water with respect to temperature, as a function of temperature (C)C C and pressure (Pa) . C C The valid temperature and pressure ranges are C C 90.5 < T < 354.5 C, C C and C C saturation < P < 20.06 MPa. C C C C Created by Ji Zhang for the DSNP of Canadian version, C C January 8th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) CALL HWCPT1(T,P,CP) DSDT = CP/(T+273.15D0) C RETURN END SUBROUTINE HWCPT1(T,P,CP) C**********************************************************************C C Specific heat, in kJ/kg.K, of subcooled heavy water as a C C function of temperature (C) and pressure (Pa) . C C The valid temperature and pressure ranges are C C 90.5 < T < 354.5 C, C C and C C saturation < P < 20.06 MPa. C C C C The relative error is C C err < 0.12% C C C C Created by Ji Zhang for the DSNP of Canadian version, C C January 8th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (90.5D0 .gt. T .or. T .gt. 354.5D0) then write(*,*) 'HWCTP1: exceed the valid tempurature range!' elseif (P .gt. 20.06D06) then write(*,*) 'HWCTP1: exceed the valid pressure range!' else CALL HWSAP1(T, P0) CALL HWCT01(T,CP0) A = -0.19878D0 + (1.521D0 - 0.393D0*CP0)*CP0 B = -0.293594D0 + (0.45876D0 + 0.57448D-02*CP0)*CP0 DT = 1.D06*(370.74D0 - T) CC = B + DT/(P - P0) CP = CP0 + A/CC endif C RETURN END CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C SUPERHEATED HEAVY WATER PROPERTIES C C as a function of pressure and temperature; C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC SUBROUTINE HSVPT1(T,P,V) C**********************************************************************C C Specific volume, in m^3/kg, of superheated heavy water as a C C function of temperature (C) and pressure (Pa) . C C The valid temperature and pressure ranges are C C Saturation < T < 450 C, C C and C C 0.06868 MPa < P < 18 MPa. C C C C The relative error is C C err < 0.7% C C C C Created by Ji Zhang for the DSNP of Canadian version, C C April 8th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) CALL HWSAT1(P, T0) CALL HSRT01(T0, R0) V0 = 1.D0/R0 if (T .gt. 450.D0) then write(*,*) 'HSVTP1: exceed the valid tempurature range!' RETURN elseif (0.06867D06.gt.P .or. P.gt.18.D06) then write(*,*) 'HSVTP1: exceed the valid pressure range!' RETURN elseif (P .lt. 2.26273D06) then A1 = .79002532D-04 + ( .25627119D-02 + ( .23303108D-03 * - .43607841D-04*V0)*V0)*V0 A2 =-.70455018D-06 + (-.53187167D-07 + (-.34773010D-06 * + .10058522D-06*V0)*V0)*V0 A3 = .32172928D-08 + (-.32553162D-08 + ( .35463252D-08 * - .87558351D-09*V0)*V0)*V0 A4 =-.58977813D-11 + ( .10134577D-10 + (-.90447580D-11 * + .21980359D-11*V0)*V0)*V0 C elseif (P .lt. 13.14892D06) then A1 = .12120866D-03 + (-.65687445D-04 + ( .50221527D-01 * - .30815887D+00*V0)*V0)*V0 A2 =-.13963115D-05 + ( .43963272D-04 + (-.78730699D-03 * + .45989464D-02*V0)*V0)*V0 A3 = .94210688D-08 + (-.34375131D-06 + ( .55996878D-05 * - .30715048D-04*V0)*V0)*V0 A4 =-.24852201D-10 + ( .98571246D-09 + (-.15462438D-07 * + .81860218D-07*V0)*V0)*V0 C elseif (T .lt. 394.5D0) then A1 = .70892755D-03 + (-.13867992D+00 + ( .11495282D+02 * - .32489505D+03*V0)*V0)*V0 A2 =-.42709395D-04 + ( .99512367D-02 + (-.82146279D+00 * + .23073267D+02*V0)*V0)*V0 A3 = .12907501D-05 + (-.31872423D-03 + ( .26992346D-01 * - .77090206D+00*V0)*V0)*V0 A4 =-.14535249D-07 + ( .37585979D-05 + (-.32948576D-03 * + .97080731D-02*V0)*V0)*V0 else A1 = .35205427D-03 + (-.60075929D-01 + ( .52447385D+01 * - .15625954D+03*V0)*V0)*V0 A2 =-.67280563D-05 + ( .14918514D-02 + (-.12918844D+00 * + .39246082D+01*V0)*V0)*V0 A3 = .59615997D-07 + (-.14324221D-04 + ( .12666922D-02 * - .38915035D-01*V0)*V0)*V0 A4 =-.18811599D-09 + ( .47329616D-07 + (-.42570454D-05 * + .13197268D-03*V0)*V0)*V0 endif V = V0 + (A1 + (A2 + (A3 + A4*(T-T0))*(T-T0))*(T-T0))*(T-T0) C RETURN END C SUBROUTINE HSHPT1(T,P,H) C**********************************************************************C C Specific enthalpy, in kJ/kg, of superheated heavy water as a C C function of temperature (C) and pressure (Pa) . C C The valid temperature and pressure ranges are C C saturation < T < 450.0 C, C C and C C 0.06868 MPa < P < 18.0 MPa. C C C C The relative error is C C err < 0.4% C C C C Created by Ji Zhang for the DSNP of Canadian version, C C April 8th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) CALL HWSAT1(P, T0) CALL HSHT01(T0,H0) P6 = 1.D-06*P if (T .gt. 450.D0) then write(*,*) 'HSHPT1: exceed the valid tempurature range!' RETURN elseif (0.06867D06.gt.P .or. P.gt.18.D06) then write(*,*) 'HSHPT1: exceed the valid pressure range!' RETURN elseif (P .lt. 15.32285D06) then A1 = .18956731D+01 + ( .47226098D+00 + (-.18403754D-01 * + .14345594D-02*P6)*P6)*P6 A2 =-.23649693D-03 + (-.29118250D-02 + ( .11234522D-04 * - .12973585D-04*P6)*P6)*P6 A3 = .36997784D-06 + ( .12814647D-04 + ( .59676544D-06 * + .30267114D-07*P6)*P6)*P6 A4 = .80653984D-09 + (-.15149028D-07 + (-.60025854D-08 * + .33561084D-09*P6)*P6)*P6 C else A1 =-.12731240D+03 + ( .25715151D+02 + (-.16775907D+01 * + .38420306D-01*P6)*P6)*P6 A2 = .55765906D+01 + (-.10961231D+01 + ( .72259249D-01 * - .16384926D-02*P6)*P6)*P6 A3 =-.91678498D-01 + ( .17993797D-01 + (-.11880623D-02 * + .26764980D-04*P6)*P6)*P6 A4 = .50828082D-03 + (-.99693217D-04 + ( .65786131D-05 * - .14740175D-06*P6)*P6)*P6 endif H = H0 + (A1 + (A2 + (A3 + A4*(T-T0))*(T-T0))*(T-T0))*(T-T0) C RETURN END C SUBROUTINE HSSPT1(T,P,S) C**********************************************************************C C Specific entropy, in kJ/kg.K, of superheated heavy water as a C C function of temperature (C) and pressure (Pa) . C C The valid temperature and pressure ranges are C C saturation < T < 450.0 C, C C and C C 0.06868 MPa < P < 18.0 MPa. C C C C The relative error is C C err < 0.3% C C C C Created by Ji Zhang for the DSNP of Canadian version, C C April 8th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) CALL HWSAT1(P, T0) CALL HSST01(T0,S0) P6 = 1.D-06*P if (T .gt. 450.D0) then write(*,*) 'HSSPT1: exceed the valid tempurature range!' RETURN elseif (0.06867D06.gt.P .or. P.gt.18.D06) then write(*,*) 'HSSPT1: exceed the valid pressure range!' RETURN elseif (P .lt. 15.32285D06) then A1 = .48179764D-02 + ( .43579432D-03 + (-.10698171D-06 * + .19708661D-05*P6)*P6)*P6 A2 =-.62972196D-05 + (-.40364566D-05 + ( .10214749D-06 * - .67313031D-07*P6)*P6)*P6 A3 = .13506208D-07 + ( .93442765D-08 + (-.15143795D-08 * + .85499006D-09*P6)*P6)*P6 A4 =-.13236930D-10 + (-.24778480D-10 + ( .18404491D-10 * - .41532474D-11*P6)*P6)*P6 C else A1 =-.14170413D+00 + ( .29274914D-01 + (-.19204948D-02 * + .45008465D-04*P6)*P6)*P6 A2 = .64733669D-02 + (-.12833118D-02 + ( .85426931D-04 * - .19775604D-05*P6)*P6)*P6 A3 =-.10998933D-03 + ( .21764646D-04 + (-.14529986D-05 * + .33337665D-07*P6)*P6)*P6 A4 = .63004694D-06 + (-.12459141D-06 + ( .83112962D-08 * - .18919500D-09*P6)*P6)*P6 endif S = S0 + (A1 + (A2 + (A3 + A4*(T-T0))*(T-T0))*(T-T0))*(T-T0) C RETURN END C SUBROUTINE HSCPT1(T,P,CP) C**********************************************************************C C Specific heat, in kJ/kg.K, of superheated heavy water as a C C function of temperature (C) and pressure (Pa) . C C The valid temperature and pressure ranges are C C Saturation < T < 450.0 C, C C and C C 0.06868 MPa < P < 18.0 MPa. C C C C The relative error is C C err < 1.0% C C C C Created by Ji Zhang for the DSNP of Canadian version, C C April 10th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) CALL HWSAT1(P, T0) CALL HSCT01(T0,CP0) if (T .gt. 450.D0) then write(*,*) 'HSCPT1: exceed the valid tempurature range!' RETURN elseif (0.06867D06.gt.P .or. P.gt.18.D06) then write(*,*) 'HSCPT1: exceed the valid pressure range!' RETURN elseif (P .lt. 10.6394D06) then A1 = .47953336D-02 + (-.71171806D-02 + (-.54775868D-02 * + .60898722D-02/CP0)/CP0)/CP0 A2 =-.36807082D-04 + ( .94910484D-04 + (-.86922060D-04 * + .44051034D-04/CP0)/CP0)/CP0 A3 = .18031900D-06 + (-.67074264D-06 + ( .97008960D-06 * - .56119756D-06/CP0)/CP0)/CP0 A4 =-.40384755D-09 + ( .18641720D-08 + (-.31605036D-08 * + .19341578D-08/CP0)/CP0)/CP0 C elseif (P .lt. 13.84398D06) then A1 = .80114257D-02 + (-.54951773D-01 + ( .24124332D+00 * - .43868037D+00/CP0)/CP0)/CP0 A2 =-.15125826D-03 + ( .18879668D-02 + (-.99590552D-02 * + .19121276D-01/CP0)/CP0)/CP0 A3 = .17235928D-05 + (-.26258042D-04 + ( .15012269D-03 * - .30437484D-03/CP0)/CP0)/CP0 A4 =-.73920400D-08 + ( .12399247D-06 + (-.75005283D-06 * + .15878170D-05/CP0)/CP0)/CP0 C elseif (T .lt. 394.5D0) then A1 = .10985502D-01 + (-.12079645D+00 + ( .77165519D+00 * - .19090751D+01/CP0)/CP0)/CP0 A2 =-.49749606D-03 + ( .98734020D-02 + (-.74854500D-01 * + .19748693D+00/CP0)/CP0)/CP0 A3 = .14957976D-04 + (-.35654902D-03 + ( .30184256D-02 * - .87510521D-02/CP0)/CP0)/CP0 A4 =-.17229779D-06 + ( .45838156D-05 + (-.42438933D-04 * + .13413001D-03/CP0)/CP0)/CP0 C else A1 = .68464565D-02 + (-.47580818D-01 + ( .26382663D+00 * - .65200402D+00/CP0)/CP0)/CP0 A2 =-.86157629D-04 + ( .11899695D-02 + (-.82235665D-02 * + .21839800D-01/CP0)/CP0)/CP0 A3 = .65000043D-06 + (-.11992869D-04 + ( .92499327D-04 * - .26427333D-03/CP0)/CP0)/CP0 A4 =-.19340709D-08 + ( .41490975D-07 + (-.34656672D-06 * + .10511390D-05/CP0)/CP0)/CP0 endif A = (A1 + (A2 + (A3 + A4*(T-T0))*(T-T0))*(T-T0))*(T-T0) CP = CP0/(1.D0 + CP0*A) C RETURN END C SUBROUTINE HSDVP1(T,P,DVDP) C**********************************************************************C C Derivative of specific volume, in m^3/kg, of superheated heavy C C water with respect to pressure (Pa). C C The valid temperature and pressure ranges are C C Saturation < T < 450 C, C C and C C 0.06868 MPa < P < 18 MPa. C C Created by Ji Zhang for the DSNP of Canadian version, C C Julu 29th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (T .gt. 450.D0) then write(*,*) 'HSDVP1: exceed the valid tempurature range!' RETURN elseif (0.06867D06.gt.P .or. P.gt.18.D06) then write(*,*) 'HSDVP1: exceed the valid pressure range!' RETURN else DP = 0.5D0 CALL HSVPT1(T, P-DP, V1) CALL HSVPT1(T, P+DP, V2) DVDP = (V2 - V1)/(DP+DP) endif C RETURN END SUBROUTINE HSDVT1(T,P,DVDT) C**********************************************************************C C Derivative of specific volume, in m^3/kg, of superheated heavy C C water with respect to temperature (C). C C The valid temperature and pressure ranges are C C Saturation < T < 450 C, C C and C C 0.06868 MPa < P < 18 MPa. C C Created by Ji Zhang for the DSNP of Canadian version, C C Julu 29th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) c CALL HSDSP1(T,P,DSDP) c DVDT = -1.0D3*DSDP CALL HWSAT1(P, T0) CALL HSRT01(T0, R0) V0 = 1.D0/R0 if (T .gt. 450.D0) then write(*,*) 'HSVTP1: exceed the valid tempurature range!' RETURN elseif (0.06867D06.gt.P .or. P.gt.18.D06) then write(*,*) 'HSVTP1: exceed the valid pressure range!' RETURN elseif (P .lt. 2.26273D06) then A1 = .79002532D-04 + ( .25627119D-02 + ( .23303108D-03 * - .43607841D-04*V0)*V0)*V0 A2 =-.70455018D-06 + (-.53187167D-07 + (-.34773010D-06 * + .10058522D-06*V0)*V0)*V0 A3 = .32172928D-08 + (-.32553162D-08 + ( .35463252D-08 * - .87558351D-09*V0)*V0)*V0 A4 =-.58977813D-11 + ( .10134577D-10 + (-.90447580D-11 * + .21980359D-11*V0)*V0)*V0 C elseif (P .lt. 13.14892D06) then A1 = .12120866D-03 + (-.65687445D-04 + ( .50221527D-01 * - .30815887D+00*V0)*V0)*V0 A2 =-.13963115D-05 + ( .43963272D-04 + (-.78730699D-03 * + .45989464D-02*V0)*V0)*V0 A3 = .94210688D-08 + (-.34375131D-06 + ( .55996878D-05 * - .30715048D-04*V0)*V0)*V0 A4 =-.24852201D-10 + ( .98571246D-09 + (-.15462438D-07 * + .81860218D-07*V0)*V0)*V0 C elseif (T .lt. 394.5D0) then A1 = .70892755D-03 + (-.13867992D+00 + ( .11495282D+02 * - .32489505D+03*V0)*V0)*V0 A2 =-.42709395D-04 + ( .99512367D-02 + (-.82146279D+00 * + .23073267D+02*V0)*V0)*V0 A3 = .12907501D-05 + (-.31872423D-03 + ( .26992346D-01 * - .77090206D+00*V0)*V0)*V0 A4 =-.14535249D-07 + ( .37585979D-05 + (-.32948576D-03 * + .97080731D-02*V0)*V0)*V0 else A1 = .35205427D-03 + (-.60075929D-01 + ( .52447385D+01 * - .15625954D+03*V0)*V0)*V0 A2 =-.67280563D-05 + ( .14918514D-02 + (-.12918844D+00 * + .39246082D+01*V0)*V0)*V0 A3 = .59615997D-07 + (-.14324221D-04 + ( .12666922D-02 * - .38915035D-01*V0)*V0)*V0 A4 =-.18811599D-09 + ( .47329616D-07 + (-.42570454D-05 * + .13197268D-03*V0)*V0)*V0 endif DVDT = A1 +((A2+A2)+(3.0D0*A3+4.0D0*A4*(T-T0))*(T-T0))*(T-T0) C C RETURN END SUBROUTINE HSDHP1(T,P,DHDP) C**********************************************************************C C Derivative of specific enthalpy, in kJ/kg, of superheated heavy C C water with respect to pressure (Pa) . C C The valid temperature and pressure ranges are C C saturation < T < 450.0 C, C C and C C 0.06868 MPa < P < 18.0 MPa. C C C C Created by Ji Zhang for the DSNP of Canadian version, C C July 29th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (T .gt. 450.D0) then write(*,*) 'HSDHP1: exceed the valid tempurature range!' RETURN elseif (0.06867D06.gt.P .or. P.gt.18.D06) then write(*,*) 'HSDHP1: exceed the valid pressure range!' RETURN else DP = 0.5D0 CALL HSHPT1(T, P-DP, H1) CALL HSHPT1(T, P+DP, H2) DHDP = (H2 - H1)/(DP+DP) endif C RETURN END C SUBROUTINE HSDHT1(T,P,DHDT) C**********************************************************************C C Derivative of specific enthalpy, in kJ/kg, of superheated heavy C C water with respect to temperature (C) . C C The valid temperature and pressure ranges are C C saturation < T < 450.0 C, C C and C C 0.06868 MPa < P < 18.0 MPa. C C C C Created by Ji Zhang for the DSNP of Canadian version, C C July 29th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) CALL HSCPT1(T,P,DHDT) RETURN END C SUBROUTINE HSDSP1(T,P,DSDP) C**********************************************************************C C Derivative of specific entropy, in kJ/kg.K, of superheated heavy C C water with respect to pressure (Pa) . C C The valid temperature and pressure ranges are C C saturation < T < 450.0 C, C C and C C 0.06868 MPa < P < 18.0 MPa. C C C C Created by Ji Zhang for the DSNP of Canadian version, C C July 29th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (T .gt. 450.D0) then write(*,*) 'HSDSP1: exceed the valid tempurature range!' RETURN elseif (0.06867D06.gt.P .or. P.gt.18.D06) then write(*,*) 'HSDSP1: exceed the valid pressure range!' RETURN else DP = 0.1D0 CALL HSSPT1(T, P-DP, S1) CALL HSSPT1(T, P+DP, S2) DSDP = (S2 - S1)/(DP+DP) endif C RETURN END C SUBROUTINE HSDST1(T,P,DSDT) C**********************************************************************C C Derivative of specific entropy, in kJ/kg.K, of superheated heavy C C water with respect to temperature (C). C C The valid temperature and pressure ranges are C C saturation < T < 450.0 C, C C and C C 0.06868 MPa < P < 18.0 MPa. C C C C Created by Ji Zhang for the DSNP of Canadian version, C C July 29th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) CALL HSCPT1(T,P,CP) DSDT = CP/(T+273.15D0) RETURN END C SUBROUTINE HSDCP1(T,P,DCDP) C**********************************************************************C C Derivative of specific heat, in kJ/(kg.K.Pa), of superheated heavy C C water with respect to pressure (Pa). C C The valid temperature and pressure ranges are C C saturation < T < 450.0 C, C C and C C 0.06868 MPa < P < 18.0 MPa. C C C C Created by Ji Zhang for the DSNP of Canadian version, C C July 29th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) if (T .gt. 450.D0) then write(*,*) 'HSDSP1: exceed the valid tempurature range!' RETURN elseif (0.06867D06.gt.P .or. P.gt.18.D06) then write(*,*) 'HSDSP1: exceed the valid pressure range!' RETURN else DP = 0.5D0 CALL HSCPT1(T, P-DP, CP1) CALL HSCPT1(T, P+DP, CP2) DCDP = (CP2 - CP1)/(DP+DP) endif C RETURN END SUBROUTINE HSDCT1(T,P,DCDT) C**********************************************************************C C Derivative of specific heat, in kJ/kg.K^2, of superheated heavy C C water with respect to temperature (C). C C The valid temperature and pressure ranges are C C saturation < T < 450.0 C, C C and C C 0.06868 MPa < P < 18.0 MPa. C C C C Created by Ji Zhang for the DSNP of Canadian version, C C July 29th, 1994 at UNB. C C**********************************************************************C IMPLICIT REAL*8(A-H,O-Z) CALL HWSAT1(P, T0) CALL HSCT01(T0,CP0) if (T .gt. 450.D0) then write(*,*) 'HSCPT1: exceed the valid tempurature range!' RETURN elseif (0.06867D06.gt.P .or. P.gt.18.D06) then write(*,*) 'HSCPT1: exceed the valid pressure range!' RETURN elseif (P .lt. 10.6394D06) then A1 = .47953336D-02 + (-.71171806D-02 + (-.54775868D-02 * + .60898722D-02/CP0)/CP0)/CP0 A2 =-.36807082D-04 + ( .94910484D-04 + (-.86922060D-04 * + .44051034D-04/CP0)/CP0)/CP0 A3 = .18031900D-06 + (-.67074264D-06 + ( .97008960D-06 * - .56119756D-06/CP0)/CP0)/CP0 A4 =-.40384755D-09 + ( .18641720D-08 + (-.31605036D-08 * + .19341578D-08/CP0)/CP0)/CP0 C elseif (P .lt. 13.84398D06) then A1 = .80114257D-02 + (-.54951773D-01 + ( .24124332D+00 * - .43868037D+00/CP0)/CP0)/CP0 A2 =-.15125826D-03 + ( .18879668D-02 + (-.99590552D-02 * + .19121276D-01/CP0)/CP0)/CP0 A3 = .17235928D-05 + (-.26258042D-04 + ( .15012269D-03 * - .30437484D-03/CP0)/CP0)/CP0 A4 =-.73920400D-08 + ( .12399247D-06 + (-.75005283D-06 * + .15878170D-05/CP0)/CP0)/CP0 C elseif (T .lt. 394.5D0) then A1 = .10985502D-01 + (-.12079645D+00 + ( .77165519D+00 * - .19090751D+01/CP0)/CP0)/CP0 A2 =-.49749606D-03 + ( .98734020D-02 + (-.74854500D-01 * + .19748693D+00/CP0)/CP0)/CP0 A3 = .14957976D-04 + (-.35654902D-03 + ( .30184256D-02 * - .87510521D-02/CP0)/CP0)/CP0 A4 =-.17229779D-06 + ( .45838156D-05 + (-.42438933D-04 * + .13413001D-03/CP0)/CP0)/CP0 C else A1 = .68464565D-02 + (-.47580818D-01 + ( .26382663D+00 * - .65200402D+00/CP0)/CP0)/CP0 A2 =-.86157629D-04 + ( .11899695D-02 + (-.82235665D-02 * + .21839800D-01/CP0)/CP0)/CP0 A3 = .65000043D-06 + (-.11992869D-04 + ( .92499327D-04 * - .26427333D-03/CP0)/CP0)/CP0 A4 =-.19340709D-08 + ( .41490975D-07 + (-.34656672D-06 * + .10511390D-05/CP0)/CP0)/CP0 endif A = (A1 + (A2 + (A3 + A4*(T-T0))*(T-T0))*(T-T0))*(T-T0) DADT = A1 + (A2+A2 + (3.D0*A3 + 4.D0*A4*(T-T0))*(T-T0))*(T-T0) DCDT = -DADT*(CP0/(1.D0 + CP0*A))**2 C RETURN END