| 1 | version 1.6.1 |
|---|
| 2 | - radiation_cloud:set_overlap_param now has alternative form in |
|---|
| 3 | which input decorrelation_length may vary with column, useful for |
|---|
| 4 | models with a latitudinal or other dependence |
|---|
| 5 | - radiation_ecckd:calc_optical_depth has vector version for NEC |
|---|
| 6 | - test/ckdmip can now run CKDMIP scenarios of concentrations |
|---|
| 7 | downloaded (see Makefile) |
|---|
| 8 | - ecCKD gas optics can now be used with older cloud/aerosol optics |
|---|
| 9 | files provided they have the same number of bands |
|---|
| 10 | - Added dependence to Makefile ensuring libradiation built after |
|---|
| 11 | libifsrrtm, ensuring that multi-threaded make works |
|---|
| 12 | - Added radiation_driver:do_save_cloud_optics namelist entry which |
|---|
| 13 | saves look-up table averaged to the bands of the radiation scheme |
|---|
| 14 | (general cloud optics only) |
|---|
| 15 | - Increased security value in single-precision SW |
|---|
| 16 | reflectance-transmittance calculation from 1e-12 to 1e-6 |
|---|
| 17 | |
|---|
| 18 | version 1.6.0 (27 April 2023) |
|---|
| 19 | - Removed compiler flag specifying to load unformated Fortran |
|---|
| 20 | files as big endian: now the OPEN commands for the files RADRRTM |
|---|
| 21 | and RADSRTM specify CONVERT='BIG_ENDIAN' in rrtm_kgb1.F90 and |
|---|
| 22 | srtm_kgb16.F90 |
|---|
| 23 | - make test_programs to make test programs in driver directory |
|---|
| 24 | - Unpublished "Baran" and "Baran2017" ice optics models are |
|---|
| 25 | deprecated, only accessible with namelist entries |
|---|
| 26 | "Baran-EXPERIMENTAL" and "Baran2017-EXPERIMENTAL" |
|---|
| 27 | - Wavelength tolerance for requesting monochromatic aerosol info |
|---|
| 28 | increased from 1% to 2% |
|---|
| 29 | - test/ifs directory contains configCY*.nam files corresponding to |
|---|
| 30 | more previous operational IFS cycles, and added |
|---|
| 31 | ecrad_meridian_default_out_REFERENCE.log indicating how the |
|---|
| 32 | reference file (now updated) was produced |
|---|
| 33 | - Default generalized aerosol optics file changed to |
|---|
| 34 | aerosol_ifs_49R1_20230119.nc |
|---|
| 35 | |
|---|
| 36 | version 1.5.1 (8 December 2022) |
|---|
| 37 | - Added Makefile_include.intel_atos to match compiler options on |
|---|
| 38 | ECMWF supercomputer, plus "-heap-arrays" which is necessary for |
|---|
| 39 | - Fix occasional crash in single-precision fast_expm_exchange_3 |
|---|
| 40 | for shortwave SPARTACUS entrapment |
|---|
| 41 | - Fixed radiation_random_numbers.F90 in single precision |
|---|
| 42 | - Removed Dr Hook implementation for profiling; instead optionally |
|---|
| 43 | call make with FIATDIR to specify the location of ECMWF's fiat |
|---|
| 44 | library which contains Dr Hook |
|---|
| 45 | - Added "make ifsdriver" which compiles ifs/libifs.a and |
|---|
| 46 | bin/ecrad_ifs to demonstrate use of IFS's radiation_scheme and |
|---|
| 47 | setup_radiation_scheme; test with make test_ifsdriver in |
|---|
| 48 | test/ifs. Note that the input file must have variables with the |
|---|
| 49 | dimensions expected in the IFS, as in test/ifs/ecrad_meridian.nc. |
|---|
| 50 | - Added "make ifsdriver_blocked" from Balthasar Reuter which |
|---|
| 51 | compiles bin/ecrad_ifs_blocked, gathering the input data into |
|---|
| 52 | blocks of length driver_config%nblocksize as in the IFS, which can |
|---|
| 53 | benefit memory locality |
|---|
| 54 | - Added capability for ecCKD to represent the solar cycle in solar |
|---|
| 55 | spectral irradiance, via "radiation" namelist parameter |
|---|
| 56 | use_spectral_solar_cycle and new file ssi_nrl2.nc (which can be |
|---|
| 57 | overridden with ssi_override_file_name). Caller provides |
|---|
| 58 | single_level%spectral_solar_cycle_multiplier from -1 (solar |
|---|
| 59 | minimum) to +1 (solar maximum), or "radiation_driver" namelist |
|---|
| 60 | parameter solar_cycle_multiplier_override |
|---|
| 61 | - If use_spectral_solar_cycle then if also |
|---|
| 62 | use_updated_solar_spectrum, the mean solar irradiance per g-point |
|---|
| 63 | will be updated from the solar cycle file. This only works for |
|---|
| 64 | gas-optics models from ecCKD >= 1.4, since these store the solar |
|---|
| 65 | spectrum on a wavenumber grid. |
|---|
| 66 | - Added get_sw_mapping, which returns a matrix to map from fluxes |
|---|
| 67 | in solar bands to fluxes in user-specified wavelength intervals, |
|---|
| 68 | useful for (for example) computing spectral fluxes for ocean |
|---|
| 69 | biology or UV index |
|---|
| 70 | - Added demonstration of get_sw_mapping: radiation_driver namelist |
|---|
| 71 | now accepts sw_diag_wavelength_bound, which takes a list of |
|---|
| 72 | wavenumber bounds for shortwave diagnostics. These are written to |
|---|
| 73 | radiation_driver: sw_diag_file_name, or sw_diagnostics.nc by |
|---|
| 74 | default. Test with "make test_ecckd_diag" in test/ifs. |
|---|
| 75 | - do_toa_spectral_flux namelist option stores top-of-atmosphere |
|---|
| 76 | spectral flux diagnostics per band |
|---|
| 77 | |
|---|
| 78 | version 1.5.0 (22 May 2022) |
|---|
| 79 | - Added ecCKD gas optics scheme and generalized cloud description |
|---|
| 80 | - Optimized the LW Tripleclouds solver for cloud but not aerosol |
|---|
| 81 | scattering |
|---|
| 82 | - Added general spectral description of aerosol, compatible with |
|---|
| 83 | ecCKD gas optics model |
|---|
| 84 | - Added 50 CKDMIP test profiles in test/ckdmip directory |
|---|
| 85 | - General cloud and aerosol optics controlled with |
|---|
| 86 | use_general_cloud_optics and use_general_aerosol_optics |
|---|
| 87 | - Added use_thick_cloud_spectral_averaging config vector |
|---|
| 88 | corresponding to cloud_type_name |
|---|
| 89 | - Generalized clouds and aerosols can compute optical properties |
|---|
| 90 | per g-point or band, controlled with |
|---|
| 91 | do_cloud_aerosol_per_[lw|sw]_g_point |
|---|
| 92 | - Default is to average albedo/emissivity source data to ecRad |
|---|
| 93 | bands/g-points, rather than just to find the nearest value |
|---|
| 94 | (i.e. do_nearest_spectral_sw_albedo and |
|---|
| 95 | do_nearest_spectral_lw_emiss are now false by default) |
|---|
| 96 | - Replaced dry_sw_aerosol_mass_extinction and |
|---|
| 97 | aerosol_sw_extinction routines with dry_aerosol_mass_extinction |
|---|
| 98 | and aerosol_extinction, which take wavelength rather than band |
|---|
| 99 | number |
|---|
| 100 | - "make GPROF=1" compiles with -pg option for the GNU profiler |
|---|
| 101 | - For consistency with IFS, "PARKIND1_SINGLE" is now the |
|---|
| 102 | preprocessor variable to detect single precision |
|---|
| 103 | - "make OMPFLAG=-DNO_OPENMP" compiles without OpenMP |
|---|
| 104 | - Generalized aerosol has ability to read old-style aerosol |
|---|
| 105 | property files in predefined (e.g. RRTM) bands into the spectral |
|---|
| 106 | intervals of the ecCKD gas optics scheme |
|---|
| 107 | - Added radiation_driver:do_save_aerosol_optics namelist option to |
|---|
| 108 | save aerosol optical properties in aerosol_optics.nc, and "make |
|---|
| 109 | test_aerosol_averaging" in test/ifs to test the various |
|---|
| 110 | combinations of gas optics scheme and aerosol optics file |
|---|
| 111 | - Added do_weighted_surface_mapping, which if false does not |
|---|
| 112 | weight the surface albedo/emissivity by the solar/terrestrial |
|---|
| 113 | reference Planck function, thereby reproducing ecRad-1.4.x |
|---|
| 114 | behaviour |
|---|
| 115 | - Added Fu-Muskatel ice optics model, which can be used by the |
|---|
| 116 | generalized cloud optics and extends the Fu model to larger |
|---|
| 117 | effective radius |
|---|
| 118 | |
|---|
| 119 | version 1.4.2 (15 October 2021) |
|---|
| 120 | - radiation_driver:do_write_double_precision writes fluxes as |
|---|
| 121 | doubles in NetCDF file, which reduces noise in heating rate |
|---|
| 122 | differences between two experiments |
|---|
| 123 | - Added use_vectorizable_generator for vectorizable random number |
|---|
| 124 | generator that speeds-up McICA solver on NEC hardware |
|---|
| 125 | - Numerous modifications to improve performance on DWD's NEC but |
|---|
| 126 | which don't affect performance on Intel |
|---|
| 127 | - Removed unused radsurf code - use SPARTACUS-Surface instead |
|---|
| 128 | |
|---|
| 129 | version 1.4.1 (17 March 2021) |
|---|
| 130 | - Added Jupyter notebook to the practical directory |
|---|
| 131 | |
|---|
| 132 | version 1.4.0 (5 November 2020) |
|---|
| 133 | - Replaced OpenIFS license with Apache License (version 2.0) and |
|---|
| 134 | added copyright statements to each file |
|---|
| 135 | - Bug fix in cum_cloud_cover_exp_exp that was triggered if exactly |
|---|
| 136 | zero overlap parameter between cloud objects |
|---|
| 137 | - Corrected the metadata in fu_ice_scattering_rrtm.nc for the |
|---|
| 138 | meaning of the coefficients representing the single-scattering |
|---|
| 139 | albedo (or mass absorption coefficient) of ice in the longwave |
|---|
| 140 | - Fixed bug in McICA solvers in single-precision where ssa*od can |
|---|
| 141 | underflow to zero even when the terms individually are larger than |
|---|
| 142 | zero |
|---|
| 143 | |
|---|
| 144 | version 1.3.1 (10 August 2020) |
|---|
| 145 | - Functional Dr Hook added by Ioan Hadade, enabled with "make |
|---|
| 146 | DR_HOOK=1" |
|---|
| 147 | - Fix from Daniel Rieger in ifsrrtm/srtm_taumol[16-29].F90, |
|---|
| 148 | correcting a bug that violated bit-reproducibility when changing |
|---|
| 149 | the number of MPI tasks |
|---|
| 150 | - Makefile_include.cray added by Ioan Hadade so that "make |
|---|
| 151 | PROFILE=cray" uses the Cray compiler, if available |
|---|
| 152 | - Added securities to Fu ice optics: re <= 100um and g < 1 |
|---|
| 153 | - Added securities to SOCRATES liquid optics: 1.2um <= re <= 50um |
|---|
| 154 | |
|---|
| 155 | version 1.3.0 (20 March 2020) |
|---|
| 156 | - Corrected shortwave band fluxes in Cloudless and Homogeneous |
|---|
| 157 | solvers, which scaled the direct downwelling spectral flux by the |
|---|
| 158 | cosine of the solar zenith angle twice |
|---|
| 159 | - Write "experiment" global attribute to output if |
|---|
| 160 | radiation_driver variable "experiment_name" is present |
|---|
| 161 | - Previously overlap_decorr_length_scaling=0.0 was ignored; now it |
|---|
| 162 | implements random overlap |
|---|
| 163 | - Added the ecRad practical exercises to the "practical" directory |
|---|
| 164 | - Removed non-functioning hooks to PSRAD code |
|---|
| 165 | |
|---|
| 166 | version 1.2.0 (30 October 2019) |
|---|
| 167 | - Increased default minimum cloud effective size to 100 m |
|---|
| 168 | (although 500 m is used in the IFS for better SPARTACUS |
|---|
| 169 | stability) |
|---|
| 170 | - Reduced max_cloud_od to 16 for SPARTACUS stability |
|---|
| 171 | - Allow water vapour to be specified by "h2o_mmr" or "h2o_vmr" if |
|---|
| 172 | "q" not present in input file |
|---|
| 173 | - Fixed effective_size_scaling namelist variable, broken in v1.1.8 |
|---|
| 174 | - cos_solar_zenith_angle not needed if do_sw=false |
|---|
| 175 | - skin_temperature set to lowest air temperature if not provided |
|---|
| 176 | - Warning issued if default solar_irradiance of 1366 is used |
|---|
| 177 | - Added radiation_driver namelist variable "vmr_suffix_str" |
|---|
| 178 | (default "_vmr") to enable the expected variable names containing |
|---|
| 179 | gas volume mixing ratios to be overridden |
|---|
| 180 | - Use the nf-config utility to set NETCDF_INCLUDE and NETCDF_LIB |
|---|
| 181 | |
|---|
| 182 | version 1.1.10 (8 April 2019) |
|---|
| 183 | - Renamed occurrences of "encroachment" with "entrapment" to match |
|---|
| 184 | terminology of Hogan et al. entrapment paper, but namelist |
|---|
| 185 | interface still accepts sw_encroachment_name (sw_entrapment_name |
|---|
| 186 | preferred) and encroachment_scaling (overhang_factor preferred). |
|---|
| 187 | - Added gas%scale routine to scale gas concentrations and namelist |
|---|
| 188 | parameters driver_config%co2_scaling (and all gases) so that users |
|---|
| 189 | can easily test the effect of, for example, doubling CO2 or |
|---|
| 190 | setting it to zero. |
|---|
| 191 | - Fixed parameterization of cloud scales in radiation_cloud to |
|---|
| 192 | optionally take as input the range of columns to process. |
|---|
| 193 | - Redefined use of scale_factor in radiation_gas.F90 |
|---|
| 194 | |
|---|
| 195 | version 1.1.9 (9 Feb 2019) |
|---|
| 196 | - Mapping from albedo/emissivity intevals to bands may be done as |
|---|
| 197 | before by selecting the nearest interval to the centre of each |
|---|
| 198 | band, or now by computing the fractional overlap of each interval |
|---|
| 199 | with each band. This is controlled by the |
|---|
| 200 | do_nearest_spectral_[sw_albedo|lw_emiss] configuration parameter |
|---|
| 201 | - The user can specify the spectral range of the albedo/emissivity |
|---|
| 202 | intervals using namelist parameters |
|---|
| 203 | [sw_albedo|lw_emiss]_wavelength_bound and |
|---|
| 204 | i_[sw_albedo|lw_emiss]_index, or calling the |
|---|
| 205 | config%define_[sw_albedo|lw_albedo]_intervals routines before |
|---|
| 206 | calling setup_radiation, which does the actual mapping once the |
|---|
| 207 | ecRad bands are known |
|---|
| 208 | - Parameterize cloud separation scale via radiation_driver |
|---|
| 209 | namelist options "cloud_separation_scale_[toa|surface|power]" |
|---|
| 210 | - radiation_driver:do_correct_unphysical_inputs namelist option |
|---|
| 211 | does not simply warn about unphysical inputs (e.g. negative gas |
|---|
| 212 | concentrations) but fixes them |
|---|
| 213 | - Replaced LwDiffusivity by 2.0 in |
|---|
| 214 | radiation_two_stream:calc_frac_scattered_diffuse_sw, which is |
|---|
| 215 | more consistent with the Zdunkowski scheme, but has a very small |
|---|
| 216 | effect |
|---|
| 217 | |
|---|
| 218 | version 1.1.8 (17 January 2019) |
|---|
| 219 | - easy_netcdf.F90 allows for reading and writing slices of larger |
|---|
| 220 | arrays and writing HDF5 files, overcoming the maximum array size |
|---|
| 221 | limitation of classic NetCDF files |
|---|
| 222 | - cloud%inv_inhom_effective_size allows different effective sizes |
|---|
| 223 | for cloud inhomogeneities and cloud boundaries in SPARTACUS, |
|---|
| 224 | important for realistic behaviour when cloud fraction is near one, |
|---|
| 225 | and can be specified directly in the NetCDF input file |
|---|
| 226 | - The namelist variable "do_ignore_inhom_effective_size" in |
|---|
| 227 | "driver_config" means that "inv_inhom_effective_size" will be |
|---|
| 228 | ignored if it is present in the file, reverting to the old |
|---|
| 229 | behaviour |
|---|
| 230 | - Alternative input variables "inv_cloud_effective_separation" and |
|---|
| 231 | "inv_inhom_effective_separation" allow cloud structure for |
|---|
| 232 | SPARTACUS to be specified in a way less dependent on cloud |
|---|
| 233 | fraction |
|---|
| 234 | - If "inv_cloud_effective_separation" provided but not |
|---|
| 235 | "inv_inhom_effective_separation" then the effective size of |
|---|
| 236 | inhomogeneities is computed as that for the clouds themselves |
|---|
| 237 | multiplied by the "cloud_inhom_separation_factor" namelist |
|---|
| 238 | variable from "driver_config" (or 1 if not provided). |
|---|
| 239 | - Check physical bounds of inputs to radiation interface |
|---|
| 240 | - [aerosol|ice|liq]_optics_override_file_name now read from namelist |
|---|
| 241 | - radiation_homogeneous_[sl]w.F90 now stores spectral flux |
|---|
| 242 | profiles, if required |
|---|
| 243 | |
|---|
| 244 | version 1.1.7 (8 January 2019) |
|---|
| 245 | - Added "Cloudless" solvers in shortwave and longwave |
|---|
| 246 | - Writing radiative_properties*.nc files now thread-safe |
|---|
| 247 | - Fixed segmentation fault in solver_tripleclouds_sw when |
|---|
| 248 | do_save_spectral_flux .and. .not. do_sw_direct |
|---|
| 249 | - Initialize shortwave properties in radiation_ifs_rrtm in case |
|---|
| 250 | sun is below horizon, needed for some compiler options |
|---|
| 251 | - Modified test/ifs/ecrad_meridian.nc to allow sun to go below |
|---|
| 252 | horizon, rather than including the online correction for Earth |
|---|
| 253 | curvature. |
|---|
| 254 | - Modified driver/ecrad_driver_read_input.F90 so that if sw_albedo |
|---|
| 255 | and lw_emissivity override namelist parameters are provided, they |
|---|
| 256 | don't also need to be provided in the input files |
|---|
| 257 | |
|---|
| 258 | version 1.1.6 (17 December 2018) |
|---|
| 259 | - Generalized "alpha" overlap matrix calculation to allow for |
|---|
| 260 | possibility that the two cloudy regions in the Tripleclouds |
|---|
| 261 | assumption are not of equal size |
|---|
| 262 | - Introduced radiation_regions.F90 to compute region fractions and |
|---|
| 263 | optical depth scalings at the same time |
|---|
| 264 | - New gamma distribution behaviour in Tripleclouds and SPARTACUS: |
|---|
| 265 | if fractional standard deviation FSD > 1.5 then use non-equal |
|---|
| 266 | fractions for the two cloudy regions, which better predicts |
|---|
| 267 | fluxes. Also set a minimum optical depth scaling of 1/40, which |
|---|
| 268 | means that Tripleclouds and SPARTACUS will give slightly different |
|---|
| 269 | fluxes from before (< 0.1 W m-2) even for FSD < 1.5 |
|---|
| 270 | - SPARTACUS shortwave encroachment uses new fast_expm_exchange |
|---|
| 271 | routine given that matrix to be exponentiated has a regular structure |
|---|
| 272 | - Execution halts if gases not provided with 0 (well-mixed) or 2 |
|---|
| 273 | dimensions; before execution silently continued with these gases |
|---|
| 274 | not present |
|---|
| 275 | |
|---|
| 276 | version 1.1.5 (15 September 2018) |
|---|
| 277 | - Added "Zero" option for sw_encroachment_name, which turns off |
|---|
| 278 | not only encroachment due to horizontal transport within regions, |
|---|
| 279 | but also encroachment due to horizontal transport between regions |
|---|
| 280 | |
|---|
| 281 | version 1.1.4 (13 September 2018) |
|---|
| 282 | - Added "Fractal" option for sw_encroachment_name, which makes a |
|---|
| 283 | better assumption about the cloud size distribution than |
|---|
| 284 | "Computed" in the part that uses the horizontal radiation |
|---|
| 285 | migration distance to work out how much exchange has occurred |
|---|
| 286 | under regions |
|---|
| 287 | |
|---|
| 288 | version 1.1.3 (4 September 2018) |
|---|
| 289 | - Added (shortwave) encroachment_scaling to namelist, configuring |
|---|
| 290 | how one assumes cloud boundaries line up in adjacent layers: 0.0 |
|---|
| 291 | (the boundaries line up to the greatest extent possible given the |
|---|
| 292 | overlap parameter) and 1.0 (the boundaries line up to the minimum |
|---|
| 293 | extent possible, which was the old behaviour) |
|---|
| 294 | - Fixed related minor bug where encroachment transfer rate was |
|---|
| 295 | computed from the edge lengths in the wrong layer |
|---|
| 296 | |
|---|
| 297 | version 1.1.2 (3 September 2018) |
|---|
| 298 | - Added Python script test/ifs/plot_ifs.py (thanks to Alessio |
|---|
| 299 | Bozzo) |
|---|
| 300 | - Bug fix in calculation of direct horizontal migration distance |
|---|
| 301 | in radiation_spartacus_sw.F90 |
|---|
| 302 | - Added namelist parameter min_cloud_effective_size to help with |
|---|
| 303 | stability of SPARTACUS |
|---|
| 304 | |
|---|
| 305 | version 1.1.1 (29 August 2018) |
|---|
| 306 | - Complete reformulation of the calculation of horizontal |
|---|
| 307 | migration distances in radiation_spartacus_sw.F90 |
|---|
| 308 | - Option to set particulate single-scattering albedo and asymmetry |
|---|
| 309 | factor via namelist in LW and SW monochromatic case |
|---|
| 310 | |
|---|
| 311 | version 1.1.0 (21 August 2018) |
|---|
| 312 | - Clean-up for release |
|---|
| 313 | - Updated test/i3rc/duplicate_profiles.sh to work with latest nco |
|---|
| 314 | tools |
|---|
| 315 | |
|---|
| 316 | version 1.0.16 (7 May 2018) |
|---|
| 317 | - "make PRINT_ENCROACHMENT_DATA=1" prints encroachment data from |
|---|
| 318 | SPARTACUS shortwave solver to units 101 and 102, which can be |
|---|
| 319 | tested with test/i3rc/plot_encroachment.m |
|---|
| 320 | - Enabled radsurf canopies to include longwave gas |
|---|
| 321 | absorption/emission at full spectral resolution |
|---|
| 322 | - Monochromatic shortwave properties now more consistent with 0.55 |
|---|
| 323 | micron wavelength (g=0.86, ssa=0.999999, delta-Eddington applied) |
|---|
| 324 | - Now pass in KLEV rather than a structure to ifsrrtm routines |
|---|
| 325 | |
|---|
| 326 | version 1.0.15 (18 April 2018) |
|---|
| 327 | - Added capability to provide aerosol optical properties rather |
|---|
| 328 | than mixing ratios, implemented via the add_aerosol_optics_direct |
|---|
| 329 | routine |
|---|
| 330 | - Removed dummy "method" argument to calc_two_stream_gammas_?w |
|---|
| 331 | - Removed a large number of unused dummy arguments |
|---|
| 332 | - Updated README and test/ifs/ecrad_meridian_default_out_REFERENCE.nc |
|---|
| 333 | |
|---|
| 334 | version 1.0.14 (23 March 2018) |
|---|
| 335 | - Large number of improvements and fixes to the treatment of urban |
|---|
| 336 | areas |
|---|
| 337 | |
|---|
| 338 | version 1.0.13 (14 March 2018) |
|---|
| 339 | - Extra securities on transmittance, reflectance etc. in shortwave |
|---|
| 340 | SPARTACUS solver |
|---|
| 341 | - Reduced default max_cloud_od for SPARTACUS solver to 18 for |
|---|
| 342 | stability |
|---|
| 343 | - Finally fixed permute option when writing 3D array using |
|---|
| 344 | easy_netcdf.F90 |
|---|
| 345 | |
|---|
| 346 | version 1.0.12 (22 February 2018) |
|---|
| 347 | - Optimized radiation_ifs_rrtm.F90 and radiation_cloud_generator.F90 |
|---|
| 348 | |
|---|
| 349 | version 1.0.11 (20 February 2018) |
|---|
| 350 | - Corrected "computed encroachment" in SPARTACUS shortwave solver |
|---|
| 351 | to propagate migration distances according to overlap rules |
|---|
| 352 | - Default configuration file in test/ifs directory is for Cycle |
|---|
| 353 | 46R1 of IFS, which includes longwave scattering, fixes LW ice |
|---|
| 354 | optics bug and computes shortwave delta-Eddington scaling for |
|---|
| 355 | particulates only |
|---|
| 356 | |
|---|
| 357 | version 1.0.10 (23 October 2017) |
|---|
| 358 | - Added single precision option: compile with "make |
|---|
| 359 | SINGLE_PRECISION=1" |
|---|
| 360 | - easy_netcdf can read 4D arrays (thanks to Alessio Bozzo) |
|---|
| 361 | - Renamed single-character variables |
|---|
| 362 | - New data/yi_ice_scattering_rrtm.nc with longwave extinction |
|---|
| 363 | rather than absorption coefficient (thanks to Mark Fielding) |
|---|
| 364 | - Added security on n_scat_diffuse |
|---|
| 365 | |
|---|
| 366 | version 1.0.9 (26 July 2017) |
|---|
| 367 | - Refined shortwave SPARTACUS such that computed encroachment |
|---|
| 368 | estimates the number of diffuse scattering events and reduces the |
|---|
| 369 | migration distance accordingly |
|---|
| 370 | - Optimized calculation of longwave reflection/transmission coeffs |
|---|
| 371 | |
|---|
| 372 | version 1.0.8 (22 July 2017) |
|---|
| 373 | - Added lognormal/gamma cloud PDF options that affect McICA, |
|---|
| 374 | Tripleclouds and SPARTACUS solvers: namelist entry |
|---|
| 375 | "cloud_pdf_shape_name" can be "Lognormal" or "Gamma" (default |
|---|
| 376 | "Gamma") |
|---|
| 377 | - radiation_driver can read "iseed" variable for seeding the McICA |
|---|
| 378 | cloud generator |
|---|
| 379 | - Added Yi et al. (2013) ice optics model (thanks to Mark |
|---|
| 380 | Fielding): namelist entry ice_model_name="Yi" |
|---|
| 381 | |
|---|
| 382 | version 1.0.7 (7 July 2017) |
|---|
| 383 | - Bug fix in reformulated SPARTACUS solver |
|---|
| 384 | |
|---|
| 385 | version 1.0.6 (4 July 2017) |
|---|
| 386 | - Reformulated shortwave SPARTACUS solver to have the option of |
|---|
| 387 | explicitly computing "encroachment" (what Shonk & Hogan called |
|---|
| 388 | "anomalous transport") accounting for expected horizontal |
|---|
| 389 | migration distance during a reflection event |
|---|
| 390 | |
|---|
| 391 | version 1.0.5 (29 June 2017) |
|---|
| 392 | - Added "urban" tile type |
|---|
| 393 | |
|---|
| 394 | version 1.0.4 (24 April 2017) |
|---|
| 395 | - Added "flat" and "vegetation" tile types |
|---|
| 396 | - Added "make DEBUG=1" option for turning on debug flags |
|---|
| 397 | |
|---|
| 398 | version 1.0.3 (11 April 2017) |
|---|
| 399 | - Converted code to use "surface" type for multi-tile surfaces in |
|---|
| 400 | future |
|---|
| 401 | |
|---|
| 402 | (version 1.0.2surface - unstable intermediate version) |
|---|
| 403 | |
|---|
| 404 | version 1.0.1 (15 February 2017) |
|---|
| 405 | - Fixed Makefile options for PGI Fortran |
|---|
| 406 | - Removed erroneous commas from test/i3rc/Makefile |
|---|
| 407 | - Renamed variables shadowing intrinsics "scale" and "index" |
|---|
| 408 | |
|---|
| 409 | version 1.0 (13 February 2017) |
|---|
| 410 | - Read RADRRTM and RADSRTM from data directory |
|---|
| 411 | - Renamed "PROFILE" in test/i3rc/Makefile to avoid clash with use |
|---|
| 412 | of the same name in top-level Makefile |
|---|
| 413 | |
|---|
| 414 | version 0.9.48 (13 January 2017) |
|---|
| 415 | - test/ifs now includes a test where aerosol is turned off, and a |
|---|
| 416 | reference output NetCDF file so that the compilation can be checked |
|---|
| 417 | |
|---|
| 418 | version 0.9.47 (9 January 2017) |
|---|
| 419 | - Can specify output precision via "is_double" argument in easy_netcdf |
|---|
| 420 | - save_inputs stores iseed in double precision |
|---|
| 421 | - test/i3rc contains I3RC test case |
|---|
| 422 | - test/ifs contains IFS test case |
|---|
| 423 | - Preliminary "Baran-2017" ice optics scheme: a new |
|---|
| 424 | parameterization derived from the Baran et al. (2016) ice optical |
|---|
| 425 | properties |
|---|
| 426 | |
|---|
| 427 | version 0.9.46 (3 January 2017) |
|---|
| 428 | - Added mcica_bidisperse.nc to enable McICA to reproduce the |
|---|
| 429 | two-mode PDF used by the Tripleclouds and SPARTACUS schemes |
|---|
| 430 | |
|---|
| 431 | version 0.9.45 (25 November 2016) |
|---|
| 432 | - Added OpenIFS license |
|---|
| 433 | - Changed build system to use Makefile_include.<prof> files |
|---|
| 434 | - Renamed package from "spartacus" to "ecrad" |
|---|
| 435 | - Fixed writing of 3D arrays in easy_netcdf to permute |
|---|
| 436 | withorder=i_permute_3d(i_permute_3d) |
|---|
| 437 | - Offline code can be run on input data written by |
|---|
| 438 | radiation_save:save_inputs |
|---|
| 439 | - New file socrates_droplet_scattering_rrtm.nc with manually |
|---|
| 440 | changed coefficients for shortwave band 11 to prevent singularity |
|---|
| 441 | in SSA calculation at re=25.733um. Note that there is still a |
|---|
| 442 | singularity at re=1.63um in shortwave optical depth in band 10, |
|---|
| 443 | so effective radius should be capped to the range 2-50 microns. |
|---|
| 444 | |
|---|
| 445 | version 0.9.44 (22 October 2016) |
|---|
| 446 | - Revised aerosol scattering file aerosol_ifs_rrtm_43R1.nc |
|---|
| 447 | - Fixed radiation_cloud_cover: it could access arrays out of |
|---|
| 448 | bounds - provided that the memory address was accessible this |
|---|
| 449 | would have had no impact since the data were not used |
|---|
| 450 | |
|---|
| 451 | version 0.9.43 (23 September 2016) |
|---|
| 452 | - RADRRTM and RADSRTM can now be read from directory in |
|---|
| 453 | environment variable "DATA" |
|---|
| 454 | - do_fu_lw_ice_optics_bug is now a namelist option |
|---|
| 455 | - Added Baran 2016 ice optics option |
|---|
| 456 | - Optimized calculation of Planck function |
|---|
| 457 | - Better ordered the printing of configuration information |
|---|
| 458 | - Added configCY43R3.nam to match expected configuration in ECMWF |
|---|
| 459 | IFS cycle 43R3 |
|---|
| 460 | |
|---|
| 461 | version 0.9.42 (31 August 2016) |
|---|
| 462 | - Optimized radiation_ifs_rrtm.F90 and added |
|---|
| 463 | rrtm_gas_optical_depth.F90 to replace rrtm_gasabs1a_140gp.F90 |
|---|
| 464 | - Optimized calc_two_stream_gammas_sw |
|---|
| 465 | - Added Tripleclouds solvers in longwave and shortwave |
|---|
| 466 | |
|---|
| 467 | version 0.9.41 (16 August 2016) |
|---|
| 468 | - Added possibility to reproduce IFS bug in longwave ice where |
|---|
| 469 | single scattering albedo is one minus what it should be |
|---|
| 470 | - Ensure initialization to zero of [od/ssa/g]_[sw/lw]_[liq/ice] |
|---|
| 471 | variables in radiation_cloud_optics.F90 |
|---|
| 472 | - Removed Dr Hook calls for small routines called many times: |
|---|
| 473 | everything in radiation_two_stream, plus |
|---|
| 474 | radiation_aerosol_optics_data:calc_rh_index, calc_liq_optics_*, |
|---|
| 475 | calc_ice_optics_* |
|---|
| 476 | |
|---|
| 477 | version 0.9.40 (14 July 2016) |
|---|
| 478 | - Updated files in ifs directory |
|---|
| 479 | |
|---|
| 480 | version 0.9.39 (22 June 2016) |
|---|
| 481 | - Renamed cloud_cover_* routines to cum_cloud_cover_* since they |
|---|
| 482 | compute the cumulative cloud cover, and added a "cloud_cover" |
|---|
| 483 | function that does actually compute the total cloud cover (only) |
|---|
| 484 | - Use gamma rather than lognormal distribution for McICA to better |
|---|
| 485 | match the current IFS |
|---|
| 486 | - radiation_cloud::set_overlap_param now uses the correct layer |
|---|
| 487 | separation from temperature and pressure, rather than an |
|---|
| 488 | approximate one using a constant atmospheric scale height |
|---|
| 489 | - radiation_cloud_generator now correlates cloud inhomogeneities |
|---|
| 490 | between non-adjacent layers if the Exp-Exp overlap scheme is used |
|---|
| 491 | - radiation_cloud_cover::cum_cloud_cover_exp_exp now checks for |
|---|
| 492 | pair_cloud_cover not consistent with the cumulative cloud cover |
|---|
| 493 | profile |
|---|
| 494 | |
|---|
| 495 | version 0.9.38 (2 June 2016) |
|---|
| 496 | - Added Tegen climatology data file and modified |
|---|
| 497 | radiation_aerosol_optics_data to read data files that don't |
|---|
| 498 | contain hydrophilic aerosols |
|---|
| 499 | - Added Slingo (1989) and Lindner and Li (2000) liquid droplet |
|---|
| 500 | optics parameterizations for backwards compatibility with the IFS, |
|---|
| 501 | although note that Slingo (1989) has been found to have errors |
|---|
| 502 | |
|---|
| 503 | version 0.9.37 (17 May 2016) |
|---|
| 504 | - Added do_3d_lw_multilayer_effects to mirror the same for |
|---|
| 505 | shortwave. This controls whether off-diagonal elements are |
|---|
| 506 | permitted in the total_albedo matrix - these represent the |
|---|
| 507 | probability that downwelling radiaton exiting a region is |
|---|
| 508 | reflected up in another region. This may be due to transport |
|---|
| 509 | through cloud sides, or due to "anomalous" horizontal transport |
|---|
| 510 | where fluxes are homogenized in regions. Unlike in the shortwave, |
|---|
| 511 | this option is not forced on if 3D effects are enabled; in fact, |
|---|
| 512 | it is probably better to turn it off in both 1D and 3D cases |
|---|
| 513 | because this homogenization is not likely to occur to any |
|---|
| 514 | significant degree in the longwave. |
|---|
| 515 | - Added capability to select single/double precision in |
|---|
| 516 | easy_netcdf.F90, and radiative properties are now stored in double |
|---|
| 517 | precision. |
|---|
| 518 | - Changed verbosity settings of driver: 2 = print *all* setup |
|---|
| 519 | info, 3 = also print numbers of current profiles being processed. |
|---|
| 520 | - radiation_ifs_rrtm now checks solar zenith angle for positivity |
|---|
| 521 | to decide whether to set incident solar radiation to zero |
|---|
| 522 | |
|---|
| 523 | |
|---|
| 524 | version 0.9.36 (10 May 2016) |
|---|
| 525 | - Bug fix in radiation_monochromatic.F90: Planck profile calculation |
|---|
| 526 | - Maximum 3D transfer rate is now configurable (max_3d_transfer_rate) |
|---|
| 527 | - Inverse effective cloud size can be specified separately for eta |
|---|
| 528 | in the bands 0-0.45, 0.45-0.8 and 0.8-1 via high_inv_eff_size, |
|---|
| 529 | middle_inv_eff_size, low_inv_eff_size in the radiation_driver |
|---|
| 530 | namelist. |
|---|
| 531 | - License and copyright now in LICENSE and NOTICE; COPYING has |
|---|
| 532 | been removed |
|---|
| 533 | - "ifs" directory added illustrating how the radiation scheme is |
|---|
| 534 | called from the IFS, including the routines for computing cloud |
|---|
| 535 | particle effective radius. |
|---|
| 536 | |
|---|
| 537 | version 0.9.35 (29 April 2016) |
|---|
| 538 | - Added Exponential-Exponential overlap capability to match |
|---|
| 539 | original IFS Raisanen cloud generator |
|---|
| 540 | - Overlap in McICA can be selected with overlap_scheme_name in |
|---|
| 541 | namelist = Exp-Exp, Exp-Ran or Max-Ran |
|---|
| 542 | - Removed test on od_over_mu0 in |
|---|
| 543 | calc_reflectance_transmittance_sw, which speeds up IFS |
|---|
| 544 | implementation |
|---|
| 545 | - In same routine, increased minimum "k^2" to 1.0e-12_jprb which |
|---|
| 546 | removes noise in clear-sky upwelling versus solar zenith angle |
|---|
| 547 | |
|---|
| 548 | version 0.9.34 (20 April 2016) |
|---|
| 549 | - Added option to do delta-Eddington scaling after merging with |
|---|
| 550 | gases, which seems less "correct", but is how the original IFS |
|---|
| 551 | scheme works |
|---|
| 552 | - Delta-Eddington now a header file included by several modules |
|---|
| 553 | - Clarified that RRTMG license is now BSD 3-clause |
|---|
| 554 | |
|---|
| 555 | version 0.9.33 (March 2016) |
|---|
| 556 | - Removed PS-Rad implementation of RRTMG |
|---|
| 557 | - Added delta-Eddington scaling of aerosol scattering properties |
|---|
| 558 | |
|---|
| 559 | version 0.9.32 (17 March 2016) |
|---|
| 560 | - Slight change to the way that cloud overlap is specified |
|---|
| 561 | - Added aerosol optics data files matching IFS cycles |
|---|
| 562 | - Default aerosol file is aerosol_ifs_rrtm_42R1.nc |
|---|
| 563 | |
|---|
| 564 | version 0.9.31 (26 January 2016) |
|---|
| 565 | - Print out description of aerosol types being used |
|---|
| 566 | - Added iverbosesetup in order to specify separately the verbosity |
|---|
| 567 | of the setup and normal execution parts |
|---|
| 568 | - Removed "is_verbose" from namelist |
|---|
| 569 | - Removed "ncol" as an argument from the solvers |
|---|
| 570 | - PS-Rad RRTMG option now prefixed by PSRAD in the code and the |
|---|
| 571 | directory structure; radiation_ifsrrtm renamed to |
|---|
| 572 | radiation_ifs_rrtm |
|---|
| 573 | |
|---|
| 574 | version 0.9.30 (16 January 2016) |
|---|
| 575 | - Bug fix: if layer overcast and only 2 regions then 3D |
|---|
| 576 | calculations not performed |
|---|
| 577 | - Split cloud optics into separate source files |
|---|
| 578 | |
|---|
| 579 | version 0.9.29 (7 January 2016) |
|---|
| 580 | - Support for separate direct and diffuse shortwave albedos |
|---|
| 581 | - Explicit loop indices in radiation_adding_ica_*w and |
|---|
| 582 | radiation_ifsrrtm speeds these routines up somewhat |
|---|
| 583 | - Added capability to calculate longwave derivatives for Hogan & |
|---|
| 584 | Bozzo (2015) method |
|---|
| 585 | - Faster longwave McICA solver if cloud scattering not represented |
|---|
| 586 | - Added homogeneous solvers |
|---|
| 587 | |
|---|
| 588 | version 0.9.28 (17 November 2015) |
|---|
| 589 | - Added some comments to McICA parts and cleaned up |
|---|
| 590 | |
|---|
| 591 | version 0.9.27 (13 November 2015) |
|---|
| 592 | - Capped the transfer rate between regions in 3D SPARTACUS to "10" |
|---|
| 593 | per layer, equivalent to an optical depth of 10 |
|---|
| 594 | - Fixed cloud cover calculation in cloud generator |
|---|
| 595 | - Fixed bug in McICA LW where surface Planck function taken from |
|---|
| 596 | wrong column |
|---|
| 597 | - Optimized SW reflectance transmittance: use simple expression |
|---|
| 598 | for optically thin points |
|---|
| 599 | |
|---|
| 600 | version 0.9.26 (6 November 2015) |
|---|
| 601 | - Added no-scattering solver for McICA longwave, typically used in |
|---|
| 602 | clear skies when aerosol scattering is turned off |
|---|
| 603 | |
|---|
| 604 | version 0.9.25 (4 November 2015) |
|---|
| 605 | - Reordered gas and cloud optical properties to have g-point |
|---|
| 606 | varying fastest, leading to a significant speed-up |
|---|
| 607 | |
|---|
| 608 | version 0.9.24 (4 November 2015) |
|---|
| 609 | - Added possibility for radiation to be transported directly |
|---|
| 610 | between regions a and c, via clear_to_thick_fraction |
|---|
| 611 | - Added capability for direct beam from overhead sun to pass |
|---|
| 612 | through cloud sides, to improve 3D effect for overhead sun |
|---|
| 613 | - Read McICA PDF look-up table from mcica_lognormal.nc to |
|---|
| 614 | radiation_pdf_sampler.F90 |
|---|
| 615 | - Verified McICA cloud generator |
|---|
| 616 | - Added capability to interpret overlap parameter as Hogan & |
|---|
| 617 | Illingworth's "alpha" rather than Shonk et al.'s "beta", made this |
|---|
| 618 | the default and verified that McICA and SPARTACUS give the same |
|---|
| 619 | total cloud cover. |
|---|
| 620 | - Added capability to repeat calculation multiple times for better |
|---|
| 621 | profiling |
|---|
| 622 | - Gas optics unit scaling now done all at once to avoid bugs |
|---|
| 623 | associated with part of mixing_ratio array being in one unit and |
|---|
| 624 | another part being in another unit (for the same gas) |
|---|
| 625 | - Some optimization of gamma calculations |
|---|
| 626 | |
|---|
| 627 | version 0.9.23 (19 October 2015) |
|---|
| 628 | - Thresholds on gas optical depth now performed in |
|---|
| 629 | radiation_ifsrrtm.F90 to avoid problems with unphysical ssa after |
|---|
| 630 | aerosol optics |
|---|
| 631 | |
|---|
| 632 | version 0.9.22 (13 October 2015) |
|---|
| 633 | - Protection for zero Kelvin in monochromatic Planck function |
|---|
| 634 | - Check on dimensions read from aerosol optics file |
|---|
| 635 | - Better diagnostic of aerosol settings in print_config |
|---|
| 636 | - Included longwave internal radiation distribution |
|---|
| 637 | parameterization for 3D (config%do_lw_side_emissivity) |
|---|
| 638 | - Added requirement for non-zero water content in |
|---|
| 639 | radiation_spartacus_?w.F90 |
|---|
| 640 | |
|---|
| 641 | version 0.9.21 |
|---|
| 642 | - Fixed the monochromatic option |
|---|
| 643 | |
|---|
| 644 | version 0.9.20 |
|---|
| 645 | - Bug fixes in radiation_matrix.F90 and radiation_ifsrrtm.F90 |
|---|
| 646 | - Better printing of the configuration in radiation_config.F90 |
|---|
| 647 | |
|---|
| 648 | version 0.9.19 (not a stable version) |
|---|
| 649 | - Moved solar irradiance from config to single_level |
|---|
| 650 | |
|---|
| 651 | version 0.9.18 |
|---|
| 652 | - Module radiation_io for abort and output units |
|---|
| 653 | - Started shortwave McICA implementation |
|---|
| 654 | - Better IFS compatibility |
|---|
| 655 | - Revised config_type structure |
|---|
| 656 | |
|---|
| 657 | version 0.9.17 |
|---|
| 658 | - Optical depth thresholds now in the radiation namelist as |
|---|
| 659 | max_gas_od_3d and max_cloud_od |
|---|
| 660 | - Can process limited number of columns via istartcol and iendcol |
|---|
| 661 | in the radiation_driver namelist |
|---|
| 662 | - Fixed bug where upwelling longwave surface clear-sky flux was |
|---|
| 663 | underestimated if a cloud was present in lowest model level |
|---|
| 664 | - Incoming solar flux scaled in radiation_ifsrrtm to match |
|---|
| 665 | requested TSI |
|---|
| 666 | |
|---|
| 667 | version 0.9.16 |
|---|
| 668 | - Rather than turning off 3D radiation if OD in a region is too |
|---|
| 669 | high, we cap the OD of the cloud and still do 3D calculations. |
|---|
| 670 | Note that to enable 3D effect to be calculated, this is done even |
|---|
| 671 | if 3D effects are turned OFF. |
|---|
| 672 | |
|---|
| 673 | version 0.9.15 |
|---|
| 674 | - Added capability to output fluxes per g-point with |
|---|
| 675 | do_save_gpoint_flux |
|---|
| 676 | - Check for "ghost" clouds (zero water content, non-zero cloud |
|---|
| 677 | fraction) |
|---|
| 678 | - 3D radiation only called if optical depth of gas < 8 and total |
|---|
| 679 | optical depth of thickest region < 30 |
|---|
| 680 | |
|---|
| 681 | version 0.9.14 |
|---|
| 682 | - Cleaned up the text output via separate "iverbose" config |
|---|
| 683 | variables for the driver and the main radiation code |
|---|
| 684 | |
|---|
| 685 | version 0.9.13 |
|---|
| 686 | - driver/radiation_driver_config.F90 now handles the aspects of |
|---|
| 687 | the configuration that are limited to the driver rather than the |
|---|
| 688 | radiation code itself |
|---|
| 689 | |
|---|
| 690 | version 0.9.12 |
|---|
| 691 | - Now use IFS version of RRTM-G gas optics |
|---|
| 692 | - g_lw zeroed in radiation_interface |
|---|
| 693 | |
|---|
| 694 | version 0.9.11 |
|---|
| 695 | - Monochromatic is now a run-time rather than compile-time option |
|---|
| 696 | - Option to output spectral fluxes |
|---|
| 697 | |
|---|
| 698 | version 0.9.10 |
|---|
| 699 | - Added overlap_decorr_length_scaling option for namelists |
|---|
| 700 | |
|---|
| 701 | version 0.9.9 |
|---|
| 702 | - Added IFS RRTM code in ifsrrtm/ |
|---|
| 703 | - Added "make resort" in work/ to provide re-sorted g points for |
|---|
| 704 | radiation_rrtm.f90 |
|---|
| 705 | |
|---|
| 706 | version 0.9.8 |
|---|
| 707 | - Better compatibility with IFS: added dr_hook, nulout, |
|---|
| 708 | nulerr, abor1 |
|---|
| 709 | - easy_netcdf into utilities library |
|---|
| 710 | - Revised the variable name convention in radiation/*.f90 so |
|---|
| 711 | that can be converted to IFS coding norms if required |
|---|
| 712 | |
|---|
| 713 | version 0.9.7 |
|---|
| 714 | - Added Fu (1996) and Fu et al. (1998) ice optics |
|---|
| 715 | |
|---|
| 716 | version 0.9.6 |
|---|
| 717 | - Implemented aerosols |
|---|
| 718 | |
|---|
| 719 | version 0.9.5 |
|---|
| 720 | - Implemented ice optics |
|---|
| 721 | |
|---|
| 722 | version 0.9.4 |
|---|
| 723 | - Combined clear-sky calculations into single spartacus call |
|---|
| 724 | - Fixed the optimized matrix operations for shortwave sparsity |
|---|
| 725 | |
|---|
| 726 | version 0.9.3 |
|---|
| 727 | - Fixed ozone in standard atmosphere profiles |
|---|
| 728 | - Fixed bug in Meador-Weaver direct transmittance calculation |
|---|
| 729 | |
|---|
| 730 | version 0.9.2 |
|---|
| 731 | - First beta release |
|---|