github.com/archlabjp/eeslism-go@v0.0.0-20231109122333-4bb7bfcdf292/eeslism/eerthlib.go (about) 1 package eeslism 2 3 import ( 4 "math" 5 ) 6 7 /* 地中温度の計算 */ 8 9 func Tearth(Z float64, n int, nmx int, Tgro float64, DTg float64, a float64) float64 { 10 const t = 31.536e+6 11 Cz := Z * math.Sqrt(math.Pi/(a*t)) 12 Tearth := Tgro + 0.5*DTg*math.Exp(-Cz)*math.Cos(float64(n-nmx)*0.017214-Cz) 13 return Tearth 14 } 15 16 /* -------------------------------------------------- */ 17 18 func Exsfter(day int, daymx int, Tgrav float64, DTgr float64, Exs []*EXSF, Wd *WDAT, tt int) { 19 if Exs != nil { 20 for i := range Exs { 21 _Exs := Exs[i] 22 if _Exs.Typ == EXSFType_E { 23 _Exs.Tearth = Tearth(_Exs.Z, day, daymx, Tgrav, DTgr, _Exs.Erdff) 24 } else if _Exs.Typ == EXSFType_e { 25 _Exs.Tearth = Wd.EarthSurface[day*24+tt] 26 } 27 } 28 } 29 }