source: LMDZ6/branches/cirrus/libf/phylmd/ecrad/CHANGELOG

Last change on this file was 4853, checked in by idelkadi, 9 months ago

Ecrad update in LMDZ / Implementation of Ecrad double call in LMDZ

  • version 1.6.1 (commit 210d7911380f53a788c3cad73b3cf9b4e022ef87)
  • interface routines between lmdz and ecrad grouped in a new "lmdz" directory
  • double call method redesigned so as to go through the Ecrad initialization and configuration part only once for the entire simulation
  • clean-up in the read.F routine: delete unitules arguments
  • modification of default gas model in namelist (default: ECCKD)
File size: 33.2 KB
Line 
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)
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
37version 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
55version 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
97version 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
138version 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
148version 1.4.1 (17 March 2021)
149        - Added Jupyter notebook to the practical directory
150
151version 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
163version 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
174version 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
185version 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
201version 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
214version 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
237version 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
263version 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
277version 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
295version 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
300version 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
307version 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
316version 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
324version 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
330version 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
335version 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
345version 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
353version 1.0.14 (23 March 2018)
354        - Large number of improvements and fixes to the treatment of urban
355          areas
356
357version 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
365version 1.0.12 (22 February 2018)
366        - Optimized radiation_ifs_rrtm.F90 and radiation_cloud_generator.F90
367
368version 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
376version 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
385version 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
391version 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
401version 1.0.7 (7 July 2017)
402        - Bug fix in reformulated SPARTACUS solver
403
404version 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
410version 1.0.5 (29 June 2017)
411        - Added "urban" tile type
412
413version 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
417version 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
423version 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
428version 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
433version 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
437version 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
446version 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
450version 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
464version 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
470version 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
480version 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
486version 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
496version 0.9.40 (14 July 2016)
497        - Updated files in ifs directory
498
499version 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
514version 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
522version 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
543version 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
556version 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
567version 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
574version 0.9.33 (March 2016)
575        - Removed PS-Rad implementation of RRTMG
576        - Added delta-Eddington scaling of aerosol scattering properties
577
578version 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
583version 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
593version 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
598version 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
607version 0.9.28 (17 November 2015)
608        - Added some comments to McICA parts and cleaned up
609
610version 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
619version 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
623version 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
627version 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
646version 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
651version 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
660version 0.9.21
661        - Fixed the monochromatic option
662
663version 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
667version 0.9.19 (not a stable version)
668        - Moved solar irradiance from config to single_level
669
670version 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
676version 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
686version 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
692version 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
700version 0.9.14
701        - Cleaned up the text output via separate "iverbose" config
702          variables for the driver and the main radiation code
703
704version 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
709version 0.9.12
710        - Now use IFS version of RRTM-G gas optics
711        - g_lw zeroed in radiation_interface
712
713version 0.9.11
714        - Monochromatic is now a run-time rather than compile-time option
715        - Option to output spectral fluxes
716
717version 0.9.10
718        - Added overlap_decorr_length_scaling option for namelists
719
720version 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
725version 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
732version 0.9.7
733        - Added Fu (1996) and Fu et al. (1998) ice optics
734
735version 0.9.6
736        - Implemented aerosols
737
738version 0.9.5
739        - Implemented ice optics
740
741version 0.9.4
742        - Combined clear-sky calculations into single spartacus call
743        - Fixed the optimized matrix operations for shortwave sparsity
744
745version 0.9.3
746        - Fixed ozone in standard atmosphere profiles
747        - Fixed bug in Meador-Weaver direct transmittance calculation
748
749version 0.9.2
750        - First beta release
Note: See TracBrowser for help on using the repository browser.