Ignore:
Timestamp:
Oct 25, 2023, 10:34:54 AM (15 months ago)
Author:
bhatnags
Message:

Generic-PCM

This commit updates the slab ocean module to a parallelisable dynamic slab ocean module. This is particularly relevant if you want to be able to use oceanic heat transport in parallel mode.

It has the following features:

(a) Computes sea ice creation and evolution.
(b) Snow has thermodynamic properties.
(c) Computes oceanic horizontal transport (diffusion & surface-wind driven Ekman transport).
(d) Can be used in parallel mode.

Required callphys.def flags:
The slab ocean and its dependencies can be activated with the following flags (already added to deftank):
## Ocean options
## ~
# Model slab-ocean (Main flag for slab ocean)
ok_slab_ocean = .true.
# The following flags can only be set to true if ok_slab_ocean is true
# Ekman transport
slab_ekman = .true.
# Ekman zonal advection
slab_ekman_zonadv = .true.
# Horizontal diffusion (default coef_hdiff=25000., can be changed)
slab_hdiff = .true.
# Slab-ocean timestep (in physics timesteps)
cpl_pas = 1
# Gent-McWilliams? Scheme (can only be true if slab_ekman is true)
slab_gm = .true.

Notes:
In the current state, the model crashes if moistadjustment = .true. Unsure whether this is due to the slab or is an inherent issue with moistadj (under investigation).

SB and EM

Location:
trunk/LMDZ.GENERIC/deftank
Files:
1 added
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/deftank/callphys.earthslab

    r3099 r3100  
    44tracer    = .true.
    55# Diurnal cycle ?  if diurnal=false, diurnally averaged solar heating
    6 diurnal   = .false.
     6diurnal   = .true.
    77# Seasonal cycle ? if season=false, Ls stays constant, to value set in "start"
    88season    = .true.
     
    1717# Test energy conservation of model physics ?
    1818enertest  = .false.
    19 # Check to see if cpp, mugaz values used match gas mixture defined in gases.def (recommended) ?
    20 check_cpp_match=.true.
     19# check if cpp and mugaz from start.nc are consistent with values computed by comp_cpp_mugaz with gases.def
     20check_cpp_match = .false.
     21# Check if physics inputs and outputs are ok
     22check_physics_inputs = .true.
     23check_physics_outputs = .true.
     24
     25## Directory where external input files are
     26## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     27datadir     = datadir
    2128
    2229## Radiative transfer options
     
    2633# the rad. transfer is computed every "iradia" physical timestep
    2734iradia     = 6
     35# Use blackbody for stellar spectrum ?
     36stelbbody    = .false.
     37# Stellar blackbody temperature ?
     38stelTbb      = 2000.000
    2839# call multilayer correlated-k radiative transfer ?
    2940corrk      = .true.
    30 # Include continuum absorption in radiative transfer (note CO2 is treated separately) ?
    31 continuum  = .true.
    3241# folder in which correlated-k data is stored ?
    33 corrkdir   = N2CO2poor_H2Ovar
     42corrkdir = Earth_JL13_extend
     43# corrkdir    = Earth_110-710K
     44# corrkdir   = N2CO2poor_H2Ovar
     45# corrkdir   = megaCO2
     46# corrkdir   = null
    3447# call visible gaseous absorption in radiative transfer ?
    3548callgasvis = .true.
     49# call continuum in radiative transfer ?
     50Continuum = .true.
    3651# Include Rayleigh scattering in the visible ?
    3752rayleigh   = .true.
     53# Uniform absorption coefficient in radiative transfer?
     54graybody     = .false.
     55# Constant absorption coefficient in visible
     56#      (in m^2/kg; only if graybody=true):
     57#      tau_surf= kappa*P/g
     58kappa_VI = 1.e-4
     59# Constant absorption coefficient in IR
     60#      (in m^2/kg; only if graybody=true):
     61kappa_IR = 5.e-1
     62# Use Newtonian cooling in place of radiative transfer ?
     63newtonian    = .false.
     64# Radiative timescale for Newtonian cooling ? [only if newtonian = T]
     65tau_relax    = 30.00000
     66# Test physics timescale in 1D ?
     67testradtimes = .false.
    3868# Characteristic planetary equilibrium (black body) temperature
    3969# This is used only in the aerosol radiative transfer setup. (see aerave.F)
    4070tplanet    = 215.
    41 # Output spectral OLR in 3D?
     71# Output spectral OLR in 1D/3D?
    4272specOLR    = .false.
    4373# Output global radiative balance in file 'rad_bal.out' - slow for 1D!!
    44 meanOLR    = .true.
     74meanOLR    = .false.
    4575# Variable gas species: Radiatively active ?
    4676varactive  = .true.
    4777# Variable gas species: Fixed vertical distribution ?
     78#   (not to be used in time integration mode)
    4879varfixed   = .false.
    4980# Variable gas species: Saturation percentage value at ground ?
    50 satval     = 0.0
     81satval     = .8
     82# Use fixed vertical profile, 1 step, no iteration ?
     83kastprof     = .false.
     84# Remove lower boundary (e.g. for gas giant sims)
     85noradsurf    = .false.
    5186
    5287## Star type
     
    6095#       startype = 3            GJ644
    6196#       startype = 4            HD128167
    62 #       startype = 9            TRAPPIST-1
    63 #       startype = 10           Proxima Centauri
    6497# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    6598# Stellar flux at 1 AU. Examples:
     
    67100# 1024.5 W m-2          Sol today x 0.75 = weak early Sun
    68101# 18.462 W m-2          The feeble Gl581
     102# 19.960 W m-2          Gl581 with e=0.38 orbital average
    69103Fat1AU = 1366.0
     104
    70105
    71106## Tracer and aerosol options
    72107## ~~~~~~~~~~~~~~~~~~~~~~~~~~
    73 # Gravitational sedimentation of tracers (KEEP FALSE FOR NOW) ?
    74 sedimentation = .false.
     108# Gravitational sedimentation of tracers (just H2O ice for now) ?
     109sedimentation = .true.
    75110
    76111## Other physics options
     
    92127## ~~~~~~~~~~~~~~~~~~~~~~~~~~
    93128# Number of radiatively active aerosols
    94 naerkind=1
     129naerkind = 1
     130# Varying H2O cloud fraction?
     131CLFvarying    = .true.
     132# H2O cloud fraction?
     133CLFfixval     = 1.
     134# number mixing ratio of CO2 ice particles
     135Nmix_co2      = 1.e5
     136# basic dust opacity
     137dusttau       = 0.0
     138# water cloud pressure level (norm. by psurf)
     139cloudlvl      = 0.0
     140# atm mass update due to tracer evaporation/condensation?
     141mass_redistrib = .true.
    95142# Radiatively active CO2 aerosol?
    96143aeroco2       = .false.
     
    101148# Fixed water aerosol distribution?
    102149aerofixh2o  = .false.
    103 # basic dust opacity
    104 dusttau       = 0.0
    105 # Varying H2O cloud fraction?
    106 CLFvarying    = .true.
    107 # H2O cloud fraction if fixed?
    108 CLFfixval     = 0.5
    109 # fixed radii for cloud particles?
    110 radfixed=.false.
    111 # number mixing ratio of CO2 ice particles
    112 Nmix_co2      = 100000.
     150# Radiatively active sulfur aersol?
     151aeroh2so4     = .false.
     152# fixed radii for h2o cloud particles?
     153radfixed=.true.
    113154# number mixing ratio of water particles (for rafixed=.false.)
    114 Nmix_h2o      = 1.e7
     155Nmix_h2o      = 4e6
    115156# number mixing ratio of water ice particles (for rafixed=.false.)
    116 Nmix_h2o_ice      = 5.e5
    117 # radius of H2O water particles (for rafixed=.true.):
    118 rad_h2o=10.e-6
     157Nmix_h2o_ice      = 2.e4
     158# radius of H2O water particles (for rafixed=.true.): (CHANGED FROM 10 TO 12 AFTER BENJAMIN)
     159rad_h2o=12.e-6
    119160# radius of H2O ice particles (for rafixed=.true.):
    120161rad_h2o_ice=35.e-6
    121 # atm mass update due to tracer evaporation/condensation?
    122 mass_redistrib = .false.
    123162
    124163## Water options
     
    130169# Model water precipitation (including coagulation etc.)
    131170waterrain     = .true.
     171# Moist adjustment
     172moistadjustment = .true.
    132173# Use simple precipitation scheme?
    133174precip_scheme=4
    134175# multiplicative constant in Boucher 95 precip scheme
    135 Cboucher=1.
    136 # WATER: hydrology ?
     176Cboucher=0.6
     177# Include hydrology ?
    137178hydrology     = .true.
    138 # Spectral Dependant Albedo ?
    139 albedo_spectral_mode=.false.
    140 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    141 # If albedo_spectral_mode=.true., albedosnow becomes the 0.5 micron snow albedo.
    142 #
    143 # albedosnow = 0.95  (0.73 Sun-integrated) for fresh snow.
    144 #            = 0.50  (0.39 Sun-integrated) for dirty snow.
    145 #            = 0.78  (0.60 Sun-integrated) for 'realistic' snow.
    146 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     179# active runoff ?
     180activerunoff  = .true.
    147181# H2O snow (and ice) albedo ?
    148 albedosnow    = 0.60
     182albedosnow    = 0.65
    149183# Maximum sea ice thickness ?
    150184maxicethick   = 10.
     
    153187# Evolve surface water sources ?
    154188sourceevol    = .false.
     189# compute lightning rate ?
     190compute_lightning     = .true.
    155191
    156192## CO2 options
    157193## ~~~~~~~~~~~
    158 # Co2 ice albedo ?
    159 albedoco2ice   = 0.5
    160 # gas is non-ideal CO2 ?
    161 nonideal      = .false.
    162194# call CO2 condensation ?
    163195co2cond       = .false.
     
    165197nearco2cond   = .false.
    166198
     199## Subsurface options
     200## ~~~~~~~~~~~~~~~~~~
     201# Number of subsurface layers (For Earth 14 is OK; for Mars 18)
     202nsoilmx=14
     203# Thickness of topmost soil layer (m) (For Earth 0.03 is OK; for Mars 0.0002)
     204lay1_soil=0.03
     205#Coefficient for soil layer thickness distribution (default is 2)
     206alpha_soil=2
     207
     208## Ocean options
     209## ~~~~~~~~~~~~~
     210# Model slab-ocean (Main flag for slab ocean)
     211ok_slab_ocean = .true.
     212# The following flags can only be set to true if ok_slab_ocean is true
     213# Ekman transport
     214slab_ekman = .true.
     215# Ekman zonal advection
     216slab_ekman_zonadv = .true.
     217# Horizontal diffusion (default coef_hdiff=25000., can be changed)
     218slab_hdiff = .true.
     219# Slab-ocean timestep (in physics timesteps)
     220cpl_pas = 1
     221# sea-ice
     222#ok_slab_sic   = .true.
     223# Gent-McWilliams Scheme (can only be true if slab_ekman is true)
     224slab_gm   = .true.
     225# Slab convective adjustment? 0 - no, 1 - yes
     226slab_cadj = 1
     227# H2O snow (and ice) albedo for sea ?
     228#albedosnowsea    = 0.65
     229
Note: See TracChangeset for help on using the changeset viewer.