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 | - 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. |
---|
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 |
---|