[R] Cannot use negative argument in function
David Winsemius
dwinsemius at comcast.net
Thu Mar 1 00:41:59 CET 2012
On Feb 29, 2012, at 2:14 PM, lidaky wrote:
> index.refraction <- function(Temp,Press, RH, CO2)
> {
> #define constant
> lambda <- 531 #nm
> Co <- 299792458 #m/s
> ww <- c(295.235,2.6422,-0.03238,0.004028)
> kk <- c( 238.0185 ,5792105 ,57.362 ,167917)
> aa <- c( 1.58123 * 10^(-6) , -2.9331 * 10^(-8) , 1.1043 * 10^(-10))
> bb <- c( 5.707 * 10^(-6) , -2.051 * 10^(-8))
> cc <- c(1.9898 * 10^(-4) , -2.376 * 10^(-6))
> dd <- 1.83 * 10^(-11)
> ee <- -0.765 * 10^(-8)
> pp <- 101325
> tt <- 288.15
> zz <- 0.9995922115
> ro <- 0.00985938
> R <- 8.314472
> M <- 0.018015
>
> S <- 1/(lambda*10^-3)^2
> ras <- 10^-8*((kk[2]/(kk[1]-S))+(kk[4]/(kk[3]-S)))
> rvs <- 1.022*10^-8*(ww[1]+S*ww[2]+ww[3]*S^2+ww[4]*S^3)
> Ma <- 0.0289635 + 1.2011 * 10^(-8) * (CO2 - 400)
> raxs <- ras*(1+5.34*10^-7*(CO2-450))
> TT <- *Temp*+273.15
That was the first line with an error. Why are you using "*"'s in that
manner?
>
> #Saturation vapor pressure over ice
> # A1 <- -13.928169
> # A2 <- 34.7078238
> # Theta <- (*Temp*+273.15)/273.16
> # Y <- A1 * (1 - Theta^(-1.5)) + A2 * (1 - Theta^(-1.25))
> # Psv <- 611.657*exp(Y)
>
> #Saturation vapor pressure over water
> Tc <- 647.096 # K : Temperature at the critical point
> Pc <- 22.064 * 10^4 # hPa : Vapor pressure at the critical point
> nu <- (1-TT/Tc)
> a1 <- -7.85951783
> a2 <- 1.84408259
> a3 <- -11.7866497
> a4 <- 22.6807411
> a5 <- -15.9618719
> a6 <- 1.80122502
> Psv <- Pc * exp(Tc/TT * (a1*nu + a2*nu^1.5 + a3*nu^3. + a4*nu^3.5 +
> a5*nu^4. + a6*nu^7.5))
>
> Alpha <- 1.00062
> Beta <- 3.14 * 10^(-8)
> Gamma <- 5.60 * 10^(-7)
> fpt <- Alpha+Beta*Press+Gamma**Temp*^2
> Xv <- (RH/100)*fpt*Psv/Press
>
> Zm <- 1-(Press/TT)*(aa[1]+aa[2]**Temp*+aa[3]**Temp*^2
> +(bb[1]+bb[2]*Temp)*Xv+(cc[1]+cc[2]**Temp*)*Xv^2)
> +(Press/TT)^2*(dd+ee*Xv^2)
> Roaxs <- pp*Ma/(zz*R*tt)
> Rov <- Xv*Press*M/(Zm*R*TT)
> Roa <- (1-Xv)*Press*Ma/(Zm*R*TT)
> n <- 1+(Roa/Roaxs)*raxs+(Rov/ro)*rvs
> return(n)
> }
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list