Dear Zong-Liang Yang, Below is my response to your email requesting information on the snow model used in our (GFDL Climate group's) model. We have many versions of the model in use although most will use the snow model descibed below. I could believe that a few people have tested various changes to the snow code and that I do not know about the tests. The "snow model" used by our climate model is very simple and it is mainly diagnostic. That is to say, snow is not a predicted variable. We just keep track of snow depth from various budget computations (snow melt + snow fall etc). Snow depth also effects the surface albedo. We use a square root function for this computation. The presence of snow also effects the surface fluxes which are computed using bulk drag formula. The GCM is coded in Fortran 77. I did not find it very easy to "fit" the above model to your questions and am not sure I should continue. Is what is above enough? -Ron Stouffer GFDL Climate Group -------------------------------------------------------------------- Ronald Stouffer Room 244 GFDL Princeton, NJ USA 08542 Internet : rjs@gfdl.gov FAX : 609 987 5063 PHONE 609 452 6576 -------------------------------------------------------------------- Hi Zong-Liang Yang, Below are my responses to your questions: > > Your answer is OK, except I have a few more questions: > > 1) Is the model the same as that in Manabe (1969): > Climate and the ocean circulation I. The atmospheric circulation and > the hydrology of the Earth's surface, Mon. Wea. Rev., 97, 739-774 Yes on the hydrology/heat budget side. The surface albedo calculation was changed in the 1980's to be what is described below. > > 2) How snowmelt is computed? To solve for the sfc temp (TSTAR), we do a sfc heat budget. If TSTAR is greater than freezing (0 C) and there is snow on the ground, TSTAR is set to freezing and the heat is used to melt snow...snowmelt. The water then runs into the soil moisture bucket. > > 3) How is snowfall differentiated from rainfall? By the temperature just above the surface. Above freezing => rain below => snowfall. > > 4) When you say snow depth, do you mean snow water equivalent? > Otherwise, what is the snow density assumed? Yes we mean water equivalent. > > 5) How surface albedo is affected by snow? ( a formulation) We prescribe a bare soil albedo. For thick snow (> 2.0 cm of water equil.), the albedo is set to 60%. For thin snow, we use the following formula: albedo = bare soil alb + sqrt(snwdpt/2)*(deep snow alb - bare soil alb) The above albedos are also a function of the sfc temp. Below -10 C, they are the above. Warmer than that, the albedo is lower. I have included our code below... > > 6) Any future plans for changing the snow code? Not that I know of...there are a number of people working on the code, although I do not know of any which are working with the snow code. Also, there is a major effort to make a single source for all GFDL codes. When this is successful, I will have many nore options available to me...I assume some would include various snow codes. > > I would appreciate if you could elaborate a bit. How is the above? -Ron Our sfc albedo code: INPUTS: cc zin=1 for land pts cc we set the bare soil albs negative to indicate glacier pts. cc lousy code....ralb=abs(alb) cc ts =TSTAR cc tcrit=-10 C cc tfra =0 C cc snwdpt units are water equil. OUTPUTS: ca(nc) the sfc albedo c c determine surface albedo for land grid points (including glaciers) c ================================================= c if (zin(ipt) .eq. 1.0) then c c albedo determination for unglaciated points (albedo > 0.0) if (alb(ipt,jrow) .ge. 0.0) then abase = ralb(ipt) c c compute albedo for thick snow based on surface temperature if (abs(ts(ipt,jrow)) .le. tcrit) then asnow = 0.60 elseif (abs(ts(ipt,jrow)) .eq. tfra) then asnow = 0.45 else asnow = ((tfra-abs(ts(ipt,jrow)))*0.60 + $ (abs(ts(ipt,jrow))-tcrit)*0.45) / (tfra-tcrit) endif c c albedo determination for glaciated points (albedo < 0.0) elseif (alb(ipt,jrow) .lt. 0.0) then c c compute base albedo of glacier based on surface temperature if (abs(ts(ipt,jrow)) .le. tcrit) then abase = 0.65 elseif (abs(ts(ipt,jrow)) .eq. tfra) then abase = 0.55 else abase = ((tfra-abs(ts(ipt,jrow)))*0.65 + $ (abs(ts(ipt,jrow))-tcrit)*0.55) / (tfra-tcrit) endif c c compute albedo for thick snow based on surface temperature if (abs(ts(ipt,jrow)) .le. tcrit) then asnow = 0.80 elseif (abs(ts(ipt,jrow)) .eq. tfra) then asnow = 0.65 else asnow = ((tfra-abs(ts(ipt,jrow)))*0.80 + $ (abs(ts(ipt,jrow))-tcrit)*0.65) / (tfra-tcrit) endif c endif c c assign final albedo based on snow depth if (snwdpt(ipt,jrow) .le. 0.0) then ca(nc) = abase elseif (snwdpt(ipt,jrow) .ge. 2.0) then ca(nc) = asnow else ca(nc) = abase + sqrt(snwdpt(ipt,jrow)/2.0)*(asnow-abase) endif c endif c -------------------------------------------------------------------- Ronald Stouffer Room 244 GFDL Princeton, NJ USA 08542 Internet : rjs@gfdl.gov FAX : 609 987 5063 PHONE 609 452 6576 --------------------------------------------------------------------