E3SM-Ocean-Discussion / E3SM

Ocean discussion repository, for ocean issues and longer-term pull requests for E3SM source code. Please make pull requests that are ready to merge into https://github.com/E3SM-Project/E3SM
https://e3sm.org
Other
1 stars 0 forks source link

Add cryo terms to coupler budget #74

Closed darincomeau closed 9 months ago

darincomeau commented 10 months ago

Adds five new o2x coupling fields and terms to coupler budget for polar configurations:

wism - water from ice shelf basal melting (either prognostic or data) wrrof - water removed from Antarctica liquid runoff wriof - water removed from Antarctica solid runoff

hism - heat from ice shelf basal melting hriof - heat from removed ice runoff

darincomeau commented 10 months ago

yep I got there as well, except it's still the 7th here!

xylar commented 10 months ago

yep I got there as well, except it's still the 7th here!

Yep, but you won't have an initial condition today, that's my prediction. So you can prove my placeholder wrong by being faster than I gave you credit for!

darincomeau commented 10 months ago

Yep, but you won't have an initial condition today, that's my prediction. So you can prove my placeholder wrong by being faster than I gave you credit for!

IC already generated and staged, test running now!

darincomeau commented 10 months ago

and it's indeed being read in correctly (case still building)

<immutable_stream name="restart_ic"
                  type="input"
                  io_type="pnetcdf"
                  filename_template="/lcrc/group/e3sm/data/inputdata/ice/mpas-seaice/IcoswISC30E3r5/mpassi.IcoswISC30E3r5.rstFromG-DIB-chrysalis.20240207.nc"
                  filename_interval="none"
                  input_interval="initial_only" />
darincomeau commented 10 months ago

ne30pg2_IcoswISC30E3r5.CRYO1850-DISMF now time-stepping. We can cross that one off as well. I've posted the fix in it's own branch here: https://github.com/darincomeau/E3SM/tree/ice/add-icos-dib-ic

Nice job tracking that down @xylar !

cbegeman commented 10 months ago

You guys are awesome! Nice work!

cbegeman commented 10 months ago

@darincomeau Do you want to cherry-pick my units fix to accumulated*Flux variables 285be919629f04d40cf3402bf6e69c865d47d580? Now that there are changes to the conservation AM included in this PR, I think we might as well add it.

darincomeau commented 10 months ago

@mark-petersen can you check the proposed unit changes in the conservation check analysis member's Registry here https://github.com/E3SM-Ocean-Discussion/E3SM/commit/285be919629f04d40cf3402bf6e69c865d47d580?

@cbegeman and I looked into this and see the flux variables being multiplied by m^2 here: https://github.com/E3SM-Project/E3SM/blob/50485d0c929a873b5935ea3c2dc1da4d236319dd/components/mpas-ocean/src/analysis_members/mpas_ocn_conservation_check.F#L954 and not divided out again. Also when we look at the values that are written out to the conservation check analysis member, we can back out values in kg m^-2 s^-1 that appear in the ocn.log file from this analysis member by scaling by 1/area again.

The reason we're looking here is we want to use these accumulated*Flux quantities to produce a net AIS runoff time series plot for polar simulations to compare to global ssh anomaly, and to us everything is consistent if these quantities are actually in units kg s^-1.

Also, many thanks @mark-petersen for your work on this analysis member in the past. It's made verification of this coupler budget accounting much easier.

xylar commented 10 months ago

@darincomeau, thanks for the progress yesterday! I haven't managed to do any more debugging yet today. I'll see what I can manage this evening. @darincomeau, if I do a merge with https://github.com/E3SM-Project/E3SM/pull/6221, is this branch otherwise up-to-date with what you're testing with?

darincomeau commented 10 months ago

@xylar yes this is up to date. Would you like me to cherry-pick that sea ice IC commit over here, or were you going to do a local merge? I'm planning on doing a clean branch for the actual E3SM PR to clean up commit history, so it's fine to add changes to files here we otherwise won't have in the final PR.

I was planning to start the heat terms today, but I'll keep that local until it's complete.

xylar commented 10 months ago

@darincomeau, I'm still debugging, writing out the streams I recommended above.

One thought: could it be that the coupler is masking out the ice shelves when it sums up the fluxes? We certainly mask out ice shelves in some fields (e.g. those that get remapped to the atmosphere or those that get sent to sea ice). Of course, that wouldn't explain why we're not getting zeros for prognostic melt.

xylar commented 10 months ago

I can confirm that the variable avgLandIceFreshwaterFlux has non-zero values so the problem has to be on the coupler side of things.

darincomeau commented 10 months ago

One thought: could it be that the coupler is masking out the ice shelves when it sums up the fluxes? We certainly mask out ice shelves in some fields (e.g. those that get remapped to the atmosphere or those that get sent to sea ice). Of course, that wouldn't explain why we're not getting zeros for prognostic melt.

@xylar I don't think this is what's going on, though this issue did come up. I commented in the code, I'll ping you where I made a change to get the coupler to not mask out ice shelves. It seems to be doing the right thing, but it was a bit of guesswork. Also, in the original implementation where I was sending the data ISMF directly from ocn_comp_mct.F, without averaging over coupling interval, DISMF did show up in the coupler table (in a table at the top of the PR).

darincomeau commented 10 months ago

I can confirm that the variable avgLandIceFreshwaterFlux has non-zero values

Right, I saw this too, it ends up non-zero in timeSeriesStatsMonthly, as well as in the ocean conservation analysis member. That led me to think it was something specific to the mpas_ocn_time_average.F routine.

darincomeau commented 10 months ago

@xylar it's late, get some rest! I haven't had a chance to do anything here today, maybe when I implement the heat terms this evening, something will magically pop out.

darincomeau commented 9 months ago
(seq_diag_print_mct) NET HEAT BUDGET (W/m2): period =  monthly: date =     10201     0
                           atm            lnd            rof            ocn         ice nh         ice sh            glc        *SUM*
         hfreeze     0.00000000     0.00000000     0.00000000     0.06212584    -0.06212584     0.00000000     0.00000000     0.00000000
           hmelt     0.00000000     0.00000000     0.00000000    -0.41618844     0.33142624     0.08507855     0.00000000     0.00031635
          hnetsw  -172.11170145    35.69859350     0.00000000   136.29059592     0.06204593     0.06810322     0.00000000     0.00763712
           hlwdn  -332.39451972    80.08749536     0.00000000   247.09087671     5.01251824     0.20517240     0.00000000     0.00154300
           hlwup   388.84155761   -98.86623025     0.00000000  -283.46553532    -6.27045094    -0.23999653     0.00000000    -0.00065543
         hlatvap    83.00674983    -6.87900876     0.00000000   -76.09764783    -0.02550562    -0.00479259     0.00000000    -0.00020497
         hlatfus     0.67328674    -0.35937298     0.00000000    -0.24544797    -0.06723218    -0.00120155     0.00000000     0.00003206
          hiroff     0.00000000     0.04587322     0.00000000    -0.04559532     0.00000000     0.00000000     0.00000000     0.00027791
            hsen    19.75339851    -8.47541141     0.00000000   -11.26688638    -0.01226106     0.00067890     0.00000000    -0.00048143
           hberg     0.00000000     0.00000000     0.00000000    -0.06320892     0.00000000     0.00000000     0.00000000    -0.06320892
            hism     0.00000000     0.00000000     0.00000000     0.01125439     0.00000000     0.00000000     0.00000000     0.01125439
           hriof     0.00000000     0.00000000     0.00000000     0.03160610     0.00000000     0.00000000     0.00000000     0.03160610
        hh2otemp     0.42776435     0.00000000     0.00000000    -0.42799595     0.00000000     0.00000000     0.00000000    -0.00023160
           *SUM*   -11.80346412     1.25193868     0.00000000    11.45795284    -1.03158523     0.11304241     0.00000000    -0.01211542

(seq_diag_print_mct) NET WATER BUDGET (kg/m2s*1e6): period =  monthly: date =     10201     0
                           atm            lnd            rof            ocn         ice nh         ice sh            glc        *SUM*
         wfreeze     0.00000000     0.00000000     0.00000000    -0.18617274     0.18617274     0.00000000     0.00000000    -0.00000000
           wmelt     0.00000000     0.00000000     0.00000000    -2.45519385     2.78357026    -0.32692927     0.00000000     0.00144714
           wrain   -31.38352297     5.15651606     0.00000000    26.20419654     0.01291856     0.00159838     0.00000000    -0.00829343
           wsnow    -2.01764082     1.07693431     0.00000000     0.73553482     0.20147491     0.00360070     0.00000000    -0.00009608
           wevap    33.18177647    -2.74422912     0.00000000   -30.42688838    -0.00902837    -0.00171256     0.00000000    -0.00008195
         wrunoff     0.00000000    -0.36266438     0.17583865     0.18515025     0.00000000     0.00000000     0.00000000    -0.00167548
         wfrzrof     0.00000000    -0.13746845     0.00000000     0.13663565     0.00000000     0.00000000     0.00000000    -0.00083280
           wberg     0.00000000     0.00000000     0.00000000     0.18475440     0.00000000     0.00000000     0.00000000     0.18475440
            wism     0.00000000     0.00000000     0.00000000     0.03372607     0.00000000     0.00000000     0.00000000     0.03372607
           wrrof     0.00000000     0.00000000     0.00000000    -0.05490293     0.00000000     0.00000000     0.00000000    -0.05490293
           wriof     0.00000000     0.00000000     0.00000000    -0.09471410     0.00000000     0.00000000     0.00000000    -0.09471410
          wirrig     0.00000000     0.00000000     0.00000000     0.00000000     0.00000000     0.00000000     0.00000000     0.00000000
           *SUM*    -0.21938732     2.98908842     0.17583865    -5.73787427     3.17510811    -0.32344276     0.00000000     0.05933083

Now with heat flux terms for ice shelf melt (hism) and removed ice runoff (hriof).

I left off heat flux due to removedRiverRunoff, which I'm not sure how to handle.

darincomeau commented 9 months ago

while the units were technically correct, changed to W/m^s

darincomeau commented 9 months ago

Thanks for pointing to that design document Andrew, I had been looking at an older version. We'll get started on that.

darincomeau commented 9 months ago

Closing in favor of https://github.com/E3SM-Project/E3SM/pull/6229