This is the list of bugs that have been identified and corrected in the code "KARINE", along with the other modifications that have been brought to the code. ======================= Version 3.2.0.1 2005/10/26: when the code has to perform analytic computation (spectral optimization) only, it did not report the computation state as finished. As a consequence, the next run would display that the previous computation was not finished, and could possibly try to resume it when the corresponding options is selected. This bug was corrected. ======================= Version 3.2.0.2 2005/11/25: when a uniform spectral sampling is required, there is a possibility the associated cumulated function does not reach unity whenever the sum of quadrature weights is not unity. This will result in a possible sampling of narrowbands that do not exist, making the code crash. This bug was corrected. ======================= Version 3.2.0.3 2006/01: modification of the way cooling rates (or heating rates) are computed. The specific heat (in J/K/m³) of each gazeous layer is now computed as the product of the massic specific heat (J/K/kg) by the volumic mass (kg/m³). The volumic mass per layer is now computed as the ratio between the difference of pressure (in Pa) between the bottom and the top of the layer, and the mean acceleration of gravity (m/s²) in the layer, multiplicated by the height of the layer (meters): (Pa)/(m.s¯².m)=(kg.m¯²)/(m)=kg.m¯³ In addition, all physical constants that where specific to the Earth have been removed in includes/param.inc, so that the code can compute cooling rates for any planet. 2006/02/08 : + A new pseudo-random number generator has been added. The old generator was only simple-precision. The new one (in file random_gen2.for) is a full double-precision generator, and the authors claim they have tested it over 10^{10} generations, with no reccurence loop. An option that make possible to chose between the two generators has been added to "options.in". The default choice is to use the new random generator. + Another bug identified and corrected about uniform spectral sampling pdfs. ======================= Version 3.2.0.4 2006/06/20 : the pseudo-random number generator that was added in the previous version was eroneous -- it was not sampling uniformly the [0,1] interval. It was replaced by the "zufall" generator, which has been tested by S. Blanco. It is supposed to have a 10^{18} period. This generator is also a full double-precision routine, which makes it a better choice over the initial single-precision initial generator "urand". ======================= Version 3.2.0.5 2006/07/18 : a new bug has been identified in the spectral optimization step: when the temperatures of two gaz layers are uniform and at the same value, NER between those two layers are null for the whole spectrum. It is therefore impossible to compute cumulative functions and acceleration arrays. In such a case, spectral pdfs are now set to uniform. ======================= Version 3.3.0.0 2006/11/01 : lots of improvements, so I jump to 3.3.0.0 The previous modification brought to 3.2.0.5 was actually a huge mistake: all it did was to modify randomly values of analytic NER and radiative budgets. This was corrected. Also, a small improvement was once again brought to computation of uniform spectral pdfs (fortran has problems to divide a value by itself !). The major improvement though is the possibility to use now a different pressure grid that the one provided in the input data file. Options have been added to the options.in file so that it is possible to tell Karine it has to redistribute absorbant quantities over the new pressure grid, using the input spectroscopic data. A consequence of this is that now, the altitude of the ground is no longer the mean altitude of the planet (if it actually ever was !) but rather the reference altitude for the computation. The difference is subtle... in fact, with a redistribution over a new pressure grid, it is possible to have a ground pressure at a higher value that the ground pressure given in the input data file. Therefore, the new altitude of ground should be... negative ! In this case, all altitude levels have to be recomputed so that ground level is zero. This ensures the Monte-Carlo core will not crash. Another improvement is the direct computation of the ksi matrix within the results post-processing. It is saved in file results/ksi.txt, with the same format as previous ksi computation program used. ======================= Version 3.3.1 2006/11/15 In the same way the final ksi matrix is computed at postprocessing time, now the code will also generate the analytic ksi matrix during the initial spectral optimization step. It is saved under the file "results/ksi_theo.txt". Small changes have also been brought to screen messages that are displayed during execution. Finally, the log files that reports the computation's status has been changed from "state" to "status". ======================= Version 3.3.2 2006/11/28 Added: checking the presence of input data files Added: checking the presence of .sav files in the case an interruption of the previous run has been detected (and resuming has been required). ======================= Version 3.3.3 2006/11/29 Added: validity check for every result returned by Karine. Every numerical value that has is actually written in an output file is subsequently tested for NaN and Inf values. Errors are reported in the "errors.log" file. 2006/11/30 Modified: method used computing Estimated Time of Arrival (ETA) of the Monte-Carlo run. Added: computation of ETA for spectral optimization. Modified: information that is displayed into the "status" file. 2006/12/04 Added: writing Karine's PID into file "pid" Added: basic signal handling capabilities 2006/12/05 Added: support for user signal 10 - try the following: while karine is running, read file 'pid' in order to retrieve Karine's PID. Then send signal 10 to Karine (type 'kill -10 #PID' with #PID the PID number) and see what happens. 2006/12/06 Bugfix: initial pressure grid interpolation was corrected, so that pressure levels associated with the computation altitude grid are exactly the same as pressure levels of the input GCM pressure grid. ======================= Version 3.3.4 2007/01/22 + Modified: the way input and output files are specified to KARINE (via the "data.in" file). Files can now be specified either as file names (i.e. "atmos_data.txt") or as full path (i.e. "/home/user/pathtokarine/data/atmos_data.txt"). In the first case files are looked for in the directory specified (data or results directories specified by the Makefile). In the second case, the specified path overrides directory specifications. This is more flexible, and fully compatible with the way KARINE_GUI writes "data.in". + Modified: some minor details for a better compatibility with KARINE_GUI ======================= Version 3.3.5 2007/01/29 + Bugfix: a conflict in output file numbers caused an issue in gas-gas radiative budgets recording. ======================= Version 3.3.6 2007/01/31 + Bugfix: file 'status' indicated wrong information when using very large number of statistical events per layer (100.000.000) 2007/02/07 + Modified: KARINE is now using a single format for reading/writing long data lines. This format (50) is defined in the new "formats.inc" file. The interest is that modifying the format used is read/write tasks is now as easy as modifying the "formats.inc" file (and recompiling the code). For instance in the case there are more than 100 (default) values per line. 2007/02/08 + Modified: minor details relative to grid interpolation, in order to ensure compatibility with grid files that are generated by the new "make_p_grid" tool (Venus/data/Pgrid). + Modified: formats.inc file + Bugfix : minor bugs related to write operations in several files simultaneously opened with the same identification number. 2007/02/09 + Bugfix : MAJOR bug related to spectroscopic data interpolation over a GCM pressure grid containing a greater number of layers than the reference pressure grid. 2007/02/12 + Bugfix : minor bugs in resuming computations and ETA estimation. + Added: bash script "backup" that will save the current status of the computation. The purpose of this script is to generate a gzipped archive ("backup.tgz") that contains all files that are relevant to the current status of the simulation. This archive can be moved to any place, then decompressed (tar -zxvf backup.tgz). Then you can specify KARINE (in the "options.in" file) that you want to resume an interrupted simulation, and the simulation will resume at the point it was saved at. You may have to edit the "data.sav" file so that it reflects the current directory KARINE will be run in. 2007/08/13 + Modified: if java is installed on the system (it will be automatically detected), KARINE will no longer display intialisation and computation progress on a "one line after the other" basis. Instead, each line will be printed on top of the previous one. This new scheme results in mush less information printed on screen. ======================= Version 3.3.7 2007/02/28 + Added: new feature allowing Karine to send relevant information to the author using built-in "mail" system command. This option can easily be modified in configuration file "config/configure.txt" created by Karine on first use. This feature will be developped in further versions. 2007/03/01 + Modified: "Makefile" was modified for storing object files (at compilation time) in the "objects" folder. You no longer have all these ".o" files in your main Karine directory ! + Modified: ".sav" files (needed for resuming an interrupted simulation) now reside in the "temporary" folder. + Bugfix: major bug ! When resuming an interrupted simulation, Karine would take the index of the last random event that was performed as the minimum number of random events to perform, for each subsequent atmospheric layer. The bug has been corrected: variable "paq_min" is reinitialized once the computation is over for a given atmospheric layer. 2007/03/28 + Modified: various details concerning about computation resuming. ======================= Version 3.4.0 2007/06/19 + Added: now analytic NER computations will properly handle ground emissivity effects (until now analytic computations could not take into consideration a non-black ground surface). 2007/06/26 + Added: new analytic fluxes computations will handle ground emissivity effects. This includes net fluxes, and net fluxes differences (radiative budgets). -> from now, all analytical computations will take into account ground emissivities that are different from 1 (non-black ground). 2007/06/27 + Added: analytical solutions now include computation of sensitivities of NERs to the mean temperature of each gas layer (with effects of surface emissivity). + Modified: in the "options.in" file: we no longer have the choice of using various NER or flux computation methods. Only the most accurate method (full 3D integration for an inhomogeneous atmosphere and a non-black ground) will be used when performing analytical computations. + Modified: in the "options.in" file: the 'spectral optimization' choice is now: . 0 for a uniform spectral sampling . 1 for a spectral sampling that uses NER estimations. . 2 for a spectral sampling that uses fluxes estimations. . 3 when using the previous spectral sampling. Actually, analytical computations will be performed each time KARINE will run, except when a uniform spectral sampling or the previous sampling is specified. + Added: 4 options in the "options.in" file: 1 options for computing sensitivities of NER to the mean temperature of each gas layer, and 3 options for saving d(ksi)/d(T), sums of d(NER)/d(T) and A, C, D, E and F files. -> from now, KARINE includes two complete (and separate) radiative transfer simulation codes: analytical and Monte-Carlo. 2007/07/02 + Added: analytic sensitivities of net fluxes and radiative budgets to temperature. 2007/07/03 + Modified: there is now a routine dedicated to the computation of analytical NERs (until now it was embeded into the routine that computes spectral sampling pdf) + Modified: idem for analytic upward and downward fluxes. -> file "init_nb_pdf.for" which was originally 1532 lines wide, has now only 946 lines; some improvement is still needed. 2007/07/19 + Added: analytical solutions now include computation of sensitivities of NERs to concentrations of chemical species. Usual modifications have been brought to "options.in" and "data.in" files. Results have been validated because I could derive sensitivities of absorption coefficients to clouds particule numbers in Venus' atmosphere. These results have no goal yet (no model uses it). Sensitivities of NERs to concentrations can be computed for up to 10 chemical species at the same time. Results are saved in a single (huge) file. 2007/09/18 + Added: a simple routine to warn the user about sensitivities result files sizes, as these files can easily be more than a Gb. + Modified: the "data" directory does no longer contain any spectral data. + Modified: the "data" directory does no longer contain any script for data visualization. Instead, the "plot" directory has been added to the main structure. It contains the "plot" script that is used for data and results visualization. 2007/09/20 + Bugfix: analytic and Monte-Carlo radiative budgets did no longer agree. This was induced by previous modifications of the 'init_nb_pdf.for" file" (new routine -> new bugs). 2007/09/28 + Added: test programs "make_data", "make_meshGCM", "write_dkadT", "write_dkadx" have been added to the archive (in the /data folder). They may help for creating karine input data files. + Modified: plot will now automatically detect visualization levels and set colors levels for color maps. The user has the possibility to use a limited number of basic options if automatic settings are incorrect. Improved support for black and white maps. See the plot/README file. + Modified: documentation files have been updated for version 3.4.0.0 ======================= Version 3.4.1 2007/10/12 + Added: all results files are wiped out at the beginning of a run. This is to prevent that MC and analytic results files may result from different data sets. + Added: several tests that improve reliability of frequential pdf generation when several gas layers are isothermal. + Added: a test over the "alt" and "e" vertical meshes that are provided in the configuration data file, so that an error is reported when a given altitude level is lower or equal than a previous altitude level. 2007/10/16 + Modified: the number of double-precision numbers that can be written on a single line has been increase from 250 to 1000. + Added: the program will gzip and send as attachement the "atmos_data.txt" file if possible (= zipped file not too big). 2007/10/17 + Modified: documentation files for the 3.4.1 version. 2007/10/18 + Added: a test over ksi values, so that the program will not write values lower than 1.0E-99 (problem of format 50 that should be fixed in the next version). ======================= Version 3.4.2 2007/10/26 + Modified: the format of input data file "dkadx.txt", so that a quadrature can be applied over values of sensitivitites d(ka)/d(x). ======================= Version 3.4.3 2008/01/08 + Added: analytic computation of the part of NER(i,j) exchanged via a diffuse ground reflection. 2008/01/10 + Added: a second routine for computing the part of NER(i,j) exchanged via a specular ground reflection. 2008/01/11 + Added: a second routine for computing the part of d(NER(i,j))/d(T(p)) exchanged via a specular ground reflection. + Added: a routine for computing the part of d(NER(i,j))/d(T(p)) exchanged via a diffuse ground reflection. 2008/01/12 + Added: a second routine for computing the part of d(NER(i,j))/d(X(p)) exchanged via a specular ground reflection. + Added: a routine for computing the part of d(NER(i,j))/d(X(p)) exchanged via a diffuse ground reflection. 2008/01/15 + Modified: computation of analytic upward fluxes, so that the code is more readable. + Added: analytic upward fluxes in the case of a diffuse ground reflection. 2008/01/16 + Modified: nasty bug in routine "analytic_NER()": ground-space net exchange rate was not computed using routine "NERd_gs()", which resulted in an incorrect value. ======================= Version 3.4.4 2008/05/30 + Modified: computation of analytic gas-space NER and sensitivities of gas-space NER, because effects of ground reflexion were not taken into account. ======================= Version 3.4.5 2008/07/15 + Added: computation of upward and downward fluxes, per narrowband. Results are recorded in files "results/Flux_asc_mono-nu.txt" and "results/Flux_asc_mono-nu.txt". + Added: computation of transmittivities and reflectivities. WARNING: these results are valid within the approximation of a cold media (cold gas between hot plates). This means that simulations must be run with a null temperature for gas and space (only ground temperature must be non-null). Files are: - "results/total_transm_refl.txt": fraction of total energy emitted by the ground that is transmitted to space (+ its uncertainty), fraction of total energy emitted by the ground that is reflected back to the ground (+ its uncertainty). - "results/spectral_transm_refl.txt": idem, per narrowband interval. + Added: computation of angular transmittivities and reflectivities. Files are: - "results/Flux_asc_int_ang.txt": per interface, lower and higher limits of angular sector, fraction of energy emitted by the ground that is transmitted to this interface, and its uncertainty. - "results/Flux_des_int_ang.txt": idem, for the fraction of energy emitted by the ground that was backstattered at this interface. For the last two files, angle 0 (or 2*pi) is the downward vertical, angle pi is the upward vertical. Angles are > pi/2 for transmitted energy (Flux_asc_int_ang.txt), angles are lower that pi/2 or greater than 3*pi/2 for backscattered energy (Flux_des_int_ang.txt). + Added: a new parameter in the "data.in" file: the number of angular sectors that must be used for the discretization of the [0:pi] interval. 2008/07/17 + Added: a new parameter in the "options.in" file: the possibility for the user to specify an input flux at ground level, and at space level, per narrowband interval. This enables the possibility to use an upward flux at ground level that is different from the Planck intensity. Also, now KARINE will be able to make computations in the visible part of the spectrum (input flux at space level different from the Planck intensity). Finaly, when a value of "1" is specified a ground level, "0" at space level, and the temperature profile within the gas is null, this will enable a correct computation of transmittivities and reflectivities of the atmosphere.