Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add meltpond coupling #37

Open
kieranricardo opened this issue Oct 1, 2024 · 18 comments
Open

Add meltpond coupling #37

kieranricardo opened this issue Oct 1, 2024 · 18 comments
Assignees

Comments

@kieranricardo kieranricardo changed the title Meltponds Add meltpond coupling Oct 1, 2024
@anton-seaice
Copy link

Can we turn them off ? Is the UM expecting melt ponds ?

@kieranricardo
Copy link
Collaborator Author

kieranricardo commented Oct 1, 2024

@anton-seaice oh I was under the impression we wanted melt ponds, if not that makes life easier.

The UM isn't expecting melt ponds (but we could turn this on), and we're currently using the tr_pond_lvl scheme with the config here

@anton-seaice
Copy link

They should all be off, basically there aren't meltponds in the Antarctic, and previous attempts at using them have overrepresented their impacts in the Antarctic.

We changed this here for OM3:

ACCESS-NRI/access-om3-configs@c45fb28#diff-46cbcfe1a092910fbb4c812ff0cf91d611cd0c5f4201b86c82dfffb6a26ab74aR53

I suggest updating the whole config to the om3-configs, but in the interim, you could just remove tr_pond_lvl as the default is .false.

@blimlim
Copy link

blimlim commented Oct 29, 2024

Following further discussion, it sounds like we want to add the meltpond coupling. I've had a go at following the instructions in the issue description. Branches with the changes are available here:

A lot of it is still a bit over my head, and so there is a chance I've missed something here. The above changes have no impact however. The following shows the surface temperature on the 31st day of simulations with and without the changes

temp_difference

I'm not sure whether anything is done by the UM with the pond_frac_cat and pond_depth_cat variables once they're imported. The only place I can see them outside of the variable definition routines is in rad_ctl.F90 https://github.com/ACCESS-NRI/cm3-um/blob/3eb408bc535ed183e32054d683c62541bced09d9/src/atmosphere/radiation_control/rad_ctl.F90#L2306-L2309
where they are used to set ainfo%pond_frac_cat_sicat and ainfo%pond_depth_cat_sicat, however these don't seem to be used anywhere else.

In /g/data/access/rose-meta/um/um-atmos/vn13.0/rose-meta.conf it has

[namelist:jules_sea_seaice=l_sice_meltponds_cice]
compulsory=true
description=Sea-ice albedo is affected by meltponds (from CICE meltponds scheme)
sort-key=35

I'm wondering whether the meltponds impacting albedo is part of JULES, and so not having any effect for us?

@anton-seaice
Copy link

I think JULES doesn't include Antarctica ?

If you have a look at the f_apond_ai field in the CICE output you should get a sense of if CICE is generating any meltponds? If you only ran for a month, it might just be the model needs to be run longer?

Also you might need to turn on restart_pond_lvl = .true. in ice_in

@blimlim
Copy link

blimlim commented Oct 29, 2024

Todo from meeting:

  • Switch from tr_pond_lvl=.true. to tr_pond_topo=.true., also use restart_pond_topo=.true.
  • Switch to exporting trcrn(:,:,nt_apnd_out,:,:) rather than apeffn for the melt pond fraction.

@blimlim
Copy link

blimlim commented Oct 29, 2024

With the current coupling and pond scheme, something is also incorrect with the pond depth trcrn(:,:,nt_hpnd,:,:) export to the mediator. The mediator receives zero everywhere while the pond depth in cice is not zero:
pond_depth

@anton-seaice
Copy link

Just confirming that there is mediator output on other fields ? We had an issue at one point where the mediator output didn't work at all?

Also - wondering if trcrn(:,:,nt_hpnd,:,:) returns a 4d array ? Maybe try writing it to a temporary array ?

@blimlim
Copy link

blimlim commented Oct 31, 2024

Sorry about this – turns out the issue was me not understanding how to build properly, and the code changes didn't make their way into the runs... After doing that properly and swapping to the tr_pond_topo scheme we get the following pond fraction and pond depth imports/exports for ice category 1 in the mediator:

jan31_pondfn1
jan31_pondtn1

(I've rolled the ice export data so that it better lines up with the atmosphere in the plots)

The pond fraction to the mediator very closely matches apondn in the ice history:
pondfn_mediator_diff

But the pond depth sent to the mediator is greater than the hpondn history variable:
hpondn_mediator_diff

I think because the hpondn output weights the pond depth by the pond fraction to get the average pond depth over the sea ice.

Need to try and understand what the UM requires when the l_sice_meltponds_cice is switched on. E.g. The raw pond area tracer trcrn(:,:,nt_apnd,1:ncat_hist,iblk) has a different meaning for tr_pond_topo vs tr_pond_level. For tr_pond_topo it's the fraction of ice covered by ponds, and for tr_pond_level, it's the fraction of level ice covered by ponds (useful info here).

@ofa001
Copy link

ofa001 commented Nov 1, 2024

HI @blimlim I will have a look next week, I thought the pond fraction looked quite high, for cat 1 and 2 mor like what total ice conc might be. Might still be something not quite right but progress over the levl ice set up.

@blimlim
Copy link

blimlim commented Nov 3, 2024

Thanks @ofa001. I've had a look into the JULES jules_ssi_albedo routine and am putting together some notes with the details.=. My understanding is that we should send both the pond fraction and pond depth without any weighting when using the topo scheme - which would correspond to a_pnd and h_pnd on this page, and I think these would be trcrn(:,:,nt_apnd,:,:) and trcrn(:,:,nt_hpnd,:,:) in the code.

@ofa001
Copy link

ofa001 commented Nov 4, 2024

HI @bimlim It will be best to line it up with what we sent in ACCESS-CM2, I will get you the relevent lines of code in a couple of hours after my next set of meetings, and will check if/when weighting where applied on the CICE or UM side of the coupling. Glad you are looking at some of the JULES routines!

@blimlim
Copy link

blimlim commented Nov 6, 2024

Some todos/questions to resolve from the meeting:

  • Run for a couple of years and investigate ponds further from the initialisation – do we still get large pond fractions?
  • Check pond areas are conserved through the coupling
  • Abort simulations if tr_pond_lvl is selected.
  • [ ] Incorporate ice lids into pond areas
  • [ ] Multiple ice lid parameterisations available – which are we using/should we use?
  • Send effective pond fraction apeffn rather than raw pond fraction apndn to incorporate the automatic effects of ice lids

@ofa001
Copy link

ofa001 commented Nov 12, 2024

If we are using tr_pond_topo, which is what I would recommend then icepack_shortwave has this section of code already set up. So if the lid is

Calculate effective pond area for HadGEM

     if (tr_pond_topo) then
        do n = 1, ncat
           apeffn(n) = c0
           if (aicen(n) > puny) then
           ! Lid effective if thicker than hp1
             if (apndn(n)*aicen(n) > puny .and. ipndn(n) < hp1) then
                apeffn(n) = apndn(n)
             else
                apeffn(n) = c0
             endif
             if (apndn(n) < puny) apeffn(n) = c0
           endif
        enddo  ! ncat

@ofa001
Copy link

ofa001 commented Nov 12, 2024

The sentence above should read. "so if the lid is > hp (=0.01) then the system already sets the apeffn=0. So you don't need to change". Apologies, I had a system problem and need to reboot, after several trues to edit.

@ofa001
Copy link

ofa001 commented Nov 12, 2024

The other lid scheme is the Stefan approximation is part of icepack_melpond_lvl scheme but we are going to set a switch to abort if that option is chosen, so I think the scheme should already include lids if they are forming in the topo scheme but it would be good to check that it is in practise.

@blimlim
Copy link

blimlim commented Nov 12, 2024

Hi @ofa001, thanks for looking into this! It turns out I'm currently sending the raw pond fraction apndn rather than the effective pond fraction apeffn, meaning that the effects of the ice lids aren't showing up in our results. This was due to a mistake I made earlier on. I thought apeffn was only set when calc_Tsfc=.true. and hence swapped to sending the raw pond fraction apndn, but this was incorrect! Apologies about this!

Swapping to apeffn should help a lot with the large pond fractions appearing on the thinner ice. The following shows the raw pond fraction 'apndn, the effective fraction apeffn`, and their difference on Jan 30 of the first year:

Image

I've added fixing this to my todo list above.

@ofa001
Copy link

ofa001 commented Nov 12, 2024

Hi @blimlim, Thats good news its a big difference, I thought I would have seen values like this before in CM2.

I am going to look into the ice thickness issue next, again it may not be as big as your plot showed, as it will only effect the lowest ice thickness category, so around the ice edge mostly, and I am wondering if I am mixing up our old CSIRO model where our multi layer model did become 'zero layer' as it got thinner, same with snow models (in pre-CABLE set up).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants