5 real rdt, inew, parms(*), dldt, dlidi, lvar
54 real lvarold, iold, ihalf
69 ihalf = 0.5 * (inew + iold)
70 zia = amax1(1.0e-20, abs(ihalf))
74 ziamax = amax1(ziamax, ziaold)
81 if ((ziamax .le. ziatest) .or.
82 & ((ziamax .gt. ziatest) .and. (zia .ge. ziamax)))
then
96 else if (rc1 .le. ro)
then
107 dlidi = zmue*alog(rc1*rri) + alog(ro*rrc1)
108 lvar = dlidi + zmue1m*(1.0-ri*rrc1)
121 rrc2 = rzia * tpihsat
122 dlidi = alog(ro*rrc1*rc2*rri) + zmue*alog(rc1*rrc2)
123 lvar = dlidi + zmue1m*ri*(rrc2-rrc1)
127 if (rc2 .le. ri)
then
138 lvar = dlidi + zmue1m*rori*rrc1
140 else if (rc2 .le. ro)
then
151 rrc2 = rzia * tpihsat
152 dlidi = alog(rc2*rri) + zmue*alog(ro*rrc2)
153 lvar = dlidi + zmuem1*(ri*(rrc1-rrc2) + (1.0-rrc1*ro))
166 rrc2 = rzia * tpihsat
168 lvar = dlidi + zmuem1*(rrc2-rrc1)*rori
182 if (rc3 .le. ri)
then
194 rrc2 = rzia * tpihsat
195 rrc3 = rzia * tpihrev
197 lvar = dlidi + (rrc1-rrc2+rrc3)*zmue1m*rori
199 else if (rc3 .le. ro)
then
212 rrc2 = rzia * tpihsat
213 rrc3 = rzia * tpihrev
214 dlidi = alog(rc3*rri) + zmue*alog(ro*rrc3)
215 lvar = dlidi + zmuem1*((rrc2-rrc1)*rori-(ro-rc3)*rrc3)
228 rrc2 = rzia * tpihsat
230 lvar = dlidi + zmuem1*(rrc2-rrc1)*rori
251 dldt = (lvar - lvarold) * rdt
subroutine smagsw_model(rdt, inew, parms, dldt, dlidi, lvar)