#include "structs.h"
void
display_system (void)
{
planet_pointer node1;
int counter;
FILE *f;
f = fopen("New.System", "w");
fprintf(f," SYSTEM CHARACTERISTICS\n");
fprintf(f,"Mass of central star: %6.3f solar masses\n", stellar_mass_ratio);
fprintf(f,"Luminosity of central star: %6.3f (relative to the sun)\n",stellar_luminosity_ratio);
fprintf(f,"Total main sequence lifetime: %6.0f million years\n", (main_seq_life / 1.0E6));
fprintf(f,"Current age of stellar system: %6.0f million years\n",(age / 1.0E6));
fprintf(f,"Radius of habitable ecosphere: %6.3f AU\n\n",r_ecosphere);
node1 = planet_head;
counter = 1;
while (node1 != NULL) {
fprintf(f,"Planet #%d:\n",counter);
if (node1->gas_giant)
fprintf(f,"Gas giant...\n");
if (node1->resonant_period)
fprintf(f,"In resonant period with primary.\n");
fprintf(f," Distance from primary star (in A.U.): %7.3f\n",node1->a);
fprintf(f," Eccentricity of orbit: %7.3f\n",node1->e);
fprintf(f," Mass (in Earth masses): %7.3f\n",node1->mass * EARTH_MASSES_PER_SOLAR_MASS);
fprintf(f," Equatorial radius (in Km): %7.1f\n",node1->radius);
fprintf(f," Density (in g/cc): %7.3f\n",node1->density);
fprintf(f," Escape Velocity (in km/sec): %7.2f\n",node1->escape_velocity / CM_PER_KM);
fprintf(f," Smallest molecular weight retained: %7.2f",node1->molecule_weight);
if (node1->molecule_weight < MOLECULAR_HYDROGEN)
fprintf(f," (H2)\n");
else if (node1->molecule_weight < HELIUM)
fprintf(f," (He)\n");
else if (node1->molecule_weight < METHANE)
fprintf(f," (CH4)\n");
else if (node1->molecule_weight < AMMONIA)
fprintf(f," (NH3)\n");
else if (node1->molecule_weight < WATER_VAPOR)
fprintf(f," (H2O)\n");
else if (node1->molecule_weight < NEON)
fprintf(f," (Ne)\n");
else if (node1->molecule_weight < MOLECULAR_NITROGEN)
fprintf(f," (N2)\n");
else if (node1->molecule_weight < CARBON_MONOXIDE)
fprintf(f," (CO)\n");
else if (node1->molecule_weight < NITRIC_OXIDE)
fprintf(f," (NO)\n");
else if (node1->molecule_weight < MOLECULAR_OXYGEN)
fprintf(f," (O2)\n");
else if (node1->molecule_weight < HYDROGEN_SULPHIDE)
fprintf(f," (H2S)\n");
else if (node1->molecule_weight < ARGON)
fprintf(f," (Ar)\n");
else if (node1->molecule_weight < CARBON_DIOXIDE)
fprintf(f," (CO2)\n");
else if (node1->molecule_weight < NITROUS_OXIDE)
fprintf(f," (N2O)\n");
else if (node1->molecule_weight < NITROGEN_DIOXIDE)
fprintf(f," (NO2)\n");
else if (node1->molecule_weight < OZONE)
fprintf(f," (O3)\n");
else if (node1->molecule_weight < SULPHUR_DIOXIDE)
fprintf(f," (SO2)\n");
else if (node1->molecule_weight < SULPHUR_TRIOXIDE)
fprintf(f," (SO3)\n");
else if (node1->molecule_weight < KRYPTON)
fprintf(f," (Kr)\n");
else if (node1->molecule_weight < XENON)
fprintf(f," (Xe)\n");
else
fprintf(f,"\n");
fprintf(f, " Surface acceleration (in cm/sec2): %7.2f\n",node1->surface_accel);
if (!(node1->gas_giant)) {
fprintf(f," Surface Gravity (in Earth gees): %7.2f\n",node1->surface_grav);
if (node1->boil_point > 0.1)
fprintf(f," Boiling point of water (celcius): %7.1f\n",
(node1->boil_point - KELVIN_CELCIUS_DIFFERENCE));
if (node1->surface_pressure > 0.00001) {
fprintf(f," Surface Pressure (in atmospheres): %7.3f",(node1->surface_pressure / 1000.0));
if (node1->greenhouse_effect)
fprintf(f," RUNAWAY GREENHOUSE EFFECT\n");
else
fprintf(f,"\n");
}
fprintf(f," Surface temperature (Celcius): %7.2f\n",(node1->surface_temp - KELVIN_CELCIUS_DIFFERENCE));
if (node1->hydrosphere > 0.01)
fprintf(f," Hydrosphere percentage: %6.2f\n",(node1->hydrosphere * 100));
if (node1->cloud_cover > 0.01)
fprintf(f," Cloud cover percentage: %6.2f\n",(node1->cloud_cover * 100));
if (node1->ice_cover > 0.01)
fprintf(f," Ice cover percentage: %6.2f\n",(node1->ice_cover * 100));
}
fprintf(f," Axial tilt (in degrees): %7d\n",node1->axial_tilt);
fprintf(f," Planetary albedo: %7.3f\n",node1->albedo);
fprintf(f," Length of year (in years): %7.2f\n", (node1->orbital_period / 365.25));
fprintf(f," Length of day (in hours): %7.2f\n\n",node1->day);
counter++;
node1 = node1->next_planet;
}
fclose(f);
}
syntax highlighted by Code2HTML, v. 0.9.1