Math help needed!

Solved with your assistance: Declaration of double was the trick ....

def dewpt(temp,humd) {
    def double lnPws
    def double Pws
    def double Pw
    def double lnPw
    
    if(logEnable) log.info "DewPoint: ${temp}f -> ${humd}%"
    C1=-10214.165
    C2=-4.8932428
    C3=-0.005376579
    C4= 0.000000192024
    C5= 0.000000000355758
    C6= -0.0000000000000903447
    C7=4.1635019
    C8=-10440.397
    C9=-11.29465
    C10=-0.027022355
    C11=1.28904e-5
    C12=-2.47807e-9
    C13=6.5459673
    ln=0.4342944819
    Tr=459.67+temp
    if (temp < 32) {
        lnPws=C1/Tr + C2 + C3*Tr + C4*Tr**2 + C5*Tr**3 + C6*Tr**4 + C7*Math.log(Tr)
    } else {
        lnPws= C8/Tr + C9 + C10*Tr + C11*Tr**2 + C12*Tr**3 + Math.log(Tr)*C13
    }
    Pws= Math.exp(lnPws)
    Pw=humd*Pws/100
    lnPw=Math.log(Pw)
    if(logEnable) log.info "DewPoint: Tr = ${Tr}R -> lnPws = ${lnPws} -> Pws = ${Pws} -> Pw = ${Pw} -> lnPw = ${lnPw}"
    if (temp < 32) {
        Td=90.12+26.412*lnPw+0.8927*lnPw**2
     } else {
        Td=100.45+33.193*lnPw+2.319*lnPw*lnPw+0.17074*lnPw**3+1.2063*Pw**0.1984
     }
    if(logEnable) log.info "DewPoint: ${Td}f"

    return Td
}

Thanks ALL.

2 Likes