Search for a command to run...
v3.3.3 This release includes new functionality to model ectotherm flight and associated metabolic heat production, a new human thermoregulation model (HomoTherm), a new water metabolism function, new microclimate model functions, and the correction of several issues. Flight and metabolic rate in ectotherm models Flying ectotherms can generate considerable metabolic heat when flying and may use this capacity for metabolic heat production to warm themselves up to a suitable body temperature for flight. To capture this with the ectoR_devel function there is a new parameter Q_act, which is how many extra watts the animal produces due to flight (or some other activity). You can calculate this however you like, outside of running ectoR_devel, and it is just added on to the resting metabolic rate. For the ectotherm function there are now the following parameters: • flyer = 0 — does the animal fly? 1=yes, 0=no • flymetab = 0 — metabolic cost of flight (W) • flyhigh = 0 — does the animal fly at reference height? 1=yes, 0=no • flyspeed = 5 — flight speed (m/s) The flight code gets activated if flyer = 1. The program will then add the flymetab value to the base metabolic rate before calculating body temperature, so pre-warming of the flight muscles can happen to check whether the animal can take off. If not, it turns the excess heat production off and continues as normal. If it can take off, it solves the heat budget in the flight environment, which is affected by flyhigh and flyspeed. The flyspeed parameter sets the wind speed experienced during flight (taking the maximum of this value and the ambient wind speed at the flying height). The flyhigh parameter makes the animal fly at the reference height if 1, and at the local height if 0. Note also that a fourth parameter has been added to the Andrews and Pough (1985) metabolic rate equation (metabolic rate as a function of body temperature and body mass) in both ectoR_devel and ectotherm. HomoTherm — human thermoregulation model (new) A new human thermoregulation model, HomoTherm (forthcoming paper in Global Change Biology), has been added along with an associated variant HomoTherm_var for computing heat budgets of body parts separately. The model simulates human thermoregulation including sweating, vasodilation, panting, and core temperature rise. Associated auxiliary functions include: • get_clo — computes clothing thermal resistance • get_heights — computes body part heights from anthropometric inputs • get_shapes — finds shape proportionality factors and join areas • plot_human — visualises the human body model outputs (outputs height and supports beards) User-specifiable parameters include fat density, maximum sweat rate (expressed per unit area in L/h/m²), and clothing depths (constrained to be non-zero to prevent numerical issues). New microclimate data source functions • micro_silo — new function to run the microclimate model from Australian Bureau of Meteorology SILO data; supports querying by station number or reading a CSV of SILO data directly (e.g. for simulating experimental rainfall manipulations); allows the user to pass a custom daily rainfall vector • micro_openmeteo — new function connecting to the Open-Meteo dataset New water metabolism function A new function water_metabolism has been added to compute metabolic water production. Metabolic water is always produced by organisms and is calculated as a function of metabolic rate rather than food intake. New microclimate utility function: get_profile A new standalone function get_profile uses the same boundary-layer theory as the microclimate model to compute wind speed, air temperature and relative humidity profiles at any user-specified height(s). It can also predict above the reference height (wind speed only). Error trapping and an option to suppress warnings have been added. If all requested heights exceed the reference height, 1 cm is internally added then removed to allow the calculation to proceed. Other changes, fixes and improvements Microclimate model • Main change is initialising cursnow in the microclimate model Fortran code — this was causing issues when snow fell on the first day, where the initial run didn't match subsequent runs (a compiler-dependent effect). Many other variables were also initialised, integer terms in double-precision formulae were caught, a typo in the units for the snowdens parameter was fixed, and an error that prevented the 2-parameter snowdens function from being invoked was corrected • Fixed a very old bug in soil moisture calculations where the flux between coarse nodes 1 and 2 was omitted; also fixed a new bug in RELHUMID.f • Fixed an error in INFIL.f: 1-M should have been 1-N = N1 in the equation for BZ, and T(i-1) should have been T(1) in the equation for DJ(1) • Fixed a bug in solar calculations where elevation in km was used instead of the correct value when computing pressure for molecular (Rayleigh) scattering • Improved the phase change algorithm in OSUB: phase transition is now only simulated when soil moisture > 0; corrected output when the snow model is running; ensured deep soil temperature is unaffected by phase transition; fixed a first-hour repetition bug introduced during phase transition corrections; zeroed qphase/sumphase2 appropriately; set past temperature to current temperature on the first hour prior to phase transition when not running in daily mode; changed maxsurf from 95 to 85°C to prevent numerical instabilities that emerged after the phase change fix • Removed the bar parameter — pre-calculated soil moisture inputs are now assumed to be volumetric water content (volume water / volume soil) rather than degree of saturation (volume water / volume pore space) • Fixed rainfall treatment when rainhourly = 1 • Added ndmax parameter for user control of the number of integrator sub-steps per day • Added runmicro option to all micro_ functions to optionally skip the actual simulation and return just the formatted input weather data • Removed Refhyt as a user-accessible input from micro_ functions — it should not be changed by the user • Removed dem_terra from micro_usa, micro_terra and micro_aust • Fixed terra URL changes for TerraClimate and related datasets in micro_terra and micro_aust; fixed clearsky = 1 not working correctly in micro_terra; fixed missing fallback for diffuse_frac_all; fixed diffuse_frac not properly defined when timeinterval = 365 • Fixed a wind speed units error in the dew point calculation • Fixed the friction velocity (ustar) catch for negative values in the Obukhov routine • Fixed the Monin-Obukhov logic in get_profile/MICRO.f (Campbell and Norman calculations); removed the condition that soil surface temperature must exceed maxsurf before entering Monin-Obukhov calculations • Updated microclimate-IO documentation to include daily LAI inputs and new parameters (spinup, maxsurf, dewrain, moiststep) • Fixed micro_nz for changes in the terra package • Fixed leap year handling in micro_era5 and micro_ncep • Updated physical constants to higher precision (°C to K now uses +273.15 throughout) • Performance improvements to gads.f Endotherm model (endoR/endoR_devel) • Added TREGMODE = 3 — a new thermoregulation mode allowing parallel sweating, panting and core temperature rise • Added BRENTOL parameter for user control over the ZBRENT root-finder tolerance; improved the ZBRENT algorithm to better handle occasional overshoot under high panting rates by adjusting the bracketing range of metabolic rates • Torpor is now fully decoupled from tregmode — it is now possible to have torpor = 1 with either tregmode = 1 or tregmode = 2 (fixes a setup bug in endoR) • Added a torpor tolerance value to give the user more control over torpor entry • Updated DRYAIR to compute molar mass of air explicitly from user-specified O₂/CO₂/N₂ gas fractions; updated all calls to DRYAIR accordingly • Updated free convection formula and characteristic dimension handling for cylinder and plate geometries • Updated respiration function to include heat gained/lost from inspired/expired air, matching the Julia version; updated latent heat of vaporisation formula and O₂/J conversion value (20.1 J/mlO₂ used consistently throughout) • Fixed a bug where the Q10 effect was not being applied to panting cost, which underestimated panting energy expenditure • Fixed optical depth calculation so that dorsal and ventral values are properly distinguished • Fixed configuration factor calculation that was preventing factors from changing from 0.5 • Fixed geometry calculations related to fur (area, silhouette) • Fixed output of TREG in SOLVENDO (was reporting Q10mult instead of Q10) • Fixed output variable names in endoR (radii, not diameters, in morphology output) • Added user-specifiable acceleration due to gravity (relevant for zero-gravity scenarios; removing free convection) • Updated ellipsoid_endo to use Kleiber's law for basal metabolic rate estimation (as in original PNAS paper) and improved precision of exponent calculations • Updated all physical constants to higher precision to match the Julia version Ectotherm model • Fixed the metabolic rate calculation when body temperature is below 1°C • Fixed use of horizontal-plane solar radiation (rather than normal-to-sun) when computing diffuse radiation in ectotherm/ectoR_devel • Fixed a bug where a double application of solar reduction via shade could occur in some configurations • Fixed O₂ consumption output in ectoR_devel when the activity multiplier is non-zero • Fixed a logic issue that prevented shade-seeking and burrowing when the DEB model was on • Fixed a glitch that caused animals to remain inactive when the DEB model is running, they are satiated, and conditions outside the retreat don't move them closer to T_pref • Added QRESP (respiratory heat exchange) as an output of the ectotherm model • The desiccation percentage output in debout is now reported as the hourly value rathe