NCAR / amwg_dev

Repo to store model sandboxes and cases used for CAM development
9 stars 2 forks source link

snowpack spinup based on the 26 series runs #188

Open adamrher opened 1 year ago

adamrher commented 1 year ago

Description of the run

Should we generate some CLM initial conditions with spun-up snowpack? This is a two-step process:

  1. Run 20 year F or B case with hi-frequency coupler output for driving an I compset
  2. Run CLM standalone, cycling over streams from the forcing run until the snowpack is spun-up (~500 years)

I am going to propose a B case 20 year forcing run, similar to 26d. That is, I am going to reset_snow / reset_snow_glc for the forcing run. The reason I advocate for resetting the snow in the forcing run, is I want to (if anything) bias the snow pack towards the warm side (favoring less snowpack and freshwater runoff to the LabSea). But I could be talked out of this.

In (1), we need to set namelist to setup the hi-freq coupled history for driving CLM standalone. I've done this with MCT in the past by setting these in user_nl_cpl

histaux_a2x3hr=.true.
histaux_a2x24hr=.true.
histaux_a2x1hr=.true.
histaux_a2x1hri=.true.

I am not sure whether this how you generate the forcing streams with NUOPC though. @mvertens @cecilehannay @JulioTBacmeister @gustavo-marques @fobryan3 @klindsay28 @billsacks @ekluzek @olyson

Suffix in the casename

Suffix

Namelist modifications

Namelist

Source modifications

SourceMods

Sandbox

Requested sandbox or tag

Contact info

Contact information

Any other relevant information

Enter relevant info

fobryan3 commented 1 year ago

I can't provide any guidance on the NUOPC question. I fully endorse the idea of having a more realistic and documented snow IC, but am curious why you advocate for a B-case rather than F-case to generate the forcing data for the I-case. That brings in drift in the atmos. lower boundary condition associated with ocean spinup itself. An alternative if you really want to go with B is to turn on salinity restoring in the ocean for this case to maintain Lab Sea convection.

adamrher commented 1 year ago

but am curious why you advocate for a B-case rather than F-case to generate the forcing data for the I-case. That brings in drift in the atmos.

Good point. An F-case may be more appropriate. But the F-cases always tend to be a-bit warmer (usually about +1 or +2 W/m2 RESTOM), and so don't approximate the B-cases well. I suppose it's a good question to ask whether the drift in the B-case is worse than the mean bias in an F-case. All I'll say is that a little drift in the forcing streams seems to be OK. Here's an example of an offline CLM spin-up, using F-case for the forcing streams, where the forcing is 20 years. There is drift from the "snow free" first year, and the snow covered year 20, of about 0.25K globally.

clm1d_yr2458

gustavo-marques commented 1 year ago

@adamrher: you can save CPL history files by setting XML variables HIST_N and HIST_OPTION.

mvertens commented 1 year ago

@adamrher - doing the type of spin up that you are suggesting is supported by NUOPC but is different that what you do with MCT. To duplicate the following MCT settings

histaux_a2x3hr=.true.
histaux_a2x24hr=.true.
histaux_a2x1hr=.true.
histaux_a2x1hri=.true.

If you look in nuopc.runconfig you will see a set of config variables that are histaux_atm2med_fileN_xxx You need to set the folloiwng in user_nl_cpl

   histaux_atm2med_file1_enabled = .true.
   histaux_atm2med_file2_enabled = .true.
   histaux_atm2med_file3_enabled = .true.
   histaux_atm2med_file4_enabled = .true.
   histaux_atm2med_file5_enabled = .true.

This will turn on the following:

 histaux_atm2med_file1_auxname = atm.1h.inst
 histaux_atm2med_file1_doavg = .false.
 histaux_atm2med_file1_flds = Faxa_swndr:Faxa_swvdr:Faxa_swndf:Faxa_swvdf
 histaux_atm2med_file1_history_n = 1
 histaux_atm2med_file1_history_option = nhours
 histaux_atm2med_file1_ntperfile = 24

 histaux_atm2med_file2_auxname = atm.1h.avrg
 histaux_atm2med_file2_doavg = .true.
 histaux_atm2med_file2_flds = Sa_u:Sa_v
 histaux_atm2med_file2_history_n = 1
 histaux_atm2med_file2_history_option = nhours
 histaux_atm2med_file2_ntperfile = 24

 histaux_atm2med_file3_auxname = atm.3hprec.avrg
 histaux_atm2med_file3_doavg = .true.
 histaux_atm2med_file3_flds = Faxa_rainc:Faxa_rainl:Faxa_snowc:Faxa_snowl
 histaux_atm2med_file3_history_n = 3
 histaux_atm2med_file3_history_option = nhours
 histaux_atm2med_file3_ntperfile = 8

 histaux_atm2med_file4_auxname = atm.3h.avrg
 histaux_atm2med_file4_doavg = .true.
 histaux_atm2med_file4_flds = Sa_z:Sa_topo:Sa_u:Sa_v:Sa_tbot:Sa_ptem:Sa_shum:Sa_dens:Sa_pbot:Sa_pslv:Faxa_lwdn:Faxa_rainc:Faxa_rainl:Faxa_snowc:Faxa_snowl:Faxa_swndr:Faxa_swvdr:Faxa_swndf:Faxa_swvdf:Sa_co2diag:Sa_co2prog
 histaux_atm2med_file4_history_n = 3
 histaux_atm2med_file4_history_option = nhours
 histaux_atm2med_file4_ntperfile = 8

 histaux_atm2med_file5_auxname = atm.24h.avrg
 histaux_atm2med_file5_doavg = .true.
 histaux_atm2med_file5_flds = Faxa_bcph:Faxa_ocph:Faxa_dstwet:Faxa_dstdry:Sa_co2prog:Sa_co2diag
 histaux_atm2med_file5_history_n = 1
 histaux_atm2med_file5_history_option = ndays
 histaux_atm2med_file5_ntperfile = 1

With nuopc these are no longer hard-coded in the code but are run time options. I'm happy to talk about this tomorrow with @adamrher and @gustavo-marques and anyone else that is interested.

adamrher commented 1 year ago

I just spoke to Mariana. We need to debug the cpl history output option in nuopc over the next week before we can do the snowpack spinup. I will keep everyone posted.

adamrher commented 1 year ago

Quick update - we've resolved the issue of generating the streams w/ nuopc. We are meeting on wednesday to iron out setting those streams up for forcing clm standalone.