Leeds-MONC / monc

MONC (Leeds fork)
BSD 3-Clause "New" or "Revised" License
5 stars 18 forks source link

HIGHTUNE based large-scale forcing #16

Closed leifdenby closed 4 years ago

leifdenby commented 4 years ago

MONC documentation (see section on "4.9 Configuration for atmospheric forcing"): https://www.overleaf.com/project/5e467337742dd800019e2448

From Todd:

The modifications to read forcing data from a file can be found in main/branches/dev/toddjones/r7304_tvfff. Just take the latest revision. N.B., this is a branch-of-branch that includes a number of other things, such as one version of the wiwwiwi (time_basis) code (which I think works here, but has since been further changed). The commits on this get a little dicey toward the end, as I was moving changes up and down the branch line

leifdenby commented 4 years ago

@stevenleeds It turns I was wrong about whether the time-varying forcing (based on reading in netCDF-files) functionality that Todd has implemented is part of the new release that Adrian is producing, it is. You can see the file is part of the pull-request I made for reviewing the new version here: https://github.com/Leeds-MONC/monc/pull/14/files#diff-8b9169897907a51314b9ba7c9cb32991 (you'll need to click to "load diff" to see the changes)

I'm going to try and cherry-pick that file out and make a separate branch from our current master

leifdenby commented 4 years ago

Talking with @stevenleeds about this just now we've typed up an overview of our current understand of how MONC applies forcings and what we'd like to get to: https://docs.google.com/document/d/1mz2Ajo4ABdMQBHEYTKmNgBUV4Y9iZjCCLdlbtu1aYgU/

leifdenby commented 4 years ago

TODO

leifdenby commented 4 years ago

You for reference @stevenleeds here's a list of namelist parameters that appear to be relevant to forcing and initialisation in MONC as of v0.9.0 (this is from https://github.com/Leeds-MONC/monc/blob/v0.9.0/testcases/shallow_convection/bomex.mcf):

# Initialization of fields
l_init_pl_theta=.true.
z_init_pl_theta=0.0, 520.0, 1480., 2000., 3000.
f_init_pl_theta=298.7, 298.7, 302.4, 308.2, 311.85
l_init_pl_u=.true.
z_init_pl_u=0.0, 700.0, 3000.
f_init_pl_u=-8.75, -8.75, -4.61
l_init_pl_v=.false.
l_init_pl_q=.true.
names_init_pl_q=vapour
z_init_pl_q=0.0, 520.0, 1480., 2000., 3000.
f_init_pl_q=17.0e-3, 16.3e-3, 10.7e-3, 4.2e-3, 3.0e-3

l_matchthref=.false.

# Random noise
l_rand_pl_theta=.true.
z_rand_pl_theta=0.0, 500.0, 501.0, 3000.
f_rand_pl_theta=0.5, 0.5, 0.0001, 0.0001

# Simple cloud
max_height_cloud=3000.

# physical constants
z0=0.0002
z0th=0.0002

# Coriolis
fcoriol=0.0000376
baroclinicity_use_geostrophic_shear=.true.
geostrophic_wind_rate_of_change_in_x=0.0018
geostrophic_wind_rate_of_change_in_y=0.0
surface_geostrophic_wind_x=-10.
surface_geostrophic_wind_y=0.0

# Damping configuration
dmptim=0.001
zdmp=2300.0
hdmp=2000.0

# Subsidence profile
l_subs_pl_theta=.true.
z_subs_pl=0.0, 1500.0, 2100.0, 3000.
f_subs_pl=0.0, -0.0065, 0.0, 0.0
l_subs_pl_q=.true.

#SUBSIDENCE=1, DIVERGENCE=0
subsidence_input_type=1 
subsidence_local_theta=.true.
subsidence_local_q=.true.

# Large-scale forcing
l_constant_forcing_theta=.true.
l_constant_forcing_q=.true.
l_constant_forcing_u=.false.
l_constant_forcing_v=.false.

# Unit options are K/s or K/day
units_theta_force=K/day
l_constant_forcing_theta_z2pressure=.true.
z_force_pl_theta=0.0, 1500.0, 2500.0, 3000.
f_force_pl_theta=-2.0, -2.0, 0.0, 0.0

names_constant_forcing_q=vapour
z_force_pl_q=0.0, 300.0, 500.0, 3000.
f_force_pl_q=-1.2e-5, -1.2e-5, 0.0, 0.0
# Unit options are kg/kg/s, kg/kg/day, g/kg/s or g/kg/day
units_q_force=g/kg/s

convert_input_theta_from_temperature=.true.

convert_input_specific_to_mixingratio=.true. # Not yet implemented

# TENDENCY=0, RELAXATION=1, INCREMENTS=2
constant_forcing_type_theta=0
constant_forcing_type_q=0
constant_forcing_type_u=0
constant_forcing_type_v=0
leifdenby commented 4 years ago

I'm going to close this since implementation is going to be tracked in https://github.com/Leeds-MONC/monc/issues/26