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