1. General Information
1.1 What is SOCRATES?
The general idea behind SOCRATES is to provide a suite of radiative transfer codes (or better a versatile radiative transfer code) that can be used to calculate heating rates, radiances or fluxes along the atmosphere. It is built to be reasonably fast, and indeed it includes several possible approximations to perform calculations. These options are introduced to the calculation routines with specific flags and parameters. Part of the core of the suite relies in spectral files that contains the main spectral information for the code. A key point here is that it allows to share, in this files, the same spectral information which is included on the radiative schemes of regional and global climate models used by Met Office (like HadGem, HadCm, HadAm, the Global Atmosphere Model etc). Therefore it is at the end a very convenient global working framework.
1.2 What is SOCRATES-RF?
SOCRATES-RF used the radiance-core of SOCRATES to calculate instantaneous radiative forcing (IRF) and/or stratospherically adjusted radiative forcing with fixed dynamical heating approach. However, it also refactor (changes) how the user have access to this radiance core providing a different user-interface to use the SOCRATES itself. This is done for several reasons:
It is difficult to have two versions of SOCRATES on the same machine/user due to possible conflicts of environmental variables.
Portability is conditioned by the additional codes/scripts.
The scripts defining a set up for the calculation are a list of numbers so they are not human oriented. A possible consequence is that errors in the set up of a calculation are more easy.
The netcdf input mode requires a netcdf file for each variable to be passed to the radiative transfer code. This means that a large number of files are stored. It is possible that more physical space is required because the dimension fields are repeated for each variable in each file. At the end portability might be limited as well. Note, however that an important advantage on this approach is on calculation of radiative forcings is that it is needed to replace just one file specific of the variable under study (in future versions of SOCRATES-RF this should be a property to be kept and it is a current task to be done).
A new design has been created for SOCRATES-RF based on the following principles:
A single executable without requirements of additional scripts to perform calculations: We don’t need now external scripts or environmental variables.
A transparent and user-oriented method to introduce the setting of the calculation: therefore we expect less errors creating the set up.
An input based on a single netcdf file: we avoid too many files but also possible errors mixing files of several simulations.
An output based on a single netcdf file. Currently it saves the output and all the inputs together in a single netcdf file, but it is being designed improvement in which the user can select properties of the outputs.
A new information method for the user based on terminal outputs and LOGS files: it aims for better control on what is being done, help to improve/debug the code.
Comments and explanations inside the code, supported with a DOXYGEN documentation system (it is being implemented)
Currently an locally a Trac environment has been set up to provide a framework to document problems and improvements.
2. How is SOCRATES-RF organized
At source code level, SOCRATES-RF, added new source files that created another new executable within SOCRATES. So the user will keep the traditional SOCRATES programs and in addition a new executable code with the principles described above.
Most of the new sources files are named with an rf at the beginning, so they cannot not be confused with others SOCRATES files although they are on the same folder structure. Additional external GNU libraries has been also added to manage, for example, data-time objects.
Beyond the code itself also I have developed a diagnostic-tool based on Python with is able to obtain quick information of the netcdf outputs and create diagnostic plots
3. Is SOCRATES-RF validated?
Yes, we have compared the fluxes on a set of testing profiles and compared SOCRATES-RF with two other different codes. The same applies to calculations of instantaneous radiative forcing. More information can be found on the validation page.