38// check the registration license, the preferred method
39// if policiesMsg is sepcified as non-NULL, then upon success it receives a human-readable string with details regarding the acquired license (e.g. activation / expiration times, usage / maintenance periods, etc.)
114jrmboolORDER2FLAG; // [bool] Input Flag to control whether 2nd-order mode 2 contributions should be included in SigSimC predicted Tsurf result.
115doubleabsorbratio; // [unitless] Input ratio of aS to eL used as approximation to real ratio in Q_diff calculation for SigSimC predicted Tsurf result.
118doubleDCCN, DCCH; // [unitless] Calculated conduction factors to be multiplied by (1 + dTcos/(Tncos+CTOK)) and added in to Qdiff Numerator and Denominator.
119GPUCOEFF2gpu2; // [unitless] current-time 2nd-order arrays for the sun-tracking normal
120 } GPUFACTOR; // Set of GPU Factor coefficients for a given material
206double *param1; // reflectflag='io': JRM DHR [unitless 0-1]. // reflectflag='rf': Constant term [dB] in Ulaby/Dobson RCS
207double *param2; // reflectflag='io': JRM Percent Specular [unitless 0-100]. // reflectflag='rf': Coefficient [dB] of exponential term in Ulaby/Dobson RCS
208double *param3; // reflectflag='io': JRM Lobe Width [degrees, full angle]. // reflectflag='rf': Zenith multiplier [unitless] in exponent of Ulaby/Dobson RCS
209double *param4; // reflectflag='io': SR Lobe Width Parameter [unitless]. // reflectflag='rf': Coefficient [dB] of cosine term in Ulaby/Dobson RCS
210double *param5; // reflectflag='io': SR Hemispherical Emissivity [unitless 0-1].// reflectflag='rf': Zenith multiplier [unitless] in cosine argument of Ulaby/Dobson RCS
211double *param6; // reflectflag='io': SR Grazing Angle Parameter [unitless]. // reflectflag='rf': Constant phase [rad] in cosine argument of Ulaby/Dobson RCS
212double *param7; // reflectflag='io': Transmittance [unitless 0-1]. // reflectflag='rf': Constant term [dB] in Ulaby/Dobson RCS Standard Deviation
213double *param8; // reflectflag='io': Phong Ambient [unitless 0-1]. // reflectflag='rf': Coefficient [dB] of exponential term in Ulaby/Dobson RCS Standard Deviation
214double *param9; // reflectflag='io': Phong Diffuse [unitless 0-1]. // reflectflag='rf': Zenith multiplier [unitless] in exponent of Ulaby/Dobson RCS Standard Deviation
383doublezenith; // [deg] zenith angle measured at scenario geodetic_loc for met_proc_modes<0; declination angle from celestial plane for met_proc_modes>0.
384doubleazimuth; // [unitless real] = [dB]/4 for met_proc_modes<0, right ascension [hours 0-24] about celestial plane measured from equinox (clockwise when looking at zenith) for met_proc_modes>0
385doubleTcolor; // [degK] distribution temperature of equivalent blackbody
386doubleatten; // [unitless] Attenuation coefficient for a stellar irradiance = projected solid angle fraction = (star radius / star distance from earth)^2
387doubleband_rad;// [W/cm2/sr] bandpass radiance for given sensor (applicable when met_proc_mode=1or2 and PaintStars=TRUE in UpdateSensorPassbandAndOGLEnvironment, or when PaintSky=TRUE).
388doubleOGL_rad; // [unitless 0-1] // scaled bandpass radiance for given sensor (applicable when met_proc_mode=1or2 and PaintStars=TRUE in UpdateSensorPassbandAndOGLEnvironment, or when PaintSky=TRUE).
414//double Evapmax; // [W/m2] Full-band maximum evapotranspiration (without area ratio) (removed CF090121)
415//double Econvect; // [W/m2] Full-band natural convected heat gain or loss depending on wind velocity and temp difference between air and nominal ground material. (removed CF090121)
468jrmboolFastSS; // TRUE=Use new scattered irradiance computation. FALSE=Use older LOS / volumetric integrals.
469jrmboolAddMS; // TRUE=Include multiple scattering contribution to all scattering returns.
470jrmboolCalc_Ta_Tback; // TRUE=Calculate Ta (current air temperature) and Tbackground using {Tamin, Tamax} boundaries and time-of-day. FALSE=Use Ta and Tbackgound as entered manually by user, unless either is <3degK.
496longnum_met4x_bodies; // Number of stars in celestial_table used when met_proc_mode<0
497CELESTIAL_TABLE *sky_table; // Array of sky scattered irradiance lines of sight and temperatures used when PaintSky=TRUE in UpdateSensorPassbandAndOGLEnvironment
498longnum_sky_LOS; // Number of sky lines of sight in sky_table. Used when PaintSky=TRUE in UpdateSensorPassbandAndOGLEnvironment
499intmet_proc_mode; // [>0]=Use Modtran/Radtran-based meteorology and new stellar irradiance, [>2]:Use Mod/Radtran meteorology, but no star irradiances, [<0]=Use old Met4x meteorology and night_sky_file, [<-2] no star irradiance.
500doubleenv_update_interval; // [hrs] Time-step for re-calculating environmental irradiances
501doublethermal_spin_up_time; // [hrs] Number of hours over which the material systems should be "spun up" prior to thermal prediction. (72 hrs recommended).
505THERMAL_CACHE *tc; // Diurnal array. #elements is floor(HOURS_PER_DAY/env_update_interval)
506doubleEmax; // [W/m2] Maximum value over diurnal cycle of sum of irradiances, calculated during THERMAL_CACHE spinup.
507double EsunAve, EsundifAve, EskyAve, EarthAve; // [W/m2] Average values over diurnal cycle, calculated during THERMAL_CACHE spinup. Note that EsunAve is converted to along-path by division by sun.k!
711// InitializeMatSys() allocates/fills the MATL_PROP_TABLE array for those material systems listed in the sigsim_data_dir/ms_filename.
712// This function needs to be run once at the beginning of a scenario with matreset=TRUE. It will then write out a state file called sigsim_data_dir/ms_state_file.
713// After that, this function still needs to be run once at the beginning of a scenario, but matreset=FALSE will load in ms_state_file.
714// Thermal spin-up is done here as well, according to the thermal_spin_up_time chosen in the METIN structure.
718// Returns SCALED scattered source radiance along a set of paths starting at sens->geoc_loc and looking at orientation (LOS[i].zenith, LOS[i].azimuth) in local SEU system.
719// That is, THE ORIENTATION STORED IN THE SENSOR STRUCTURE IS IGNORED.
720// Sensor band defined from sens->band.ax [um] to sens->band.bx [um] --- must be encompassed by metin band structure.
721// num_entries is number of CELESTIAL_TABLEs in LOS array.
722// LOS is a PRE-ALLOCATED array of CELESTIAL_TABLEs for which the user has ALREADY FILLED IN the zenith and azimuth angles!!!).
723// CROP=TRUE crops the resulting scaled radiances to the range (0.0,1.0).
724// hitflag=TRUE truncates path if the Earth gets in the way.
725// NOTE: Untruncated path range is deemed to be infinity. Actual ranges used are:
726// For 1D ATM: KM2M*sqrt(metin->inf.althi*(2*inf.E_radius+inf.althi)).
727// For 3D ATM: dmax(dmax(metin->fm.E.a,metin->fm.E.b),metin->fm.E.c)).
728// Function returns SIGSIM_SUCCESS or SIGSIM_FUNCTION_FAILURE.
740// UpdateSensorPassbandEnvironment() performs passband flux integrals over METIN irradiances to fill single SENSOR passband incidances
741// If PaintStars=TRUE and metin->met_proc_mode=1 or 2, function will also fill metin->celestial_table.band_rad and OGL_rad for all visible stars.
742// If PaintSky=TRUE, function will also fill metin->sky_table with suggested lines of sight, scaled and unscaled scattered source radiances (solar plus lunar).
743// CROP=TRUE crops the output OpenGL-scaled LIGHT_SOURCE_TABLE values between 0.0 and 1.0. (Not needed when MOGL_MODE=TRUE).