+FGColumnVector3& FGPropulsion::GetTanksCG(void)
+{
+ iTank = Tanks.begin();
+ vXYZtank.InitMatrix();
+ while (iTank < Tanks.end()) {
+ vXYZtank(eX) += (*iTank)->GetX()*(*iTank)->GetContents();
+ vXYZtank(eY) += (*iTank)->GetY()*(*iTank)->GetContents();
+ vXYZtank(eZ) += (*iTank)->GetZ()*(*iTank)->GetContents();
+ iTank++;
+ }
+ return vXYZtank;
+}
+
+//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+float FGPropulsion::GetTanksWeight(void)
+{
+ float Tw = 0.0;
+
+ iTank = Tanks.begin();
+ while (iTank < Tanks.end()) {
+ Tw += (*iTank)->GetContents();
+ iTank++;
+ }
+ return Tw;
+}
+
+//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+float FGPropulsion::GetTanksIxx(const FGColumnVector3& vXYZcg)
+{
+ float I = 0.0;
+ iTank = Tanks.begin();
+ while (iTank < Tanks.end()) {
+ I += ((*iTank)->GetX() - vXYZcg(eX))*((*iTank)->GetX() - vXYZcg(eX)) * (*iTank)->GetContents()/(144.0*GRAVITY);
+ iTank++;
+ }
+ return I;
+}
+
+//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+float FGPropulsion::GetTanksIyy(const FGColumnVector3& vXYZcg)
+{
+ float I = 0.0;
+ iTank = Tanks.begin();
+ while (iTank < Tanks.end()) {
+ I += ((*iTank)->GetY() - vXYZcg(eY))*((*iTank)->GetY() - vXYZcg(eY)) * (*iTank)->GetContents()/(144.0*GRAVITY);
+ iTank++;
+ }
+ return I;
+}
+
+//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+float FGPropulsion::GetTanksIzz(const FGColumnVector3& vXYZcg)
+{
+ float I = 0.0;
+ iTank = Tanks.begin();
+ while (iTank < Tanks.end()) {
+ I += ((*iTank)->GetZ() - vXYZcg(eZ))*((*iTank)->GetZ() - vXYZcg(eZ)) * (*iTank)->GetContents()/(144.0*GRAVITY);
+ iTank++;
+ }
+ return I;
+}
+
+//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+float FGPropulsion::GetTanksIxz(const FGColumnVector3& vXYZcg)
+{
+ float I = 0.0;
+ iTank = Tanks.begin();
+ while (iTank < Tanks.end()) {
+ I += ((*iTank)->GetX() - vXYZcg(eX))*((*iTank)->GetZ() - vXYZcg(eZ)) * (*iTank)->GetContents()/(144.0*GRAVITY);
+ iTank++;
+ }
+ return I;
+}
+
+//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+float FGPropulsion::GetTanksIxy(const FGColumnVector3& vXYZcg)
+{
+ float I = 0.0;
+ iTank = Tanks.begin();
+ while (iTank != Tanks.end()) {
+ I += ((*iTank)->GetX() - vXYZcg(eX))*((*iTank)->GetY() - vXYZcg(eY)) * (*iTank)->GetContents()/(144.0*GRAVITY);
+ iTank++;
+ }
+ return I;
+}
+
+//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+