I can't think of an easy way to make this happen. I'm assuming the goal here is to keep a 24-hour day length, but have 730 days per year.
There are two issues: (1) controlling how the sunshine is distributed (orbital parameters), and (2) controlling how much solar irradiance there is at the top of atmosphere.
Here are some ideas about how I think you could do this, but I haven't tested any of this. Follow up if you find a different/better approach or this doesn't work.
ORBITAL PARAMTERS
Conceptually one would change the number of days per year by slowing down the revolution about the sun. I don't know that this can be done very easily right now. The shr_orb_mod module is going to need to be modified to do it. That module is in:
$CESMROOT/cime/src/share/util/shr_orb_mod.F90
The shr_orb_cosz function calculates the cosine of solar zenith angle, and it appears to assume a 365-day year. The orbital parameters are derived based on Berger (1978). This would have to be avoided somehow because it will put the planet in the wrong place of the modified orbit. The subroutine shr_orb_decl is used for the solar declination angle, and it is hard-coded to a 365-day year as well.
- Looking at shr_orb_cosz, it might work if the declination is correct for the target configuration.
- except that it expect to get julian day as an input; so if you don't modify the places where it gets called, then you'll need to make a correction somehow
- Actually, under normal usage, shr_orb_cosz switches to use shr_orb_avg_cosz. I think the same thing would apply, but consult Zhou et al. (2015
https://doi.org/10.1002/2015GL063239) to confirm.
- To make a correction to the solar declination, change the parameter dayspy to 730. There's another parameter for vernal equinox, and you will need to make a decision for what to do with that (suggestion below). There's a formula from Berger to get the true longitude. I'm not sure whether that formula matters for this idealized orbit, so you could just set "lamb = lambm" maybe, but I don't know if there are any consequences to doing that.
-
The key to slowing down the planet's movement through its orbit is to control the longitude that is used for the solar declination
- I think to do that, you could replace the shr_orb_params subroutine
- I wonder if you could get away with using fixed orbital parameters and setting the eccentricity to 0 (circular orbit), specify the normal obliquity, and just put mvelp = 730/4.
SOLAR IRRADIANCE
This might be easier, but depends on what your needs are.
The solar irradiance is controlled by $CAMROOT/src/chemistry/utils/solar_irrad_data.F90 along with namelist variables. Usually the irradiance is taken from a file and depends on the model's current date.
The namelist parameters (see solar_data.F90) are:
Code:
namelist /solar_data_opts/ &
solar_irrad_data_file, solar_parms_data_file, solar_euv_data_file, solar_wind_data_file, &
solar_data_type, solar_data_ymd, solar_data_tod, solar_const, solar_htng_spctrl_scl
I think you might be able to specify "solar_const" as a number (e.g., 1361 W/m2) and avoid any date checking.
see also:
-
How to set the orbital parameter acceleration in CESM1.0?
- Zhou, L., M. Zhang, Q. Bao, and Y. Liu (2015), On the incident solar radiation in CMIP5 models.
Geophys. Res. Lett., 42, 1930–1935. doi:
10.1002/2015GL063239.
- "RESOURCES FOR CESM1.2 PALEOSIMULATIONS" --
https://www2.cesm.ucar.edu/models/paleo/faq/