====== Grt-Pl-Mag-Qtz: Graphchikov, 1989 ======
=== Details ===
This sensor from [[:about_tpf|TPF]] collection
^ Article | |
^ Collibration | |
^ Presition | |
^ Ranges | |
^ Renew sensors | |
* заголовок
* краткое описание
* статья
* ссылка
* карточка
* подробное описание
* код
* тест
=== Source ===
source("utilities_tpf.r");
sensors.f.grt_pl_mag_qtz_graphchikov_1989 <- function(Grt, Pl, Mag, Qtz, Temp, P, ...){
T <- Temp;
Pl <- tpf.recalc_minaral("PL",Pl);
Grt <- tpf.recalc_minaral("GRT",Grt);
FG <- (Grt$Fe_p2_pfu + Grt$Fe_p3_pfu - 2 + Grt$Al_c6_pfu + Grt$Al_c4_pfu) / (Grt$Fe_p2_pfu + Grt$Fe_p3_pfu - 2 + Grt$Al_c4_pfu + Grt$Al_c6_pfu + Grt$Ca_pfu + Grt$Mg_pfu + Grt$Mn_pfu);
MGG <- Grt$Mg_pfu / (Grt$Fe_p2_pfu + Grt$Fe_p3_pfu - 2 + Grt$Al_c4_pfu + Grt$Al_c6_pfu + Grt$Ca_pfu + Grt$Mg_pfu + Grt$Mn_pfu);
CG <- Grt$Ca_pfu / (Grt$Fe_p2_pfu + Grt$Fe_p3_pfu - 2 + Grt$Al_c4_pfu + Grt$Al_c6_pfu + Grt$Ca_pfu + Grt$Mg_pfu + Grt$Mn_pfu);
MNG <- Grt$Mn_pfu / (Grt$Fe_p2_pfu + Grt$Fe_p3_pfu - 2 + Grt$Al_c4_pfu + Grt$Al_c6_pfu + Grt$Ca_pfu + Grt$Mg_pfu + Grt$Mn_pfu);
CP <- Pl$Ca_pfu / (Pl$Ca_pfu + Pl$Na_pfu + Pl$K_pfu);
if (MNG>0.050) {
warning(" CANNOT BE USED FOR MN/(MN+CA+MG+FE) IN GRT >0.05");
}
if (MNG<0.050) {
TT <- T + 273.15;
ALM <- MGG^2 * (0.2 + FG * 4.6) + CG^2 * (3.5 - 0.0014 * TT - 7.1 * FG) + CG * MGG * (CG * 4.3 - MGG * 1.8 - 0.7);
GRS <- MGG^2 * (4 - 0.0015 * TT - CG * 6.1) + FG^2 * (7.1 * CG - 0.1 - 0.0014 * TT) + FG * MGG * (3.4 - 0.0029 * TT - 2.8 * FG + 1.8 * MGG);
AN <- (1 - CP)^2 * (1.980 - 0.001526 * TT + 2 * CP * (4.88 - 0.002348 * TT));
AALM <- (exp(ALM / 0.001987 / TT) * FG)^3;
AGRS <- (exp(GRS / 0.001987 / TT) * CG)^3;
AAN <- exp(AN / 0.001987 / TT) * CP;
LK <- log(AAN^3 / AGRS / (AALM)^2);
Y <- - 32.544 + 0.038462 * TT;
if (PY) {
F <- - 7.458 + 32.748 * 1000 / TT - 4.431 * (1000 / TT)^2 - 1.101 * P / (0.001987 * TT) - 0.4343 * LK;
LGFO2 <- - F;
}
}
return(data.frame(Name=paste0(Pl$Name,"-", Grt$Name),Temp=Temp,P=P,LGFO2_calc=LGFO2));
}
sensors.f.grt_pl_mag_qtz_graphchikov_1989.args <- function(){
ars <- list();
ars$minerals <- c("Grt", "Pl", "Mag", "Qtz");
ars$ranges <- c("Temp", "P");
return(ars);
}
#sensors.f.grt_pl_mag_qtz_graphchikov_1989.test <- function(){
#
#}
{{tag> tpf Pl Grt }}