source: LMDZ6/branches/LMDZ_ECRad/libf/phylmd/ecrad/CHANGELOG @ 5428

Last change on this file since 5428 was 4758, checked in by idelkadi, 13 months ago
File size: 32.0 KB
RevLine 
[4728]1version 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)
[4758]15        - Increased security value in single-precision SW
16          reflectance-transmittance calculation from 1e-12 to 1e-6
[4728]17
18version 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
36version 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
78version 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
119version 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
129version 1.4.1 (17 March 2021)
130        - Added Jupyter notebook to the practical directory
131
132version 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
144version 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
155version 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
166version 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
182version 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
195version 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
218version 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
244version 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
258version 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
276version 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
281version 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
288version 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
297version 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
305version 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
311version 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
316version 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
326version 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
334version 1.0.14 (23 March 2018)
335        - Large number of improvements and fixes to the treatment of urban
336          areas
337
338version 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
346version 1.0.12 (22 February 2018)
347        - Optimized radiation_ifs_rrtm.F90 and radiation_cloud_generator.F90
348
349version 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
357version 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
366version 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
372version 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
382version 1.0.7 (7 July 2017)
383        - Bug fix in reformulated SPARTACUS solver
384
385version 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
391version 1.0.5 (29 June 2017)
392        - Added "urban" tile type
393
394version 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
398version 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
404version 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
409version 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
414version 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
418version 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
427version 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
431version 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
445version 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
451version 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
461version 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
467version 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
477version 0.9.40 (14 July 2016)
478        - Updated files in ifs directory
479
480version 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
495version 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
503version 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
524version 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
537version 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
548version 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
555version 0.9.33 (March 2016)
556        - Removed PS-Rad implementation of RRTMG
557        - Added delta-Eddington scaling of aerosol scattering properties
558
559version 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
564version 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
574version 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
579version 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
588version 0.9.28 (17 November 2015)
589        - Added some comments to McICA parts and cleaned up
590
591version 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
600version 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
604version 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
608version 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
627version 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
632version 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
641version 0.9.21
642        - Fixed the monochromatic option
643
644version 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
648version 0.9.19 (not a stable version)
649        - Moved solar irradiance from config to single_level
650
651version 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
657version 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
667version 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
673version 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
681version 0.9.14
682        - Cleaned up the text output via separate "iverbose" config
683          variables for the driver and the main radiation code
684
685version 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
690version 0.9.12
691        - Now use IFS version of RRTM-G gas optics
692        - g_lw zeroed in radiation_interface
693
694version 0.9.11
695        - Monochromatic is now a run-time rather than compile-time option
696        - Option to output spectral fluxes
697
698version 0.9.10
699        - Added overlap_decorr_length_scaling option for namelists
700
701version 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
706version 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
713version 0.9.7
714        - Added Fu (1996) and Fu et al. (1998) ice optics
715
716version 0.9.6
717        - Implemented aerosols
718
719version 0.9.5
720        - Implemented ice optics
721
722version 0.9.4
723        - Combined clear-sky calculations into single spartacus call
724        - Fixed the optimized matrix operations for shortwave sparsity
725
726version 0.9.3
727        - Fixed ozone in standard atmosphere profiles
728        - Fixed bug in Meador-Weaver direct transmittance calculation
729
730version 0.9.2
731        - First beta release
Note: See TracBrowser for help on using the repository browser.