The saturation vapor pressure over Lake Bonneville is reduced due to the salt content in the lake. The salinity ranges from about 6 and 29 parts per thousand at various times and areas. Salinity is defined as grams of total dissolved salts per kilogram of solution (including solute), called parts per thousand. Salinity may also be stated in percent, which is parts per thousand divided by 10. Since the causeway dividing the lake into south and north parts was constructed around 1960, the salinity has had a significant spatial variation, the north arm containing near double the salinity of the south arm. The USGS webpage at http://wwwdutslc.wr.usgs.gov/greatsaltlake/saltlake.html has lots of graphs and references about Lake Bonneville. According to Dickson et al., 1965, from Glassett and Anderson, 1961, the salts and minerals dissolved in Lake Bonneville are as following: Salt: Percentage of Total Salt(By weight, I assume) NaCl 75.91 MgCl2 10.92 Na2SO4 9.52 KCl 3.16 CaSO4 .34 CaCO3 .15 SiO2 5.6 ppm Fe .02 ppm In an ideal solution, es/es0 = 1-X where X is the mole fraction of dissolved molecules/ions. This is known as Raoult's law (See Oxtoby, Nachtrieb, and Freeman, pages 236 to 249). X is defined as ( moles solute ) / (moles of solute + moles of solvent ). By this theory, we could calculate the total number of ions at a given salinity, and find the saturation vapor pressure resulting. This method appears to have about 2% error for salinity of 15%, and 1% at 10% salinity. The following table and code shows the resulting saturation vapor pressures(neglecting SiO2 and Fe). do isalinity = 0,1000,5 rsalinity=real(isalinity) a=rsalinity*(.7591*2./58.443+.1092*3./95.211+ & .0952*3./142.042+.0316*2./74.551+ .0034*2./136.14+.0015*2./100.086) !moles of solute b=(1000.-rsalinity)/18.0148 !moles of solution p=1.-a/(a+b) write(6,*),rsalinity,p enddo salinity: es/es0: 0. 1.00000 20.000 0.988244 40.000 0.976288 60.000 0.964128 80.000 0.951759 100.000 0.939173 120.000 0.926367 140.000 0.913334 160.000 0.900067 180.000 0.886562 200.000 0.872810 220.000 0.858806 240.000 0.844543 260.000 0.830012 280.000 0.815207 300.000 0.800120 Other methods, are yepsen's experimental values, assume pure sodium and calculate curve, theoretical method2 (almost same as sodium) . . . In the range from 247 parts per thousand to 292 parts per thousand, Dickson et al., 1965 measured saturation vapor pressure for Bonneville brine. The results are summarized below(see program gsl_es below for code): es/es0: tmpc/ppt 292 289 281 273 264 256 247 -10.000 0.490 0.510 0.579 0.625 0.674 0.720 0.762 -5.000 0.516 0.546 0.598 0.648 0.695 0.734 0.772 0.000 0.542 0.581 0.630 0.682 0.720 0.758 0.787 5.000 0.560 0.592 0.648 0.694 0.734 0.767 0.797 10.000 0.576 0.607 0.660 0.703 0.740 0.771 0.799 15.000 0.582 0.611 0.664 0.704 0.741 0.774 0.801 20.000 0.582 0.614 0.665 0.703 0.741 0.773 0.800 25.000 0.579 0.609 0.659 0.702 0.735 0.770 0.794 30.000 0.575 0.604 0.659 0.698 0.735 0.767 0.793 35.000 0.558 0.592 0.642 0.683 0.721 0.757 0.781 40.000 0.542 0.572 0.627 0.668 0.707 0.742 0.769 Unfortunately, Dickson, Yepsen, et al. anticipated that the lake level which was already low in the early 60's would keep lowering, and did not do measurements below 247 ppt. Thus, we are missing data from 10 to 25% that needs to be approximated. The vapor pressure reduction curve for for a pure salt, such as NaCl can be calculated via: p/p0 = exp{-wmnu[1+gamma(m)/m]} m=molality of salt molecules w=1/55.51 nu=number of ions that salt dissolves into a(m) gamma(m)= S md(ln(a)) a=activity coefficients 1 S represents integral sign Numerical integration must be done to calculate gamma(m). A trapezoidal integration seems to work fine. Results for p/p0 are listed below. The fortran code (activity) below calculates water activity (such as the following table) for various salts, given activity coefficients. salinity(ppt) p/p0 0.0 1.000000 5.84396E-02 0.999965 0.116872 0.999929 0.292130 0.999824 0.584089 0.999652 1.16750 0.999310 2.91364 0.998305 5.81034 0.996655 11.5536 0.993383 17.2308 0.990113 22.8432 0.986853 28.3918 0.983583 33.8778 0.980275 39.3022 0.976954 44.6661 0.973638 49.9703 0.970272 55.2160 0.966883 75.6320 0.953048 80.5988 0.949620 104.6535 0.931603 127.481 0.912467 149.174 0.893030 169.815 0.872069 189.477 0.851404 208.230 0.829512 226.135 0.807432 259.620 0.760469 Activity coefficients can be found in various physical chemistry books such as: Harned, H.L., and B.B. Owen, 1958: Physical Chemistry of Electrolytic Solutions 3rd ed. New York, Reinhold,803 pp. CRC Handbook of Chemistry and Physics Activity coefficients for individual ions can also be calculated theoretically knowing the charge(zi), radius(a), and total ionic strength(I), via -log(fi)=A * zi**2 * sqrt(I) / (1 + B*a*sqrt(I)) weak Ionic strengths -log(fi)/zi**2=.511*I/(1+1.5*I) - .2*I higher strengths where fi is the ionic activity coefficient,A and B are constants that are functions of temperature,zi is the ionic charge, a is the effective ionic radius, and I=.5*(c1*z1**2 + c2*z2**2 + . . . + ci*zi**2) is the ionic strength (c is molarity of each ion present) Unfortunately, there seems to be no good formulation to find the mean ionic activity coefficient from the individual ones. A formula from Lange's Handbook of Chemistry for combining the ionic activity coefficients for salt molecules looked hopeful, but I have not been able to apply it to an arbitrary mixture of ions in Lake Bonneville. Well, that's all, folks. Here is the USGS Lake Bonneville web page mentioned earlier, as well as some fortran codes. USGS web page: Great Salt Lake, Utah Great Salt Lake and vicinity, Utah Satellite Image Map 40111-E7-SI-125 1984 For a larger view click on the image - 300k Satellite images of Great Salt Lake (Requires Frames compatible browser) Great Salt Lake (GSL) is: The largest U.S. lake west of the Mississippi River The 4th largest terminal lake (no outlet) in the world A remnant of Lake Bonneville, a prehistoric freshwater lake that was 10 times as large as GSL About 75 miles long, 28 miles wide, and covers 1,700 square miles Has a maximum depth of about 35 feet Typically 3-5 times as salty as the ocean Fish free, the largest aquatic critters are brine shrimp and brine flies One of the largest migratory bird magnets in western North America Great Salt Lake and vicinity, Utah Map Tooele and Salt Lake City 1:100,000 1979 and 1980 68k The U.S. Geological Survey (USGS) has measured the elevation of Great Salt Lake since 1875 and conducted many studies on the hydrology, salinity, water quality, and ecology of the lake. Currently, the USGS operates elevation gages at Saltair Marina, Saline (north arm), and on the railroad causeway near Promontory Point. The USGS is studying the ecology of brine shrimp in the lake in cooperation with the Utah Division of Wildlife Resources (Requires Frames compatible browser) and researchers from the Department of Fisheries and Wildlife at Utah State University. Previous and Current Studies on Great Salt Lake by the U.S. Geological Survey Lake Elevations Lake elevations Hydrology In addition to measuring changes in lake elevation, since the early 1960's the USGS has conducted detailed studies of the general physical and chemical hydrology of the lake. These have included investigations of the prehistory of the lake, general hydrology of closed-basin lakes, effects of man's activities on the lake, and a detailed accounting of the water budget. Utah Water Atlas chapter on Great Salt Lake (Requires Frames compatible browser) USGS publications dealing with the hydrology of Great Salt Lake Salinity and Water Quality The salinity of Great Salt Lake is determined by the amount of water inflow (and its salt content) and the amount of evaporation. When there is a lot of inflow, the lake elevation increases and the salinity of the water decreases. When there is less inflow or the evaporation rate is high, the lake elevation declines and the water becomes saltier. In 1959, a solid-fill railroad causeway was constructed across the middle of the lake. The causeway divides the lake into two parts: the north part (Gunnison Bay), which receives little freshwater inflow, and the south part (Gilbert Bay), which receives virtually all the inflow. For any given lake elevation, the salinity of Gunnison Bay is always greater than the salinity of Gilbert Bay. The USGS measures salinity periodically at Saltair Boat Harbor (Gilbert Bay) and at Saline (Gunnison Bay). The USGS also collects salinity data from each of 16 sites in Gilbert Bay at intervals of 2 to 4 weeks. Data collected since August 1995 from USGS Site 3510, located midlake and 6 miles west of Antelope Island and measured at 1-meter depth are shown below: USGS publications dealing with the salinity of Great Salt Lake Salt Industry The salinity of the lake is due primarily to sodium chloride (common salt), although small amounts of other elements and salts are present, including magnesium, potassium, sulfate, and carbonate. There are about 4.5 to 4.9 billion tons of salt in the lake, and about 2.2 million tons of salt enter the lake annually from surface- and ground-water flow. The salt industries extract about 2.5 million tons of sodium chloride and other salts and elements from the lake annually. Industries Extracting Salt and Other Minerals from the Lake: Great Salt Lake Minerals and Chemicals Morton International Akzo Nobel Salt Magcorp North American Salt Co. Northshore Limited Partnership (Mineral Resources International) General information on salt Ecology Brine shrimp Brine shrimp are not only the most visible inhabitants of Great Salt Lake, they are very important in the ecology of the lake and serve as a major source of food for migratory birds. They are also valuable for the hard-walled eggs they produce, which are commercially harvested and used worldwide in the aquaculture industry. Birds Great Salt Lake supports between 2 and 5 million shorebirds, as many as 1.7 million eared grebes, and hundreds of thousands of waterfowl during spring and fall migration periods. Because of its importance to migratory birds, the lake was designated a part of the Western Hemisphere Shorebird Reserve Network in 1992. The lake and its marshes provide a resting and staging area for the birds, as well as an abundance of brine shrimp and brine flies that serve as food. USGS publications dealing with the ecology of Great Salt Lake Planktonic Sequence Hypersaline lakes are often regarded as "simple" ecosystems because they typically have fewer species than freshwater lakes. Although fewer species are capable of tolerating the stress of a salty lake, the species that are present interact on many levels to efficiently use the food and energy resources available. There is an open water (planktonic) sequence and a bottom-dwelling (benthic sequence) in Great Salt Lake. The planktonic sequence is dominated early in the year by phytoplankton (algae) blooms. These often occur in January when the water temperature is only a few degrees Celsius. In the last few years, the green alga, Dunaliella viridis, has bloomed at this time and been followed by blooms of several diatoms. Brine shrimp (Artemia franiscana) hatch from cysts in early April and within a month or so intensely graze the phytoplankton crop. If sufficient nutrients are available later in the summer and enough of the brine shrimp die from lack of food, there may be fall blooms of diatoms. The phytoplankton crop provides most of the food for the shrimp to grow and reproduce during the summer. Large numbers of local and migratory birds feed on brine shrimp during the spring and summer. A small water bug known as a corixid also eats shrimp nauplii (larva) and adults in the lake. As phytoplankton become scarce, the shrimp may reprocess fecal pellets produced earlier in the year or graze on blue-greens (sometimes called algae, but recognized to be a separate group) that grow on some areas of the lake bottom. The shrimp also may graze on diatoms that colonize cast-off exoskeleton parts from shrimp molts. When the shrimp are stressed by lack of food or harsh environmental conditions, they switch from producing live young to producing cysts. Some of these cysts are commercially harvested and some remain in the lake to start the shrimp population the following year. Benthic Sequence The Benthic Sequence relies on photosynthesis by the blue-greens to produce some of the food needed by the benthic organisms as well as settling of organic matter from the water. After the shrimp have grazed the phytoplankton from the water, light can penetrate to the bottom of the lake in many areas and provide energy for benthic photosynthesis by the blue-greens. Living in close association and feeding upon the blue-greens are two species of brine fly (genus Ephydra). These tiny insects spend their larval existence on the bottom of Great Salt Lake. They emerge from the lake as adults in early summer and form dense clouds that cover the beach and everything on the beach. While they may be annoying, they do not bite. Although the planktonic and benthic habitats appear separate, they are linked in the following ways: Both sequences require nutrients entering from the watershed around the lake; brine shrimp feed on biota and organic material in the benthic habitat; several kinds of bacteria and protozoa occur in both habitats and recycle nutrients between them; and brine-fly larvae and pupae released from the bottom enter the planktonic habitat prior to emerging from the lake. Utah USGS Homepage / GSL Publications / Brine Shrimp / Birds URL for this document . U.S. Geological Survey - Utah Home Page . If you have any questions or comments about this document contact Last modified: Thurs June 5, 1997 main gsl_es real x(12),x2(6) real factors(8,12),factorsi(8,12),nacl(12,6) character name*7,name2*12 data x/99,2.61,4.03,6.11,8.72,12.28,17.05,23.40,31.70, & 42.28,56.30,73.86/ !vapor pressure over water data x2/99,6.11,12.28,23.40,42.28,73.86/ !0C,10C,20C,30C,40C c vapor pressure over gsl water, given temp and % salinity: data factors/-99., 292, 289, 281, 273, 264, 256, 247, & -10., 1.28, 1.33, 1.51, 1.63, 1.76, 1.88, 1.99, & -5., 2.08, 2.20, 2.41, 2.61, 2.80, 2.96, 3.11, & 0., 3.31, 3.55, 3.85, 4.17, 4.40, 4.63, 4.81, & 5., 4.88, 5.16, 5.65, 6.05, 6.40, 6.69, 6.95, & 10., 7.07, 7.45, 8.11, 8.63, 9.09, 9.47, 9.81, & 15., 9.93,10.41,11.32,12.01,12.64,13.19,13.65, & 20.,13.61,14.37,15.56,16.45,17.33,18.08,18.72, & 25.,18.36,19.32,20.88,22.26,23.29,24.41,25.18, & 30.,24.32,25.54,27.85,29.52,31.06,32.44,33.53, & 35.,31.40,33.34,36.13,38.46,40.58,42.61,43.98, & 40.,40.00,42.24,46.30,49.34,52.25,54.81,56.77/ c vapor pressure over nacl solution(mb): data nacl/-999, 000.,025.,050.,075.,100.,125.,150.,175.,200.,225.,250., & 0.,4.579, 4.5, 4.4, 4.4, 4.3, 4.2, 4.1, 4.0, 3.8, 3.7, 3.5, & 10., 9.21, 9.1, 8.9, 8.8, 8.6, 8.4, 8.2, 8.0, 7.7, 7.4, 7.1, & 20.,17.54,17.3,17.0,16.7,16.4,16.1,15.7,15.3,14.8,14.2,13.6, & 30.,31.83,31.4,30.9,30.4,29.8,29.2,28.5,27.7,26.8,25.8,24.7, & 40.,55.34,54.5,53.6,52.7,51.7,50.7,49.5,48.1,46.6,44.9,43.0/ c Print out ideal solution reduction factors: p/p0 open(9,file='ideal_es.txt') do isalinity = 0,1000,5 rsalinity=real(isalinity) a=rsalinity*(.7591*2./58.443+.1092*3./95.211+.0952*3./142.042+.0316*2./ 74.551+.0034*2./136.14+.0015*2./100.086) !moles of solute b=(1000.-rsalinity)/18.0148 !number of moles of solution p=1.-a/(a+b) write(9,*),rsalinity,p enddo close(9) c calculate reduction factors: do i=2,8 do j=2,12 factors(i,j)=factors(i,j)/x(j) enddo enddo c print out results: print*,'reduction factors for gsl brine:' do j=1,12 write(6,888)(factors(i,j),i=1,8) enddo do j=4,8 write(name,fmt="(i2.2,'c.txt')")nint(factors(1,j)) open(unit=9,file=name) do i=2,8 write(9,*)factors(i,1),factors(i,j) enddo close(9) enddo c calculate ideal values and print results: do i=1,8 factorsi(i,1)=factors(i,1) enddo do j=1,12 factorsi(1,j)=factors(1,j) enddo do i=2,8 do j=2,12 a=factorsi(i,1)*(.7591*2./58.443+.1092*3./95.211+.0952*3./142.042+.0316 *2./74.551+.0034*2./136.14+.0015*2./100.086) !moles of solute b=(1000.-factorsi(i,1))/18.0148 !number of moles of solution factorsi(i,j)=1.-a/(a+b) enddo enddo c print out those results: print*,'reduction factors for ideal solution:' do j=1,12 write(6,888)(factorsi(i,j),i=1,8) enddo c calculate gsl brine factors divided by ideal solution factors: do i=2,8 do j=2,12 factorsi(i,j)=factors(i,j)/factorsi(i,j) enddo enddo c print out those results: print*,'reduction factors for gsl brine divided by ideal values:' do j=1,12 write(6,888)(factorsi(i,j),i=1,8) enddo 888 format(9f7.3) c write out values for pure nacl solution from International Critical Tables: do j=2,6 write(name2,fmt="(i2.2,'c_nacl.txt')")nint(nacl(1,j)) open(unit=9,file=name2) do i=2,12 salinity=nacl(i,1) p=nacl(i,j)*1.333224 p0=x2(j) c p0=6.1078*exp(19.8*nacl(1,j)/(273.+nacl(1,j))) write(9,*),salinity,p/p0 enddo close(9) enddo c formula from smithsonian meteorological tables: do j=2,2 name2='smithson.txt' open(unit=9,file=name2) do i=2,12 salinity=nacl(i,1) p0=x2(j) p=p0*(1.-.000537*salinity) write(9,*),salinity,(p0-p)/p0 enddo close(9) enddo end program activity parameter (nsalts=4,nmolal=28) real coeff(0:nsalts,nmolal),nu(nsalts),weight(nsalts),pct(nsalts) real activity(0:nsalts,nmolal),radii(nsalts,2),z(nsalts,2),f1(nsalts,2) real f2(nsalts,2),y(nsalts,2) character*8 names(nsalts) data names/ 'NaCl','MgCl2','Na2S04','Kcl'/ data nu/ 2.0000,3.00000,3.000000,2.000/ data weight/58.443000,95.2110 ,142.0420,74.551/ data pct /.76283791,.1097377,.0956688,.031756/ data radii/4.0, 8.0, 4.0, 3.0, & 3.0, 3.0, 4.0, 3.0/ data z /1.0, 2.0, 1.0, 1.0, & 1.0, 1.0, 2.0, 1.0/ data y /1.0, 1.0, 2.0, 1.0, & 1.0, 2.0, 1.0, 1.0/ data coeff/0.00,1.0000,1.00000,1.000000,1.000, & .001,0.9650,0.88900,0.886000,0.965, & .002,0.9520,0.85200,0.846000,0.951, & .005,0.9280,0.79000,0.777000,0.927, & .010,0.9030,0.73400,0.712000,0.901, & .020,0.8720,0.67200,0.637000,0.869, & .050,0.8220,0.59000,0.529000,0.816, & .100,0.7785,0.53200,0.445500,0.769, & .200,0.7345,0.48900,0.365500,0.718, & .300,0.7100,0.47700,0.320000,0.688, & .400,0.6930,0.47500,0.289000,0.666, & .500,0.6810,0.48100,0.267000,0.649, & .600,0.6730,0.49100,0.248000,0.637, & .700,0.6670,0.50600,0.233000,0.626, & .800,0.6620,0.52200,0.221000,0.618, & .900,0.6590,0.54400,0.210000,0.610, & 1.00,0.6570,0.57300,0.202000,0.604, & 1.40,0.6570,0.70900,0.181695,0.589, & 1.50,0.6570,0.75875,0.176946,0.585, & 2.00,0.6690,1.06500,0.155000,0.573, & 2.50,0.6920,1.57188,9999999.,0.572, & 3.00,0.7170,2.32000,9999999.,0.573, & 3.50,0.7530,3.58508,9999999.,0.576, & 4.00,0.7870,5.54000,9999999.,0.582, & 4.50,0.8294,8.93174,9999999.,0.590, & 5.00,0.8740,14.4000,9999999.,0.593, & 6.00,0.9860,999999.,9999999.,9999., & 10.00,99999.,999999.,9999999.,9999./ c Set activity for 0 concentration to 1. do is=1,nsalts activity(is,1)=1. enddo do im=0,nmolal activity(0,im)=coeff(0,im) enddo c Calculate activities for individual salts do is=1,nsalts gamma=0. do im=1,nmolal-1 if(coeff(is,im+1).lt.999.)then gamma=gamma+.5*(coeff(0,im)+coeff(0,im+1))* & (log(coeff(is,im+1))-log(coeff(is,im))) activity(is,im+1)=exp(-coeff(0,im+1)*nu(is)*(1.+gamma/coeff(0,im+1) )/55.51) salinity=coeff(0,im+1)*weight(is)/(1.+.001*coeff(0,im+1)*weight(is) ) c Print salinity,activity: print*,salinity,activity(is,im+1) endif enddo write(6,fmt='(a1,a8)')'"',names(is) enddo CCC This is the end of the finished part of the program. The rest is an CCC attempt to combine individual salt activity coefficients via averaging, CCC and theoretical calculations. c mass weighted Mean weight of salt do is=1,nsalts avgwgt=avgwgt+weight(is)*pct(is) enddo c find "average" activity, based on reductions due to each individual salt do isal=0,300,5 rsal=real(isal) total_activity=1. do is=1,nsalts solute_mols=rsal*pct(is)/weight(is) solvent_kgs=1.-.001*rsal/avgwgt rmolality=solute_mols/solvent_kgs im=1 do while (rmolality.ge.activity(0,im)) im=im+1 enddo a=activity(is,im-1)+(rmolality-activity(0,im-1))* & (activity(is,im)-activity(is,im-1))/ & (activity(0,im)-activity(0,im-1)) total_activity=total_activity-(1.-a) enddo print*,rsal,total_activity enddo c calculate number of ions per liter in moles (coeff(0,im), and ionic c strength total_I salinity=0. do im=2,nmolal salinity=salinity+10. activity(0,im)=salinity total_I=0. xplusy=0. fprod1=1. fprod2=1. A=.5115 B=.3291 coeff(0,im)=0. do is=1,nsalts solute_mols=salinity*pct(is)/weight(is) solvent_kgs=1.-.001*salinity/avgwgt rmolality=solute_mols/solvent_kgs coeff(0,im)=coeff(0,im)+rmolality*(y(is,1)+y(is,2)) total_I=total_I+rmolality*(y(is,1)*z(is,1)**2.+y(is,2)*z(is,2)**2.) c y(is,1)=rmolality*y(is,1) c y(is,2)=rmolality*y(is,2) enddo total_I=total_I/2. compute individual ionic activity coefficients by two methods (f1 for lower c ionic strengths,f2 for higher), and mean ionic activity coefficient c (coeff(1 and 2,im) do is=1,nsalts f1(is,1)=exp(-(A*(z(is,1)**2.)*(total_I**.5))/ & (1.+B*radii(is,1)*(total_I**.5))) f1(is,2)=exp(-(A*(z(is,2)**2.)*(total_I**.5))/ & (1.+B*radii(is,2)*(total_I**.5))) f2(is,1)=exp((-z(is,1)**2.)* & ( (.511*total_I)/(1.+1.5*total_I) -.2*total_I) ) f2(is,2)=exp((-z(is,2)**2.)* & ( (.511*total_I)/(1.+1.5*total_I) -.2*total_I) ) xplusy=xplusy+y(is,1)+y(is,2) fprod1=fprod1*(f1(is,1)**y(is,1))*(f1(is,2)**y(is,2)) fprod2=fprod2*(f2(is,1)**y(is,1))*(f2(is,2)**y(is,2)) enddo c print*,'xplusy,fprod1,fprod2',xplusy,fprod1,fprod2 c ymin=9999999. c fprod1=1. c fprod2=1. c do is=1,nsalts c ymin=min(ymin,y(is,1)) c ymin=min(ymin,y(is,2)) c enddo c xplusy=0. c do is=1,nsalts c y(is,1)=y(is,1)/ymin c y(is,2)=y(is,2)/ymin c xplusy=xplusy+y(is,1)+y(is,2) c fprod1=fprod1*(f1(is,1)**y(is,1))*(f1(is,2)**y(is,2)) c fprod2=fprod2*(f2(is,1)**y(is,1))*(f2(is,2)**y(is,2)) c enddo c print*,xplusy,fprod1,fprod2 coeff(1,im)=fprod1**(1./xplusy) coeff(2,im)=fprod2**(1./xplusy) print*,coeff(0,im),coeff(1,im),coeff(2,im) enddo c Use theoretical activity coefficents to calculate activity do is=1,2 gamma=0. do im=1,nmolal-1 if(coeff(is,im+1).lt.999.)then gamma=gamma+.5*(coeff(0,im)+coeff(0,im+1))* & (log(coeff(is,im+1))-log(coeff(is,im))) activity(is,im+1)=exp(-coeff(0,im+1)*(1.+gamma/coeff(0,im+1))/55.51 ) c Print salinity,activity: print*,activity(0,im+1),activity(is,im+1) endif enddo enddo end