Ignore:
Timestamp:
Mar 19, 2024, 3:34:21 PM (2 months ago)
Author:
idelkadi
Message:

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:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/ecrad/radiation/radiation_spectral_definition.F90

    r4773 r4853  
    1515!
    1616
     17#include "ecrad_config.h"
     18
    1719module radiation_spectral_definition
    1820
     
    2325  public
    2426
    25   real(jprb), parameter :: SolarReferenceTemperature = 5777.0_jprb ! K
     27  real(jprb), parameter :: SolarReferenceTemperature       = 5777.0_jprb ! K
    2628  real(jprb), parameter :: TerrestrialReferenceTemperature = 273.15_jprb ! K
    2729
     
    8587  subroutine read_spectral_definition(this, file)
    8688
    87     use easy_netcdf, only : netcdf_file
     89#ifdef EASY_NETCDF_READ_MPI
     90    use easy_netcdf_read_mpi, only : netcdf_file
     91#else
     92    use easy_netcdf,          only : netcdf_file
     93#endif
    8894    use yomhook,     only : lhook, dr_hook, jphook
    8995
     
    132138
    133139  !---------------------------------------------------------------------
    134   ! Store a simple band description by copying over the lower and
    135   ! upper wavenumbers of each band
    136   subroutine allocate_bands_only(this, wavenumber1, wavenumber2)
     140  ! Store a simple band description by copying over the reference
     141  ! temperature and the lower and upper wavenumbers of each band
     142  subroutine allocate_bands_only(this, reference_temperature, wavenumber1, wavenumber2)
    137143
    138144    use yomhook,     only : lhook, dr_hook, jphook
    139145
    140146    class(spectral_definition_type), intent(inout) :: this
    141     real(jprb),        dimension(:), intent(in)    :: wavenumber1, wavenumber2
     147    real(jprb),                      intent(in)    :: reference_temperature    ! K
     148    real(jprb),        dimension(:), intent(in)    :: wavenumber1, wavenumber2 ! cm-1
    142149
    143150    real(jphook) :: hook_handle
     
    152159    this%wavenumber1_band = wavenumber1
    153160    this%wavenumber2_band = wavenumber2
    154 
     161    this%reference_temperature = reference_temperature
     162   
    155163    if (lhook) call dr_hook('radiation_spectral_definition:allocate_bands_only',1,hook_handle)
    156164
     
    167175    this%ng    = 0
    168176    this%nband = 0
     177    this%reference_temperature = -1.0_jprb
    169178
    170179    if (allocated(this%wavenumber1))      deallocate(this%wavenumber1)
Note: See TracChangeset for help on using the changeset viewer.