meso-web

Sources of the |Méso|Star> website
git clone git://git.meso-star.fr/meso-web.git
Log | Files | Refs | README | LICENSE

commit 35b422e400bb18100de6d5973e88a51f0fd8cf04
parent 439427c4d6681d9929676de25864fa89c759c0ad
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Fri, 18 Jul 2025 18:12:37 +0200

ART: begin the markdown translation

Diffstat:
Mart/Makefile | 8++++----
Dart/art.html.in | 68--------------------------------------------------------------------
Aart/art.md | 64++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mart/art_build.sh | 8++++----
Dart/hr_ppart.html.in | 135-------------------------------------------------------------------------------
Aart/hr_ppart.md | 115+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dart/kdistribution.html.in | 85-------------------------------------------------------------------------------
Aart/kdistribution.md | 83+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dart/kspectrum.html.in | 176-------------------------------------------------------------------------------
Aart/kspectrum.md | 169+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
10 files changed, 439 insertions(+), 472 deletions(-)

diff --git a/art/Makefile b/art/Makefile @@ -73,19 +73,19 @@ art_build.sh: ../meso-menu.sh ################################################################################ # html ################################################################################ -art.html: art.html.in art_build.sh +art.html: art.md art_build.sh @echo "Building $@" @$(SHELL) art_build.sh overview > $@ -kspectrum.html: kspectrum.html.in art_build.sh Makefile $(KSPECTRUM_IMG) +kspectrum.html: kspectrum.md art_build.sh Makefile $(KSPECTRUM_IMG) @echo "Building $@" @$(SHELL) art_build.sh kspectrum $(KSPECTRUM_VERSION) > $@ -kdistribution.html: kdistribution.html.in art_build.sh Makefile +kdistribution.html: kdistribution.md art_build.sh Makefile @echo "Building $@" @$(SHELL) art_build.sh kdistribution $(KDISTRIBUTION_VERSION) > $@ -hr_ppart.html: hr_ppart.html.in art_build.sh $(HR_PPART_IMG) +hr_ppart.html: hr_ppart.md art_build.sh $(HR_PPART_IMG) @echo "Building $@" @$(SHELL) art_build.sh hr_ppart > $@ diff --git a/art/art.html.in b/art/art.html.in @@ -1,68 +0,0 @@ -<header> - <h1>Atmospheric Radiative Transfer</h1> -</header> - -<p>We propose a number of open-source codes selected within our -<b>A</b>tmospheric <b>R</b>adiative <b>T</b>ransfer toolchain. Each code is -released under the copyleft licenses, which means anyone has the right to modify -and redistribute the code within specific conditions; please refer to their -license for details.</p> - -The codes currently available are briefly described bellow. - -<h3><a href="kspectrum.html">Kspectrum</a></h3> - -<p>produces high-resolution synthetic spectra of any gas mixture, in arbitrary -thermodynamic conditions (pressure, temperature and molar composition) from -public spectroscopic databases. Please note this code does NOT compute -application-specific opacities (collision-induced absorption, continua, ...) -and does NOT perform radiative transfer computations. This is all about adding -energetic transitions contributions.</p> - -<h3><a href="kdistribution.html">Kdistribution</a></h3> - -<p>produces k-distribution data sets from the high-resolution spectra that have -been produced by kspectrum. The output spectral data is intended to be used -subsequently by radiative transfer codes that are based on the k-distribution -spectral model.</p> - -<h3><a href="hr_ppart.html">HR_PPart</a></h3> - -<p>performs atmospheric radiative transfer computations using high-resolution -spectra produced by kspectrum. This code is based on analytic radiative -transfer solutions, and is suitable for non-scattering atmospheres: in the case -of the terrestrial atmosphere, it means in the LW, and for clear-sky -configurations only. This version is intended to be used in the case of the -terrestrial atmosphere: it can compute collision-induced opacities and also the -water vapour continuum, in order to add these opacities to high-resolution -spectra, before actually performing radiative transfer computations.</p> - -<h3><a href="ppart_lw.html">PPart_LW</a></h3> - -<p>performs atmospheric radiative transfer computations using the -k-distribution spectral model, in the LW part of the spectrum. This code is -based on the same analytic solutions of radiative transfer than HR_PPart. It -was recently updated to use a variable quadrature order in each spectral -interval. The atmosphere is supposed to absorb and emit radiation (LW -computation).</p> - - -<h3><a href="ppart_sw.html">PPart_SW</a></h3> - -<p>performs atmospheric radiative transfer computations using the -k-distribution spectral model, in the SW part of the spectrum. Even if it is -based on the same analytic radiative transfer solutions than HR_PPart and -PPart_LW, and should therefore not be suitable for the SW range because of -Rayleigh scattering, we still maintain this tool as a toy model: the atmosphere -is supposed to absorb solar radiation only: scattering and self-emission are -neglected.</p> - -<h3><a href="karine.html">Karine</a></h3> - -<p>performs atmospheric radiative transfer computations using the -k-distribution spectral model, in the LW part of the spectrum. This code is -based on a Monte-Carlo algorithm, which means scattering (both by the gas and -by clouds) is taken into account. A inhomogeneous atmosphere is stratified into -a succession of homogeneous layers, that can also contain cloud particles and -aerosol particles.</p> - diff --git a/art/art.md b/art/art.md @@ -0,0 +1,64 @@ +# Atmospheric Radiative Transfer + +We propose a number of open-source codes selected within our +*A*tmospheric *R*adiative *T*ransfer toolchain. +Each code is released under the copyleft licenses, which means anyone +has the right to modify and redistribute the code within specific +conditions; please refer to their license for details. + +The codes currently available are briefly described bellow : + +- [Kspectrum](kspectrum.html) produces high-resolution synthetic spectra + of any gas mixture, in arbitrary thermodynamic conditions (pressure, + temperature and molar composition) from public spectroscopic + databases. + Please note this code does *NOT* compute application-specific + opacities (collision-induced absorption, continua, ...) and does *NOT* + perform radiative transfer computations. + This is all about adding energetic transitions contributions. + +- [Kdistribution](kdistributio.html) produces k-distribution data sets + from the high-resolution spectra that have been produced by kspectrum. + The output spectral data is intended to be used subsequently by + radiative transfer codes that are based on the k-distribution spectral + model. + +- [HR\_PPart](hr_ppart.html) performs atmospheric radiative transfer + computations using high-resolution spectra produced by kspectrum. + This code is based on analytic radiative transfer solutions, and is + suitable for non-scattering atmospheres: in the case of the + terrestrial atmosphere, it means in the LW, and for clear-sky + configurations only. + This version is intended to be used in the case of the terrestrial + atmosphere: it can compute collision-induced opacities and also the + water vapour continuum, in order to add these opacities to + high-resolution spectra, before actually performing radiative transfer + computations. + +- [PPart\_LW](ppart_lw.html) performs atmospheric radiative transfer + computations using the k-distribution spectral model, in the LW part + of the spectrum. + This code is based on the same analytic solutions of radiative + transfer than HR\_PPart. + It was recently updated to use a variable quadrature order in each + spectral interval. + The atmosphere is supposed to absorb and emit radiation (LW + computation). + +- [PPart\_SW](ppart_sw.html) performs atmospheric radiative transfer + computations using the k-distribution spectral model, in the SW part + of the spectrum. + Even if it is based on the same analytic radiative transfer solutions + than HR\_PPart and PPart\_LW, and should therefore not be suitable for + the SW range because of Rayleigh scattering, we still maintain this + tool as a toy model: the atmosphere is supposed to absorb solar + radiation only: scattering and self-emission are neglected. + +- [Karine](karine.html) performs atmospheric radiative transfer + computations using the k-distribution spectral model, in the LW part + of the spectrum. + This code is based on a Monte-Carlo algorithm, which means scattering + (both by the gas and by clouds) is taken into account. + A inhomogeneous atmosphere is stratified into a succession of + homogeneous layers, that can also contain cloud particles and aerosol + particles. diff --git a/art/art_build.sh b/art/art_build.sh @@ -20,7 +20,7 @@ overview() { print_header -s ART -n Overview -r ../ - cat art.html.in + md2html art.md print_footer } @@ -32,7 +32,7 @@ kspectrum() fi print_header -s ART -n Kspectrum -r ../ - VERSION="$1" envsubst < kspectrum.html.in + sed "s/@VERSION@/$1/g" kspectrum.md | md2html print_footer } @@ -44,14 +44,14 @@ kdistribution() fi print_header -s ART -n Kdistribution -r ../ - VERSION="$1" envsubst < kdistribution.html.in + sed "s/@VERSION@/$1/g" kdistribution.md | md2html print_footer } hr_ppart() { print_header -s ART -n HR_PPart -r ../ - cat hr_ppart.html.in + md2html hr_ppart.md print_footer } diff --git a/art/hr_ppart.html.in b/art/hr_ppart.html.in @@ -1,135 +0,0 @@ -<header> - <h1>HR PPart - <span class=subtitle> - High-Resolution Plane-Parallel atmospheric radiative transfer - </span> - </h1> -</header> - -<div class="news"> - <p><b>Download HR_PPart</b></p> - <ul> - <li>Sources: - <a href="downloads/hr_ppart.tgz">tarball</a> / - <a href="downloads/hr_ppart.tgz.sig">pgp</a></li> - </ul> -</div> - -<p>The purpose of HR_PPart is to perform radiative transfer computations using -high-resolution spectra that have been produced using <a -href="kspectrum.html">Kspectrum</a>. Radiative transfer will actually be -computed for every wavenumber that defines the input high-resolution spectra. -This code is based on analytic radiative transfer solutions that are valid only -in the case of a emitting and absorbing, but non-scattering, atmosphere. This -code should therefore be used, in the case of the terrestrial atmosphere, for -clear-sky LW computations only. However, this code provides the possibility to -use cloud data: the scattering optical thickness is then partly integrated in -the absorption optical thickness. This is only an approximation, not intended -to provide accurate results. Reference results are only achieved for a purely -absorbing atmosphere.</p> - -<h2>Installation</h2> - -<div class="img" style="width: 20em"> - <a href="emission_altitude_500-505.svg"> - <img src="emission_altitude_500-505.svg" alt="emission-altitude_500-505"> - </a> - <div class="caption"> - Emission altitude signal in the [500-505] inv. cm spectral range, for a - Mid-Latitude Summer standard atmosphere. - </div> -</div> - -<p>Download and extract the archive (<code>tar -zxvf hr_ppart.tgz</code>); then -move into the HR_PPart directory, and use the <code>make all</code> command to -compile. You should use the <code>make clean</code> command in the case you -want to recompile from scratch only (when include files are modified). If only -source files are modified, the <code>make all</code> command will recompile -modified files.</p> - -<p>HR_PPart has been parallelized, which means you will have to launch it using -the "mpirun" command:</p> - -<pre class=code> -mpirun -np &lt;NPROCS&gt; ./analytic_RT.exe -</pre> - -<p>with <code>&lt;NPROCS&gt;</code> the number of processes requested for the -computation; MacOS users might encounter a error where the OS considers the -user requested a number of processes higher than recommended. You can bypass it -using the <code>-oversubscribe</code> option:</p> - -<pre class=code> -mpirun -oversubscribe -np &lt;NPROCS&gt;./analytic.exe -</pre> - -<p><b>Prerequistes</b>: only a fortran compiler is needed (no external -libraries). the "gfortran" compiler has been used for development, but other -common compilers should work too (ifort, pgfortran, <i>etc.</i>).</p> - -<h2>Usage</h2> - -<div class="img" style="width: 20em"> - <a href="Te_signal_500-505.svg"> - <img src="Te_signal_500-505.svg" alt="Te_signal_500-505"> - </a> - <div class="caption"> - Emission temperature signal in the [500-505] inv. cm spectral range, for a - Mid-Latitude Summer standard atmosphere. - </div> -</div> - -<p>Before performing a computation, you should specify where high-resolution -spectra of interest are located: you need to provide a link named -<code>hires_spectra</code> within the <code>/data</code> directory. This link -should be pointing to a directory that contains all spectra produced by -Kspectrum for a given atmospheric profile, in addition to the -<code>composition.in</code> and <code>molparam.in</code> files used by -Kspectrum in order to produce these spectra. This directory should also contain -a simple ascii file named <code>profile_parameters.in</code> with the following -structure:</p> - -<pre class=code> -Input data for program "analytic_RT" - -Temperature of ground (K) -294.0D+0 -Temperature of space (K) -3.0D+0 -Ground emissivity -1.0D+0 -</pre> - -Simulation input is provided through the <code>data.in</code> and -<code>options.in</code> files (located in the main <code>HR_PPart</code> -directory): - -<ul> - <li> the <code>options.in</code> file provides the possibility to perform a - angular integration, or perform a single-direction radiative transfer - computation. It provides the possibility to use a specular or a diffuse - reflective ground. It provides many options for pre-computing spectral data - (collision-induced opacities, water continuum). The last options provide a - way to disable the computation of time-consuming results, and also to disable - the recording of specific spectral data, which should further speed up the - computation.</li> - - <li> the <code>data.in</code> file lets the user specify the spectral - integration domain, the probe pressure (some results are computed at a given - "probe" pressure level) and the direction to use for a single-direction - radiative transfer computation.</li> -</ul> - -<p>Results are located into the <code>/results</code> directory; several -gnuplot scripts are provided in order to visualise various results.</p> - -<h2>License</h2> - -<p>Copyright &#169; 2014-2018 Centre National de la Recherche Scientifique -(CNRS), <a href="mailto:contact@meso-star.com">|Méso|Star&gt;</a>.</p> - -<p>HR_PPart is free software released under the CeCILL v2.1 license. You are -welcome to redistribute it under certain conditions; refer to the <a -href="http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt">license</a> -for details.</p> - diff --git a/art/hr_ppart.md b/art/hr_ppart.md @@ -0,0 +1,115 @@ +# HR\_PPart + +The purpose of HR\_PPart is to perform radiative transfer computations +using high-resolution spectra that have been produced using +[Kspectrum](kspectrum.html). +Radiative transfer will actually be computed for every wavenumber that +defines the input high-resolution spectra. +This code is based on analytic radiative transfer solutions that are +valid only in the case of a emitting and absorbing, but non-scattering, +atmosphere. +This code should therefore be used, in the case of the terrestrial +atmosphere, for clear-sky LW computations only. +However, this code provides the possibility to use cloud data: the +scattering optical thickness is then partly integrated in the absorption +optical thickness. +This is only an approximation, not intended to provide accurate results. +Reference results are only achieved for a purely absorbing atmosphere. + +[![Emission altitude](emission_altitude_500-505.svg)](emission_altitude_500-505.svg) + +> Emission altitude signal in the [500-505] inv. cm spectral range, for +> a Mid-Latitude Summer standard atmosphere. + +[![Emission temperature](Te_signal_500-505.svg)](Te_signal_500-505.svg) + +> Emission temperature signal in the [500-505] inv. cm spectral range, +> for a Mid-Latitude Summer standard atmosphere. + +## Quick start + +- Sources: [tarball](downloads/hr_ppart.tgz) / + [pgp](downloads/hr_ppart.tgz.sig) + +### Prerequisites + +Only a fortran compiler is needed (no external libraries). +The "gfortran" compiler has been used for development, but other common +compilers should work too (ifort, pgfortran, etc.). + +### Installation + +Download and extract the archive (`tar -zxvf hr_ppart.tgz`); then move +into the HR\_PPart directory, and use the `make all` command to compile. +You should use the `make clean` command in the case you want to +recompile from scratch only (when include files are modified). +If only source files are modified, the `make all` command will recompile +modified files. + +HR\_PPart has been parallelized, which means you will have to launch it +using the "mpirun" command: + + mpirun -np <NPROCS> ./analytic_RT.exe + +with `<NPROCS>` the number of processes requested for the computation; +MacOS users might encounter a error where the OS considers the user +requested a number of processes higher than recommended. +You can bypass it using the `-oversubscribe` option: + + mpirun -oversubscribe -np <NPROCS> ./analytic.exe + +## Usage + +Before performing a computation, you should specify where +high-resolution spectra of interest are located: you need to provide a +link named `hires_spectra` within the `/data` directory. +This link should be pointing to a directory that contains all spectra +produced by Kspectrum for a given atmospheric profile, in addition to +the `composition.in` and `molparam.in` files used by Kspectrum in order +to produce these spectra. +This directory should also contain a simple ascii file named +`profile_parameters.in` with the following structure: + + Input data for program "analytic_RT" + + Temperature of ground (K) + 294.0D+0 + Temperature of space (K) + 3.0D+0 + Ground emissivity + 1.0D+0 + +Simulation input is provided through the `data.in` and `options.in` +files (located in the main `HR_PPart` directory): + +- the `options.in` file provides the possibility to perform a angular + integration, or perform a single-direction radiative transfer + computation. + It provides the possibility to use a specular or a diffuse reflective + ground. + It provides many options for pre-computing spectral data + (collision-induced opacities, water continuum). + The last options provide a way to disable the computation of + time-consuming results, and also to disable the recording of specific + spectral data, which should further speed up the computation. + +- the `data.in` file lets the user specify the spectral + integration domain, the probe pressure (some results are computed at a given + "probe" pressure level) and the direction to use for a single-direction + radiative transfer computation. + +Results are located into the `/results` directory; several +gnuplot scripts are provided in order to visualise various results. + +## License + +Copyright © 2014-2018 Centre National de la Recherche Scientifique (CNRS) +Copyright © 2014-2018 |Méso|Star> +([contact@meso-star.com](mailto:contact@meso-star.com)) + +HR\_PPart is free software released under the CeCILL v2.1 license. +You are welcome to redistribute it under certain conditions; refer to +the +[license](http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt) +for details. + diff --git a/art/kdistribution.html.in b/art/kdistribution.html.in @@ -1,85 +0,0 @@ -<header> - <h1>Kdistribution - <span class=subtitle> - Production of k-distribution data sets - </span> - </h1> -</header> - -<div class="news"> - <p><b>Download Kdistribution ${VERSION}</b></p> - <ul> - <li>Sources: - <a href="downloads/kdistribution_light${VERSION}.tgz">tarball</a> / - <a href="downloads/kdistribution_light${VERSION}.tgz.sig">pgp</a></li> - <li>Installation script: - <a href="downloads/install_kdistribution_light${VERSION}.bash">bash</a></li> - <li>Manual: - <a href="downloads/kdistribution_light${VERSION}_manual.pdf">pdf</a></li> - </ul> -</div> - -<p>Kdistribution computes k-distribution data sets from high-resolution spectra -that have been produced by <a href="kspectrum.html">Kspectrum</a>. The user -should specify some basic information to the code by editing the -<code>options.in</code> and <code>data.in</code> input files:</p> - -<ul> - <li><code>options.in</code>: various quadratures can be selected; a Legendre - quadrature is used by default. Then the quadrature order should be specified, - and various quadrature-dependant parameters can be adjusted. One interesting - option is the possibility to use quadratic splines over high-resolution - spectra instead of a linear interpolation between two successive values of - the absorption coefficient.</li> - - <li><code>data.in</code>: lets the user specify the first and last levels of - the high-resolution spectra set that should be converted to k-distribution - data.</li> -</ul> - -<p>Before using the code, the user should create a link named -<code>hires_spectra</code> within the <code>/data</code> directory; this link -should be pointing to the directory that contains the high-resolution spectra -produced by Kspectrum for a given atmospheric profile, as well as the -<code>composition.in</code> file used by Kspectrum. The <code>data</code> -directory should also contain a file named <code>narrowbands.in</code> used to -describe the spectral intervals over which the k-distribution data set should -be computed. This file has to use the same format as the -<code>narrowbands.in</code> Kspectrum input data file. However, the -<code>narrowbands.in</code> file used by Kdistribution does not necessarily -have to be identical to the file used by Kspectrum.</p> - -<h2>Installation</h2> - -<p>You will have to download both the <code>.tgz</code> file and the -installation script, and place both files in the same directory. Then run the -installation script. This will mainly uncompress the archive.</p> - -<p><b>Prerequisites</b>: all you need is a fortran compiler. The gfortran -compiler is used for development, but compilation should also work with other -fortran compilers (ifort, pgfortran, <i>etc.</i>).</p> - -<p>Then you can try to compile Kdistribution: go to the main Kdistribution -directory, then use the <code>make all</code> command to compile. The most -common sources of failure can be fixed by editing the <code>Makefile</code> -file in order to check compilation options (and more specifically options -related to the target architecture and optimisations). Whenever you modify a -source file, you can re-compile using the <code>make all</code> command. But in -the case you have to modify a include file, you will have to erase all existing -object files first using the <code>make clean</code> command, before -recompiling from scratch using the <code>make all</code> command again.</p> - -<h2>License</h2> - -<p>Copyright &#169; 2014-2018 <a -href="mailto:contact@meso-star.com">|Méso|Star&gt;</a>.<br> -Copyright &#169; 2008-2014 Fondation Sciences et Technologies pour -l'Aéronotique et l'Espace, Institut Mines-Télécom Albi-Carmaux, Centre National -de la Recherche Scientifique (CNRS), Université Bordeaux 1, Université Paul -Sabatier.</p> - -<p>Kdistribution is free software released under the CeCILL v2.1 license. You -are welcome to redistribute it under certain conditions; refer to the <a -href="http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt">license</a> -for details.</p> - diff --git a/art/kdistribution.md b/art/kdistribution.md @@ -0,0 +1,83 @@ +# Kdistribution + +Kdistribution computes k-distribution data sets from high-resolution +spectra that have been produced by [Kspectrum](kspectrum.html). +The user should specify some basic information to the code by editing +the `options.in` and `data.in` input files: + +- `options.in`: various quadratures can be selected; a Legendre + quadrature is used by default. + Then the quadrature order should be specified, and various + quadrature-dependant parameters can be adjusted. + One interesting option is the possibility to use quadratic splines + over high-resolution spectra instead of a linear interpolation between + two successive values of the absorption coefficient. + +- `data.in`: lets the user specify the first and last levels of the + high-resolution spectra set that should be converted to k-distribution + data. + +Before using the code, the user should create a link named +`hires_spectra` within the `/data` directory; this link should be +pointing to the directory that contains the high-resolution spectra +produced by Kspectrum for a given atmospheric profile, as well as the +`composition.in` file used by Kspectrum. +The `data` directory should also contain a file named `narrowbands.in` +used to describe the spectral intervals over which the k-distribution +data set should be computed. +This file has to use the same format as the `narrowbands.in` Kspectrum +input data file. +However, the `narrowbands.in` file used by Kdistribution does not +necessarily have to be identical to the file used by Kspectrum. + + +## Quickstart + +- Sources: [tarball](downloads/kdistribution_light@VERSION@.tgz) / + [pgp](downloads/kdistribution_light@VERSION@.tgz.sig) +- Installation script: [bash](downloads/install_kdistribution_light@VERSION@.bash) +- Manual: [pdf](downloads/kdistribution_light@VERSION@_manual.pdf) + +### Prerequisites + +All you need is a fortran compiler. +The gfortran compiler is used for development, but compilation should +also work with other fortran compilers (ifort, pgfortran, etc.). + +Then you can try to compile Kdistribution: go to the main Kdistribution +directory, then use the `make all` command to compile. +The most common sources of failure can be fixed by editing the +`Makefile` file in order to check compilation options (and more +specifically options related to the target architecture and +optimisations). +Whenever you modify a source file, you can re-compile using the `make +all` command. +But in the case you have to modify a include file, you will have to +erase all existing object files first using the `make clean` command, +before recompiling from scratch using the `make all` command again. + +### Installation + +You will have to download both the `.tgz` file and the installation +script, and place both files in the same directory. +Then run the installation script. +This will mainly uncompress the archive. + + +## Copyright notice + +Copyright © 2014-2018 |Méso|Star> +([contact@meso-star.com](mailto:contact@meso-star.com)) +Copyright © 2008-2014 Centre National de la Recherche Scientifique (CNRS) +Copyright © 2008-2014 Fondation Sciences et Technologies pour l'Aéronotique et l'Espace +Copyright © 2008-2014 Institut Mines-Télécom Albi-Carmaux +Copyright © 2008-2014 Université Bordeaux 1 +Copyright © 2008-2014 Université Paul Sabatier + +## License + +Kdistribution is free software released under the CeCILL v2.1 license. +You are welcome to redistribute it under certain conditions; refer to +the +[license](http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt) +for details. diff --git a/art/kspectrum.html.in b/art/kspectrum.html.in @@ -1,176 +0,0 @@ -<header> - <h1>Kspectrum - <span class=subtitle> - Molecular absorption spectra for arbitrary gas mixtures - </span> - </h1> -</header> - -<div class="news"> - <p><b>Download Kspectrum ${VERSION}</b></p> - <ul> - <li>Sources: - <a href="downloads/kspectrum${VERSION}.tgz">tarball</a> / - <a href="downloads/kspectrum${VERSION}.tgz.sig">pgp</a></li> - <li>Installation script: - <a href="downloads/install_kspectrum${VERSION}.bash">bash</a></li> - <li>Manual: - <a href="downloads/kspectrum${VERSION}_manual.pdf">pdf</a></li> - </ul> -</div> - -<p>Kspectrum computes the synthetic absorption spectrum for a gas mixture in -arbitrary thermodynamic conditions (pressure, temperature and molar -composition) from public spectroscopic databases. The main and only purpose of -the code is to produce high-resolution absorption spectra for a given set of -thermodynamic conditions; in particular, Kspectrum will <b>NOT</b> perform the -following tasks:</p> - -<ul> - <li> compute molecular absorption for any other source than allowed energetic - transitions: even if some limited effort has been put into the representation - of collision-induced absorption and continua, these sources of opacity will - have to be computed separately for each application in a separate step.</li> - - <li> perform radiative transfer computations: one of the main ideas behind - Kspectrum is that the resulting absorption spectra can be used for a wide - variety of applications, possibly in complex 3D scenes (as, for instance, in - combustion engines). Dedicated tools will have to be used in order to solve - radiative transfer; Kspectrum by itself will only be used to produce the - input spectral data.</li> -</ul> - -<div class="img" style="width: 20em"> - <a href="k001.svg"> - <img src="k001.svg" alt="k001"> - </a> - <div class="caption"> - Absorption spectrum for terrestrial air, at ground level, for a - Mid-Latitude Summer standard atmospheric profile. The absorption - coefficient is also provided for each one of the three molecular species - used in the gas mixture (logscale). - </div> -</div> - -<h3>Spectroscopic databases</h3> - -<p>Kspectrum uses the -<a href="http://hitran.org">HITRAN</a> spectroscopic database in -order to retrieve transition parameters (versions 2004, 2008 and 2012). -Additionally, it can use the -<a href="http://hitran.org/hitemp/">HITEMP</a>-2010 and -<a href="ftp://ftp.iao.ru/pub">CDSD</a>-4000 databases (respectively -for water and carbon dioxide) at high-temperature levels. Further development -would be required for additional databases (HITRAN-2016 ? GEISA ?)</p> - -<h3>Reference results</h3> -<p>The main idea behind Kspectrum was initially to develop a code that would -not need to use numerical simplifications such as a line profile truncation -(assuming the distant line-wing profile is well known, which is obviously not -the case). The resulting code was therefore capable of adding the contribution -of every known transition at every wavenumber, in order to produce a value of -the absorption coefficient with a known accuracy; also, a custom spectral -discretisation algorithm was implemented in order to produce a non-uniform -spectral grid according to a second accuracy criteria. Further versions quickly -acquired the possibility to perform a line-wings truncation and use a specified -constant spectral step, but the original algorithms that give the possibility -to compute reference results (in the sense that a numerical accuracy is -provided over resulting spectra) are still available.</p> - -<div class="img" style="width: 20em"> - <a href="tau_cumulated_1180-1200.svg"> - <img src="tau_cumulated_1180-1200.svg" alt="tau-cumul"> - </a> - <div class="caption"> - Plot of the atmospheric cumulated optical depth as a function of - wavenumber, for a clear-sky Mid-Latitude Summer standard terrestrial - atmospheric profile. Two kspectrum results are provided: using a 25 inverse - centimeters truncation of the line profile, and without any truncation. The - same result (with a truncation) obtained from the 4A code is also - presented. - </div> -</div> - -<h3>Physical models</h3> - -<p>This code can take into account the Lorentz and the Voigt line profiles, as -well as common sub-lorentzian corrective profiles. The isotopic composition can -be specified, making this code suitable for non-terrestrial applications. The -code was mainly thought for thermal infrared applications, but absorption -spectra can be produced for any spectral range as long as transition parameters -are available. As a general rule, Kspectrum was designed to remain as -polyvalent as possible; one immediate disadvantage is that special sources of -opacity, such as collision-induced absorption or continua, should be computed -separately for any given application. Also, line-mixing processes have not yet -been taken into consideration, and require further developments.</p> - -<h3>Some neat features</h3> -<p>Every time-consuming step of the computation has been parallelised, even -though the parallel architecture is far from optimal and should require a major -revision: the computation time does not scale very well with the number of -processes because of inter-processes communication, and also it was not thought -for multi-node clusters. But at least Kspectrum will run faster on a reasonably -good single node (approx. 20 cores). Also, the code has been implemented with -the obsessions of:</p> - -<ul> - <li>working with arbitrary large numbers of transitions. For instance, the - CDSD-4000 database holds the parameters for more than 6 hundred millions of - transitions for carbon dioxide; Kspectrum will, in time, eventually compute - the contribution of every transition at every wavenumber of the spectrum.</li> - - <li>being able to resume interrupted runs: whether your PC crashes or Kspectrum - reaches the maximum computation time allowed by the cluster's queue, it will - be possible to resume an interrupted computation instead of starting over from - scratch: as in a video game, Kspectrum performs frequent backups of the - current run.</li> -</ul> - -<h2>Installation</h2> - -<p>You will have to download both the <code>.tgz</code> file and the -installation script, and place both files in the same directory. Then run the -installation script. This will uncompress the archive, compile and run a small -program that will generate an example composition file (for Venus' atmosphere). -The installation script will also try to link Line-by-Line spectroscopic -databases to your new installation of Kspectrum, but will most probably fail if -you are not a frequent Kspectrum user, and you will have to read the -documentation in order to link LBL databases yourself (and probably download -then first if you have not already done so). Please <a -href="mailto:vincent.eymet@meso-star.com">contact us</a> if you want a specific -setup script for your machine so that the linking step is performed when you -download the next version.</p> - -<p><b>Prerequisites:</b> all you need is a fortran compiler. We are using -gfortran for development, but it should also work with other fortran compilers -(ifort, pgfortran, <i>etc.</i>). You should export the name of your fortran -compiler into the F77 environment variable; for instance, using the bash -interpreter:</p> - -<pre class="code"> -export F77=gfortran -</pre> - -<p>Then you can try to compile Kspectrum: go to the main Kspectrum directory, -then use the <code>make all</code> command to compile. The most common sources -of failure can be fixed by editing the "Makefile" file in order to check -compilation options (and more specifically options related to the target -architecture and optimisations). Whenever you modify a source file, you can -re-compile using the <code>make all</code> command. But in the case you have to -modify an include file, you will have to erase all existing object files first -using the <code>make clean</code> command, before recompiling from scratch -using the <code>make all</code> command again.</p> - -<h2>License</h2> - -<p>Copyright &#169; 2014-2018 <a -href="mailto:contact@meso-star.com">|Méso|Star&gt;</a>.<br> -Copyright &#169; 2008-2014 -Fondation Sciences et Technologies pour l'Aéronotique et l'Espace, Institut -Mines-Télécom Albi-Carmaux, Centre National de la Recherche Scientifique -(CNRS), Université Bordeaux 1, Université Paul Sabatier.</p> - -<p>Kspectrum is free software released under the CeCILL v2.1 license. You are -welcome to redistribute it under certain conditions; refer to the <a -href="http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt">license</a> -for details.</p> diff --git a/art/kspectrum.md b/art/kspectrum.md @@ -0,0 +1,169 @@ +# Kspectrum + +Kspectrum computes the synthetic absorption spectrum for a gas mixture +in arbitrary thermodynamic conditions (pressure, temperature and molar +composition) from public spectroscopic databases. +The main and only purpose of the code is to produce high-resolution +absorption spectra for a given set of thermodynamic conditions; in +particular, Kspectrum will *NOT* perform the following tasks: + +- compute molecular absorption for any other source than allowed + energetic transitions: even if some limited effort has been put into + the representation of collision-induced absorption and continua, these + sources of opacity will have to be computed separately for each + application in a separate step. + +- perform radiative transfer computations: one of the main ideas behind + Kspectrum is that the resulting absorption spectra can be used for a + wide variety of applications, possibly in complex 3D scenes (as, for + instance, in combustion engines). + Dedicated tools will have to be used in order to solve radiative + transfer; Kspectrum by itself will only be used to produce the input + spectral data. + +[![Absorption spectrum](k001.svg)](k001.svg) + +> Absorption spectrum for terrestrial air, at ground level, for a +> Mid-Latitude Summer standard atmospheric profile. +> The absorption coefficient is also provided for each one of the three +> molecular species used in the gas mixture (logscale). + +## Spectroscopic databases + +Kspectrum uses the [HITRAN](http://hitran.org) spectroscopic database in +order to retrieve transition parameters (versions 2004, 2008 and 2012). +Additionally, it can use the [HITEMP](http://hitran.org/hitemp/)-2010 +and [CDSD](ftp://ftp.iao.ru/pub)-4000 databases (respectively for water +and carbon dioxide) at high-temperature levels. +Further development would be required for additional databases +(HITRAN-2016 ? GEISA ?). + +## Reference results + +The main idea behind Kspectrum was initially to develop a code that +would not need to use numerical simplifications such as a line profile +truncation (assuming the distant line-wing profile is well known, which +is obviously not the case). +The resulting code was therefore capable of adding the contribution of +every known transition at every wavenumber, in order to produce a value +of the absorption coefficient with a known accuracy; also, a custom +spectral discretisation algorithm was implemented in order to produce a +non-uniform spectral grid according to a second accuracy criteria. +Further versions quickly acquired the possibility to perform a +line-wings truncation and use a specified constant spectral step, but +the original algorithms that give the possibility to compute reference +results (in the sense that a numerical accuracy is provided over +resulting spectra) are still available. + +[![Cumulated optical depth](tau_cumulated_1180-1200.svg)](tau_cumulated_1180-1200.svg) + +> Plot of the atmospheric cumulated optical depth as a function of +> wavenumber, for a clear-sky Mid-Latitude Summer standard terrestrial +> atmospheric profile. +> Two kspectrum results are provided: using a 25 inverse centimeters +> truncation of the line profile, and without any truncation. +> The same result (with a truncation) obtained from the 4A code is also +> presented. + +## Physical models + +This code can take into account the Lorentz and the Voigt line profiles, +as well as common sub-lorentzian corrective profiles. +The isotopic composition can be specified, making this code suitable for +non-terrestrial applications. +The code was mainly thought for thermal infrared applications, but +absorption spectra can be produced for any spectral range as long as +transition parameters are available. +As a general rule, Kspectrum was designed to remain as polyvalent as +possible; one immediate disadvantage is that special sources of opacity, +such as collision-induced absorption or continua, should be computed +separately for any given application. +Also, line-mixing processes have not yet been taken into consideration, +and require further developments. + +## Some neat features + +Every time-consuming step of the computation has been parallelised, even +though the parallel architecture is far from optimal and should require +a major revision: the computation time does not scale very well with the +number of processes because of inter-processes communication, and also +it was not thought for multi-node clusters. +But at least Kspectrum will run faster on a reasonably good single node +(approx. 20 cores). + +Also, the code has been implemented with the obsessions of: + +- working with arbitrary large numbers of transitions. + For instance, the CDSD-4000 database holds the parameters for more + than 6 hundred millions of transitions for carbon dioxide; + Kspectrum will, in time, eventually compute the contribution of every + transition at every wavenumber of the spectrum. + +- being able to resume interrupted runs: whether your PC crashes or + Kspectrum reaches the maximum computation time allowed by the + cluster's queue, it will be possible to resume an interrupted + computation instead of starting over from scratch: as in a video game, + Kspectrum performs frequent backups of the current run. + +## Quickstart + +- Sources: [tarball](downloads/kspectrum@VERSION@.tgz) / + [pgp](downloads/kspectrum@VERSION@.tgz.sig) +- Installation script: [bash](downloads/install_kspectrum@VERSION@.bash) +- Manual: [pdf](downloads/kspectrum@VERSION@_manual.pdf) + +### Preqrequisites + +All you need is a fortran compiler. +We are using gfortran for development, but it should also work with +other fortran compilers (ifort, pgfortran, etc.). +You should export the name of your fortran compiler into the F77 +environment variable; for instance, using the bash interpreter: + + export F77=gfortran + +Then you can try to compile Kspectrum: go to the main Kspectrum +directory, then use the `make all` command to compile. +The most common sources of failure can be fixed by editing the +"Makefile" file in order to check compilation options (and more +specifically options related to the target architecture and +optimisations). +Whenever you modify a source file, you can re-compile using the `make +all` command. +But in the case you have to modify an include file, you will have to +erase all existing object files first using the `make clean` command, +before recompiling from scratch using the `make all` command again. + +### Installation + +You will have to download both the `.tgz` file and the installation +script, and place both files in the same directory. +Then run the installation script. +This will uncompress the archive, compile and run a small program that +will generate an example composition file (for Venus' atmosphere). +The installation script will also try to link Line-by-Line spectroscopic +databases to your new installation of Kspectrum, but will most probably +fail if you are not a frequent Kspectrum user, and you will have to read +the documentation in order to link LBL databases yourself (and probably +download then first if you have not already done so). +Please [contact us](mailto:contact@meso-star.com) if you want a specific +setup script for your machine so that the linking step is performed when +you download the next version. + +## Copyright notice + +Copyright © 2014-2018 |Méso|Star> +([contact@meso-star.com](mailto:contact@meso-star.com)) +Copyright © 2008-2014 Centre National de la Recherche Scientifique (CNRS) +Copyright © 2008-2014 Fondation Sciences et Technologies pour l'Aéronotique et l'Espace +Copyright © 2008-2014 Institut Mines-Télécom Albi-Carmaux +Copyright © 2008-2014 Université Bordeaux 1 +Copyright © 2008-2014 Université Paul Sabatier + +## License + +Kspectrum is free software released under the CeCILL v2.1 license. +You are welcome to redistribute it under certain conditions; refer to +the +[license](http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt) +for details.