Hello CICE Community,
I am a MSc student in the Atmospheric and Oceanic Sciences at Mcgill University in Montreal. I'm working on wave-ice interaction, precisely I'm trying to couple CICE to an ocean wave model called Wavewatch III (WW3). Recently, I have tried to run a 'spin up' simulation of 10 years of CICE starting from no ice (i.e. ice_ic ='none') to provide the initial conditions for my coupled simulation. While doing that, I encountered two problems with the floe-size distribution:
1) Problem with an emerging FSD without waves.
As mentionned, I tried to run a 10 year simulation starting from ice_ic = 'none'. Since I was running an uncoupled simulation (i.e. no waves) the following options were used :
wave_spec_type='none', wave_spec_file='unknown_wave_spec_type'. As for the other configuration I set nfsd = 12 and tr_fsd=.true. Even if there is no waves, the FSD should still be able to evolve (there is still new ice, lateral growth/melt and welding). However, with that configuration the floes are not growing : after 10 years of simulation my floes only have a mean floe diameter of approx. 2.5m. That means that all the new ice is going is the smallest bin categorie and there was no effective transfer from the smallest bin categorie to the others.
This is fixed by starting with the same initial conditions, but with waves (i.e. wave_spec_type='random', wave_spec_file='path_spec_file'). Where path_spec_file represent the path to a wave spectrum file (e.g. ww3.1997-01-01-00000_efreq.nc) generated by WW3 at each timestep. With that, the mean floe diameter grow between 200m to 1 km in less than 24 hours.
Therefore, I think that something might need to be changed in the subroutine fsd_add_new_ice where there is a couple of if (wave_spec) statements. The case where the code deals with wave_spec == false results in unrealistic evolution of the FSD when it is emerging from no ice condition. The following plot represent the ice the mean floe diameter of the wave and no wave cases after 24 hours of simulation :
PS: A similar problem arise when I start with ice_ic = 'internal' without waves. During the first summer all the ice is melting (since it just start with an ice cover of 1 m everywhere) and it can't grow back again.
2) Problem with the output of FSD variables (afsd, dafsd_weld, dafsd_latg, etc.).
As I was trying to understand what was going on with the first problem I also realised that something was wrong about the output of the FSD variables.
- The units of the variable afsd (areal floe-size distribution) seem wrong. To my understanding, the units should be 1 (unitless) (i.e. when you sum all the afsd over the all the fsd categories at one point (sum(afsd(:,j,i))), you should get the concentration at that point (aice(j,i)). However, right now the units are m^-1. You need to multiply by the bin width to fall back on the concentration (i.e. sum(bin_width(:)*afsd(:,j,i)) = aice(j,i)).
- The variable afsd is not outputed at the right time step. For example, the following histogram represent afsd at each timestep at a particular point in the Arctic ocean. At t = 3600 the ice is not formed yet (aice = 0). At t = 7200s some ice is formed (aice = 0.028), but the sum of afsd over all fsd categories is still 0 (as well as the double sum of afsdn over all ice thickness categorie and all the fsd categories. At t=10800 the concentration has increased ( aice = 0.054), however the some of afsd (or afsdn) gives the value of the concentration at the previous timestep.
(NOTE : here afsd is multiplied by the bin width)
- Something also seems wrong with the units of the dafsd variables (dafsd_weld, dafsd_latg, dafsd_newi, etc). Again, to my understanding, the sum of all the dafsd variables in each bin (sum) should be equal to the variation of afsd between two time step (dafsd) in that bin. Here's a table of all the raw dafsd variables, the sum and the variation of the afsd for the two first timestep at a specific point in the Arctic Ocean. As you can see, the sum is never equal to dafsd.
I hope that I managed to be clear, feel free to ask for clarification.
If anyone have encountered simular issues please let me know.
Cheers,
Benjamin Ward
I am a MSc student in the Atmospheric and Oceanic Sciences at Mcgill University in Montreal. I'm working on wave-ice interaction, precisely I'm trying to couple CICE to an ocean wave model called Wavewatch III (WW3). Recently, I have tried to run a 'spin up' simulation of 10 years of CICE starting from no ice (i.e. ice_ic ='none') to provide the initial conditions for my coupled simulation. While doing that, I encountered two problems with the floe-size distribution:
1) Problem with an emerging FSD without waves.
As mentionned, I tried to run a 10 year simulation starting from ice_ic = 'none'. Since I was running an uncoupled simulation (i.e. no waves) the following options were used :
wave_spec_type='none', wave_spec_file='unknown_wave_spec_type'. As for the other configuration I set nfsd = 12 and tr_fsd=.true. Even if there is no waves, the FSD should still be able to evolve (there is still new ice, lateral growth/melt and welding). However, with that configuration the floes are not growing : after 10 years of simulation my floes only have a mean floe diameter of approx. 2.5m. That means that all the new ice is going is the smallest bin categorie and there was no effective transfer from the smallest bin categorie to the others.
This is fixed by starting with the same initial conditions, but with waves (i.e. wave_spec_type='random', wave_spec_file='path_spec_file'). Where path_spec_file represent the path to a wave spectrum file (e.g. ww3.1997-01-01-00000_efreq.nc) generated by WW3 at each timestep. With that, the mean floe diameter grow between 200m to 1 km in less than 24 hours.
Therefore, I think that something might need to be changed in the subroutine fsd_add_new_ice where there is a couple of if (wave_spec) statements. The case where the code deals with wave_spec == false results in unrealistic evolution of the FSD when it is emerging from no ice condition. The following plot represent the ice the mean floe diameter of the wave and no wave cases after 24 hours of simulation :
PS: A similar problem arise when I start with ice_ic = 'internal' without waves. During the first summer all the ice is melting (since it just start with an ice cover of 1 m everywhere) and it can't grow back again.
2) Problem with the output of FSD variables (afsd, dafsd_weld, dafsd_latg, etc.).
As I was trying to understand what was going on with the first problem I also realised that something was wrong about the output of the FSD variables.
- The units of the variable afsd (areal floe-size distribution) seem wrong. To my understanding, the units should be 1 (unitless) (i.e. when you sum all the afsd over the all the fsd categories at one point (sum(afsd(:,j,i))), you should get the concentration at that point (aice(j,i)). However, right now the units are m^-1. You need to multiply by the bin width to fall back on the concentration (i.e. sum(bin_width(:)*afsd(:,j,i)) = aice(j,i)).
- The variable afsd is not outputed at the right time step. For example, the following histogram represent afsd at each timestep at a particular point in the Arctic ocean. At t = 3600 the ice is not formed yet (aice = 0). At t = 7200s some ice is formed (aice = 0.028), but the sum of afsd over all fsd categories is still 0 (as well as the double sum of afsdn over all ice thickness categorie and all the fsd categories. At t=10800 the concentration has increased ( aice = 0.054), however the some of afsd (or afsdn) gives the value of the concentration at the previous timestep.
(NOTE : here afsd is multiplied by the bin width)
- Something also seems wrong with the units of the dafsd variables (dafsd_weld, dafsd_latg, dafsd_newi, etc). Again, to my understanding, the sum of all the dafsd variables in each bin (sum) should be equal to the variation of afsd between two time step (dafsd) in that bin. Here's a table of all the raw dafsd variables, the sum and the variation of the afsd for the two first timestep at a specific point in the Arctic Ocean. As you can see, the sum is never equal to dafsd.
I hope that I managed to be clear, feel free to ask for clarification.
If anyone have encountered simular issues please let me know.
Cheers,
Benjamin Ward