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