\(\newcommand{\p}[1]{\frac{\partial }{\partial #1}}\) \(\newcommand{\pp}[2]{\frac{\partial #1}{\partial #2}}\) \(\newcommand{\dd}[2]{\frac{d #1}{d #2}}\) \(\newcommand{\h}{\frac{1}{2}}\) \(\newcommand{\op}[1]{\operatorname{#1}}\)

8.7.4. RADTRANS package

8.7.4.1. Introduction

The radtrans package models spectral light throughout the water column. Incoming irradiances below the sea surface, split into several wavebands and between direct (beam) and diffuse components, are read in from forcing files or provided by the OASIM package. The irradiances are optionally reduced based on ice cover. The radtrans package then solves for these two downwelling components and a diffuse upwelling component to obtain a solution to the radiative transfer equations, based on intrinsic optical properties provided by another package (for instance the DARWIN package). Spectral radiances at the vertical layer boundaries are returned to the calling package.

8.7.4.2. Compiling and Running

8.7.4.2.1. Compiling

Include the word radtrans in packages.conf in your code directory. This will automatically include the exf package. Unless you are using the OASIM package or the RT_useMeanCosSolz runtime option, you will also neet to include the SUN package.

Set compile-time options for radtrans in file RADTRANS_OPTIONS.h (see table below).

Adjust the number of wavebands in RADTRANS_SIZE.h.

In EXF_OPTIONS.h you may want to undef ALLOW_CLIMSST_RELAXATION and ALLOW_CLIMSSS_RELAXATION.

Table 8.75 CPP options for the radtrans package

CPP option

description

RADTRANS_DIAG_SOLUTION

make diagnostics for the parameters of the light field solution available

8.7.4.2.2. Running

You will need to set useRADTRANS = .TRUE. in data.pkg.

Runtime Parameters

Runtime parameters are set in data.radtrans in these namelists:

Namelist

Description

RADTRANS_FORCING_PARAMS

parameters related to forcing and initialization

RADTRANS_INTERP_PARAMS

parameters for interpolation of forcing fields (only used if USE_EXF_INTERPOLATION is defined)

RADTRANS_PARAMS

general parameters

Forcing fields are read in using the exf package. How is controlled by the namelist RADTRANS_FORCING_PARAMS. The forcing fields are:

Table 8.76 Radtrans forcing fields

Name

Units

Description

RT_Ed

W m–2

Downward direct (beam) irradiance below the sea surface per waveband (not needed with the oasim pkg)

RT_Es

W m–2

Downward diffuce irradiance below the sea surface per waveband (not needed with the oasim pkg)

RT_ice

m2/m2

fraction of sea surface covered by ice; used to reduce the irradiance entering the ocean

When the oasim package is used, irradiances are taken from it and the RT_Ed and RT_Es forcing fields are not used.

Each forcing field has a set of parameters. These work as in the exf package, see Table 8.12, except some parameters for RT_Ed and RT_Es have a waveband index:

Table 8.77 Namelist RADTRANS_FORCING_PARAMS

Name

Default

Description

RT_Edfile(l)

‘ ‘

filename for direct irradiance; if left empty no file will be read; RT_Ed_const will be used instead

RT_Esfile(l)

‘ ‘

filename for direct irradiance; if left empty no file will be read; RT_Es_const will be used instead

RT_Ed_const(l)

0.0

constant that will be used if no file is read

RT_Es_const(l)

0.0

constant that will be used if no file is read

RT_E_period

0.0

interval in seconds between two records

RT_E_RepCycle

repeatCycle

repeat cycle in seconds; only available if useExfYearlyFields is .FALSE.

RT_E_StartTime

UNSET_RL

time in seconds of first record from the beginning of the model integration or, if useExfYearlyFields, from the beginning of year

RT_E_startdate1

0

date/time of first record when using the cal package; format: YYYYMMDD; start year (YYYY), month (MM), day (YY)

RT_E_startdate2

0

format: HHMMSS; start hour (HH), minute (MM), second(SS)

RT_E_mask

‘c’

grid point for masking: ‘ ‘ = no masking; ‘c’ = centered mask; ‘w’ = western mask; ‘s’ = southern

RT_Ed_exfremo_intercept(l)

0.0

can be used to remove global mean

RT_Es_exfremo_intercept(l)

0.0

can be used to remove global mean

RT_Ed_exfremo_slope(l)

0.0

can be used to remove global trend

RT_Es_exfremo_slope(l)

0.0

can be used to remove global trend

RT_inscal_Ed(l)

1.0

optional rescaling of input fields to adjust units

RT_inscal_Es(l)

1.0

optional rescaling of input fields to adjust units

Interpolation parameters are set in namelist RADTRANS_INTERP_PARAMS. See the exf package on how to set them.

General parameters are set in namelist RADTRANS_PARAMS:

Table 8.78 Namelist RADTRANS_PARAMS

Name

Default

Units

Description

RT_wbRefWLs

nm

reference wavelengths for wavebands

RT_wbEdges

nm

waveband edges

RT_kmax

Nr

maximum depth index for radtrans computations

RT_sfcIrrThresh

1E-4

W m–2

minimum irradiance for radiative transfer computations

RT_refract_water

1.341

refractive index of water

RT_rmud_max

1.5

maximum inverse cosine of beam zenith angle below water

RT_useOASIMrmud

useOASIM 1

flag for using solar zenith angle from oasim pkg

RT_useMeanCosSolz

.FALSE. 1

flag for using mean daytime cosine of solar zenith angle

RT_useNoonSolz

.FALSE. 1

flag for using solar zenith angle at local mean noon

1(1,2,3)

Solar zenith angle options: with oasim pkg, defaults to using OASIM solar zenith angle; if all .FALSE., instant local mean time solar zenith angle is used.

At a minimum, RT_wbRefWLs and RT_wbEdges have to be set, and either the oasim package has to be used or the spectral irradiance forcing fields RT_Ed and RT_Es have to be provided. The waveband edges are used to match read-in spectra to wavebands. They are also used to compute waveband widths needed for averaging spectral quantities, for instance in the DARWIN package.

8.7.4.3. Diagnostics

Name

Code

Units

Description

rmud

SM_P____L1

1

inverse cosine of below-water beam zenith angle

Rirr###

SM_P____L1

1

irradiance reflectance for waveband ###

Ed###

SMRP____LR

W/m2

direct irradiance for waveband ###

Es###

SMRP____LR

W/m2

diffuse downwelling irradiance for waveband ###

Eu###

SMRP____LR

W/m2

diffuse upwelling irradiance for waveband ###

E###

SMRP____MR

W/m2

vector irradiance waveband ###

E0F###

SMRP____LR

W/m2

scalar irradiance at W point waveband ###

Estop###

SMRP____LR

W/m2

diffuse downwelling irradiance for waveband ###

Eubot###

SMRP____LR

W/m2

diffuse upwelling irradiance for waveband ###

amp1_###

SMR_____MR

W/m2

amplitude of d-w increasing mode for waveband ###

amp2_###

SMR_____MR

W/m2

amplitude of d-w decreasing mode for waveband ###

x_###

SMR_____MR

W/m2

amplitude of direct in diffuse for waveband ###

y_###

SMR_____MR

W/m2

amplitude of direct in upward for waveband ###

r1_###

SMRP____MR

1

R coefficient of d-w increasing mode for waveband ###

r2_###

SMRP____MR

1

R coefficient of d-w decreasing mode for waveband ###

att1_###

SMRP____MR

1/m

attenuation of d-w increasing mode for waveband ###

att2_###

SMRP____MR

1/m

attenuation of d-w decreasing mode for waveband ###

RTice

SM_P____MR

m2/m2

ice area fraction in radtrans package

8.7.4.4. Call tree

the_model_main
initialise_fixed
  packages_readparms
    radtrans_readparms
  packages_init_fixed
    radtrans_init_fixed
      radtrans_diagnostics_init
the_main_loop
  initialise_varia
    packages_init_variables
      radtrans_init_varia
      gchem_init_vari
        darwin_init_varia
          darwin_init_chl
            darwin_light_radtrans
              radtrans_calc...
  main_do_loop
    forward_step
      load_fields_driver
        radtrans_fields_load
          radtrans_monitor
      gchem_forcing_sep
        darwin_forcing
          darwin_light_radtrans
            radtrans_calc
              radtrans_declination_spencer
              radtrans_solz_daytime
              radtrans_rmud_below
              radtrans_solve
                radtrans_solve_tridiag