-
Notifications
You must be signed in to change notification settings - Fork 132
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
Implement box model test from 2001 JCP paper #151
Conversation
…stic sea ice dynamics with the EVP model: linearization issues. J. Comp. Phys. 170, 18-38.)
Unless I'm mistaken, modifications to |
All,
I modified dxrect, dyrect from 30.e5 to 16.e5 in ice_grid.F90. We can
set grid spacing with a namelist variable.
This test case does not presently have constant coriolis. I used kdyn=1.
The Hunke 2001 paper used kdyn=3 (not presently supported).
Rick
…On 6/20/2018 12:59 PM, Matthew Turner wrote:
Unless I'm mistaken, modifications to |ice_init.F90| and
|ice_grid.F90| will likely need to be made prior to merging. Right
now, it looks like some values were changed in order for this case to
run (although I could be mistaken).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#151 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/Ab21h3UmBHy18MfJ4qoKpnEt0eCfd-YPks5t-o2RgaJpZM4Uvuf4>.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are there things outstanding still to do, like setting the grid box size or the coriolis setup? I agree it makes sense to add a couple namelist to define dx and dy for the box grids. We will probably need/want a few different grids for the various cases.
The constant coriolis and namelist settings to define dx and dy still
need to be set up.
Rick
…On 6/24/2018 6:38 PM, Tony Craig wrote:
***@***.**** commented on this pull request.
Are there things outstanding still to do, like setting the grid box
size or the coriolis setup? I agree it makes sense to add a couple
namelist to define dx and dy for the box grids. We will probably
need/want a few different grids for the various cases.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#151 (review)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/Ab21h7YVke_zN4bovfcbF2gX0jfP9LRoks5uACMHgaJpZM4Uvuf4>.
|
I just pushed modifications that include a constant coriolis (included as a namelist option), and there are also namelist settings to define dx and dy. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry it's taken so long for me to look at this.
I think dxrect,dyrect should always be user specified, and I recommend making those the namelist entries rather than x_spacing,y_spacing with the grid_spacing flag.
Also, these new namelist variables need to be added to the documentation along with a description of the new configuration and tests. @duvivier can help locate the right places in the docs, keeping in mind that we will have a variety of tests using the box configuration. This documentation could be put in a separate PR, but we at least need to document the namelist changes.
This PR has been updated to have dxrect and dyrect in the namelist instead of x_spacing and y_spacing. Documentation has not yet been addressed |
Is there a run that validates against the original results? |
@apcraig , not yet. I run the full base_suite to make sure these changes didn't introduce new errors, but I can go ahead and generate a baseline and compare this PR to the baseline. Do you think I should make the baseline from |
I don't have the original results from CICE4. Elizabeth, do you have any
output files, say from a three day run so we can at least look at the
results qualitatively?
Rick
…On 8/2/2018 5:36 PM, Tony Craig wrote:
Is there a run that validates against the original results?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#151 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/Ab21h3jSaLSvFX7qpZw2lOU_VMlQ1QHrks5uM38KgaJpZM4Uvuf4>.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like this better. The box_data subroutine and initialization needs some more work to implement the symmetry test, but let's put that in a separate PR. Please add dxrect, dyrect and coriolis to the documentation. What's the purpose of set_nml.gbox80? Those parameters are included in set_nml.box2001. I'll run the code to see if it does what I expect.
I included set_nml.gbox80 so that users could use the gbox80 grid without needing to use the box2001 test. So, users could use the gbox80 configuration to build their own test. |
The code runs but isn't configured correctly. There are several issues:
|
Let me take a look....
Rick
…On 8/3/2018 2:04 PM, Elizabeth Hunke wrote:
The code runs but isn't configured correctly. There are several issues:
* It looks like block boundaries aren't being handled correctly. I
would guess that this is in the initialization.
* There should be land cells around the entire domain, not just the
2 corners.
* The 2001 test is for dynamics only, so ice area and thickness
should remain constant. That requires turning off the
thermodynamics and the ridging. We can create additional tests
with those things turned on, once we get this basic one working.
* The ocean currents do not have the correct pattern (should be
circular). I'm not sure if the atmo vectors are correct, they are
at least pointed in roughly the right direction but also seem to
have the block-boundary problem.
aice
<https://user-images.githubusercontent.com/8173983/43660515-83a329f8-971c-11e8-9a02-9eff2612d6d1.png>
uvel
<https://user-images.githubusercontent.com/8173983/43660517-83ed7526-971c-11e8-8e0b-b97c1dbd0820.png>
ocncurrent
<https://user-images.githubusercontent.com/8173983/43660516-83d79990-971c-11e8-8a50-bbfedda0c216.png>
wind
<https://user-images.githubusercontent.com/8173983/43660519-8402fd6a-971c-11e8-8c2b-d796b6bd2437.png>
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#151 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/Ab21h8cfETEoUEah0V3Yo0oryOGVNMCeks5uNJ7EgaJpZM4Uvuf4>.
|
kdyn=0 defeats the purpose of the 2001 test -- it turns the dynamics off and leaves the thermo on. We need to turn the thermo off and have the dynamics on. Turning the thermo off is a little complicated -- there is not a namelist flag to do that. It will need to be added. However, the wind stress needed for the dynamics is calculated as part of the thermodynamics. In the past I've probably handled that by specifying the wind stress directly, as a forcing. The code distinguishes between open (or cyclic) boundaries, which can allow movement across the boundaries if there is no land in the way, and the land mask, which is used to close the boundaries. For the box tests, I usually specify open boundaries and then define the land mask as desired. For the 2001 case we want land cells all the way around the domain. For other tests, e.g. exercising the restoring options, we'll want some of the boundary cells to not be land. Does that make sense? We may want to configure these tests for more than one processor, eventually. I guess that doesn't work because the analytical forcing functions and initial state should be defined globally, and then they need to be broadcast to the processors and blocks. |
Elizabeth,
Thanks. I will look more closely at the edeco code your previously
provided...
Rick
…On 8/8/2018 12:55 PM, Elizabeth Hunke wrote:
kdyn=0 defeats the purpose of the 2001 test -- it turns the dynamics
off and leaves the thermo on. We need to turn the thermo off and have
the dynamics on. Turning the thermo off is a little complicated --
there is not a namelist flag to do that. It will need to be added.
However, the wind stress needed for the dynamics is calculated as part
of the thermodynamics. In the past I've probably handled that by
specifying the wind stress directly, as a forcing.
The code distinguishes between open (or cyclic) boundaries, which can
allow movement across the boundaries if there is no land in the way,
and the land mask, which is used to close the boundaries. For the box
tests, I usually specify open boundaries and then define the land mask
as desired. For the 2001 case we want land cells all the way around
the domain. For other tests, e.g. exercising the restoring options,
we'll want some of the boundary cells to not be land. Does that make
sense?
We may want to configure these tests for more than one processor,
eventually. I guess that doesn't work because the analytical forcing
functions and initial state should be defined globally, and then they
need to be broadcast to the processors and blocks.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#151 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/Ab21h6QasqoYFWKKceRn-KXjuSA2g8djks5uOyYbgaJpZM4Uvuf4>.
|
@mattdturner I assume there will also be some more detailed documentation as well about the box model test and how to implement it. I think this should go in this file: When you get these files started I can help with making sure the references are done correctly, etc. We already reference the Hunke 2001 paper, so we will just need to make sure you use the correct reference when describing the test. |
base_suite results: The 2 failing tests are because pinto does not have 40 processors available for those tests. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this looks fine. I have added one comment about some code that should be removed, but not a big deal. I think this can be merged. I assume it's up to date, more or less, with master and the dynamic allocation implementation?
real (kind=dbl_kind), parameter :: & | ||
dxrect = 30.e5_dbl_kind ,&! uniform HTN (cm) | ||
dyrect = 30.e5_dbl_kind ! uniform HTE (cm) | ||
! real (kind=dbl_kind), public :: & |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should probably be deleted.
I merged |
I ran a full test suite on conrad last night, hash 4626b06 https://github.com/CICE-Consortium/Test-Results/wiki/cice_by_hash_forks. Compared against the current master test suite run over the weekend. One thing, it looks like this branch is one PR behind master. Anyway, I think the results are probably OK. All the box results are different. I assume that's expected. The 1 degree test did not complete because it still has the incorrect namelist. This is fixed on the master with the latest PR. The alt01 and alt03 tests are different, although it's not clear exactly why. This is a little concerning. Is that expected. The results are very different. Looking at the log files, the first diagnostic is after 24 timesteps and it's very different. The ice area is different by a factor of 10 (less), the water balance has a bunch of terms zeroed out that weren't before. It looks like something important has changed. I don't know why it's just alt01 and alt03 that are affected. Is this something we need to understand. In the diff below, it's (diff "new" "baseline")to < represents the new results.
|
Tony,
How does the timing information from the end of the run compare between
the two sets of runs?
Rick
…On 10/22/18 10:25 AM, Tony Craig wrote:
I ran a full test suite on conrad last night, hash 4626b06
<4626b06>
https://github.com/CICE-Consortium/Test-Results/wiki/cice_by_hash_forks.
Compared against the current master test suite run over the weekend.
One thing, it looks like this branch is one PR behind master. Anyway,
I think the results are probably OK. All the box results are
different. I assume that's expected. The 1 degree test did not
complete because it still has the incorrect namelist. This is fixed on
the master with the latest PR. The alt01 and alt03 tests are
different, although it's not clear exactly why. This is a little
concerning. Is that expected. The results are very different. Looking
at the log files, the first diagnostic is after 24 timesteps and it's
very different. The ice area is different by a factor of 10 (less),
the water balance has a bunch of terms zeroed out that weren't before.
It looks like something important has changed. I don't know why it's
just alt01 and alt03 that are affected. Is this something we need to
understand.
In the diff below, it's (diff "new" "baseline")to < represents the new
results.
|>
/p/home/apcraig/cice-consortium/cice.matt.box2001/testsuite.bx01/conrad_intel_restart_gx3_6x2_alt01.bx01>diff
logs/cice.runlog.181022-001223
$WORKDIR/CICE_BASELINES_MASTER/cice.4671a1cb60.181021-000127/conrad_intel_restart_gx3_6x2_alt01/cice.runlog.181021-003247
62d61 < close_boundaries = F 68,70d66 < coriolis = latitude < kridge =
1 < ktransport = 1 111c107 < bgc_data_dir = /uknown_bgc_data_dir --- >
bgc_data_dir = unknown_bgc_data_dir 322,325c318,321 < total ice area
(km^2) = 1.11487362338905167E+07 2.17446721276171021E+07 < total ice
extent(km^2) = 1.11487362338912636E+07 2.17446721276185624E+07 < total
ice volume (m^3) = 2.86493476407170586E+13 5.58781424233335000E+13 <
total snw volume (m^3) = 2.14060204122054199E+12
4.17506420149698242E+12 --- > total ice area (km^2) =
1.47407298426054806E+08 1.92905867664821625E+08 > total ice
extent(km^2) = 1.56324900931266248E+08 2.04107714224489629E+08 > total
ice volume (m^3) = 4.03222649989284062E+13 7.05731516956805625E+13 >
total snw volume (m^3) = 2.14201601881120215E+12
4.17782204583553711E+12 328,329c324,325 < average albedo =
0.81000000000000005 0.81000000000000028 < max ice volume (m) =
2.56973947895774435 2.56973947895774435 --- > average albedo =
0.70831954047609880 0.71239938402596259 > max ice volume (m) =
2.57388329449594178 2.57388329449594178 335,342c331,338 < arwt evap
h2o kg in dt = 0.00000000000000000E+00 0.00000000000000000E+00 < arwt
frzl h2o kg in dt = 0.00000000000000000E+00 0.00000000000000000E+00 <
arwt frsh h2o kg in dt = 0.00000000000000000E+00
0.00000000000000000E+00 < arwt ice mass (kg) = 2.62714517865375440E+16
5.12402566021968160E+16 < arwt snw mass (kg) = 7.06398673602778875E+14
1.37777118649400425E+15 < arwt tot mass (kg) = 2.69778504601403240E+16
5.26180277886908240E+16 < arwt tot mass chng(kg) =
0.00000000000000000E+00 0.00000000000000000E+00 < arwt water flux =
0.00000000000000000E+00 0.00000000000000000E+00 --- > arwt evap h2o kg
in dt = -3.14065194974866943E+12 -3.93173023171445703E+12 > arwt frzl
h2o kg in dt = 5.27300119967046328E+13 6.62368055911166094E+13 > arwt
frsh h2o kg in dt = -2.64696243743919656E+14 -3.33722669005428875E+14
> arwt ice mass (kg) = 3.69755170040173520E+16 6.47155801049390720E+16
> arwt snw mass (kg) = 7.06865286207696750E+14 1.37868127512572725E+15
> arwt tot mass (kg) = 3.76823822902250480E+16 6.60942613800648000E+16
> arwt tot mass chng(kg) = 3.14285603790864000E+14
3.96027744364800000E+14 > arwt water flux = 3.14285603790875625E+14
3.96027744364831062E+14 344c340 < water flux error =
0.00000000000000000E+00 0.00000000000000000E+00 --- > water flux error
= 3.08499603620219322E-16 4.69972723068647549E-16 346,352c342,348 <
arwt atm heat flux (W) = 2.00677252210029300E+15
3.91404098297107500E+15 < arwt ocn heat flux (W) =
0.00000000000000000E+00 0.00000000000000000E+00 < arwt frzl heat
flux(W) = 7.05454050741469920E+16 8.86156119504524640E+16 < arwt tot
energy (J) = -9.01060205368686569E+21 -1.75744212814227298E+22 < arwt
net heat (J) = -2.46739077187368092E+20 -3.04925655482932986E+20 <
arwt tot energy chng(J)= 0.00000000000000000E+00
0.00000000000000000E+00 < arwt heat error = 2.73831954532283359E-02
1.73505374999322788E-02 --- > arwt atm heat flux (W) =
-2.42665465720147080E+16 -3.05972704306722960E+16 > arwt ocn heat flux
(W) = 2.57468797943184084E-21 5.02171230614227945E-21 > arwt frzl heat
flux(W) = 4.89217333524982200E+15 6.14530362984248700E+15 > arwt tot
energy (J) = -1.25859156849351658E+22 -2.20754833009416549E+22 > arwt
net heat (J) = -1.04971391666152309E+20 -1.32273266617853215E+20 >
arwt tot energy chng(J)= -1.04971391666151752E+20
-1.32273266617942540E+20 > arwt heat error = 4.42602679014267966E-17
-4.04636975699597543E-15 359,362c355,358 < arwt salt mass (kg) =
1.05085807146150172E+14 2.04961026408787281E+14 < arwt salt mass
chng(kg)= 0.00000000000000000E+00 0.00000000000000000E+00 < arwt salt
flx in dt(kg)= 0.00000000000000000E+00 0.00000000000000000E+00 < arwt
salt flx error = 0.00000000000000000E+00 0.00000000000000000E+00 --- >
arwt salt mass (kg) = 1.47902068016069406E+14 2.58862320419756281E+14
> arwt salt mass chng(kg)= 1.04614516461391748E+12
1.31901317799086157E+12 > arwt salt flx in dt(kg)=
-1.04614516461395789E+12 -1.31901317799098901E+12 > arwt salt flx
error = -2.73189374425175273E-16 -4.92313466260164250E-16
376,377c372,373 < avg ice thickness (m) = 2.56973947895791621
2.56973947895791621 < avg snow depth (m) = 0.19200400801603207
0.19200400801603207 --- > avg ice thickness (m) = 2.57388329449611364
2.57388329449611364 > avg snow depth (m) = 0.19213083652475232
0.19213083652475232 380c376 < surface temperature(C) =
-20.14999999999998082 -20.14999999999998082 --- > surface
temperature(C) = -24.57951004561716246 -24.57951004561716246
382,385c378,381 < outward longwave flx = 0.00000000000000000
0.00000000000000000 < sensible heat flx = 0.00000000000000000
0.00000000000000000 < latent heat flx = 0.00000000000000000
0.00000000000000000 < subl/cond (m ice) = 0.00000000000000000
0.00000000000000000 --- > outward longwave flx =
-214.66891827616245791 -214.66891827616245791 > sensible heat flx =
18.62840040205053782 18.62840040205053782 > latent heat flx =
1.36331636320478089 1.36331636320478089 > subl/cond (m ice) =
0.00000188789027464 0.00000188789027464 389,390c385,386 < new ice (m)
= 0.00000000000000000 0.00000000000000000 < congelation (m) =
0.00000000000000000 0.00000000000000000 --- > new ice (m) =
0.00000000000000038 0.00000000000000038 > congelation (m) =
0.00017251622852200 0.00017251622852200 393,395c389,391 < effective
dhi (m) = 0.00000000000000000 0.00000000000000000 < effective dhs (m)
= 0.00000000000000000 0.00000000000000000 < intnl enrgy chng(W/m^2)=
0.00000000000000000 0.00000000000000000 --- > effective dhi (m) =
0.00017251622852221 0.00017251622852221 > effective dhs (m) =
0.00000524604661165 0.00000524604661165 > intnl enrgy chng(W/m^2)=
14.83781797137525338 14.83781797137525338 400c396 < heat used (W/m^2)
= 0.00000000000000000 0.00000000000000000 --- > heat used (W/m^2) =
-0.00000000000000000 -0.00000000000000000 |
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#151 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/Ab21h3Db0KTVxokLzuu4UCfYFP_PBIS7ks5uneOCgaJpZM4Uvuf4>.
|
Tony,
How does the timing information from the end of the run compare between
the two sets of runs?
Rick
…On 10/22/2018 10:25 AM, Tony Craig wrote:
I ran a full test suite on conrad last night, hash 4626b06
<4626b06>
https://github.com/CICE-Consortium/Test-Results/wiki/cice_by_hash_forks.
Compared against the current master test suite run over the weekend.
One thing, it looks like this branch is one PR behind master. Anyway,
I think the results are probably OK. All the box results are
different. I assume that's expected. The 1 degree test did not
complete because it still has the incorrect namelist. This is fixed on
the master with the latest PR. The alt01 and alt03 tests are
different, although it's not clear exactly why. This is a little
concerning. Is that expected. The results are very different. Looking
at the log files, the first diagnostic is after 24 timesteps and it's
very different. The ice area is different by a factor of 10 (less),
the water balance has a bunch of terms zeroed out that weren't before.
It looks like something important has changed. I don't know why it's
just alt01 and alt03 that are affected. Is this something we need to
understand.
In the diff below, it's (diff "new" "baseline")to < represents the new
results.
|>
/p/home/apcraig/cice-consortium/cice.matt.box2001/testsuite.bx01/conrad_intel_restart_gx3_6x2_alt01.bx01>diff
logs/cice.runlog.181022-001223
$WORKDIR/CICE_BASELINES_MASTER/cice.4671a1cb60.181021-000127/conrad_intel_restart_gx3_6x2_alt01/cice.runlog.181021-003247
62d61 < close_boundaries = F 68,70d66 < coriolis = latitude < kridge =
1 < ktransport = 1 111c107 < bgc_data_dir = /uknown_bgc_data_dir --- >
bgc_data_dir = unknown_bgc_data_dir 322,325c318,321 < total ice area
(km^2) = 1.11487362338905167E+07 2.17446721276171021E+07 < total ice
extent(km^2) = 1.11487362338912636E+07 2.17446721276185624E+07 < total
ice volume (m^3) = 2.86493476407170586E+13 5.58781424233335000E+13 <
total snw volume (m^3) = 2.14060204122054199E+12
4.17506420149698242E+12 --- > total ice area (km^2) =
1.47407298426054806E+08 1.92905867664821625E+08 > total ice
extent(km^2) = 1.56324900931266248E+08 2.04107714224489629E+08 > total
ice volume (m^3) = 4.03222649989284062E+13 7.05731516956805625E+13 >
total snw volume (m^3) = 2.14201601881120215E+12
4.17782204583553711E+12 328,329c324,325 < average albedo =
0.81000000000000005 0.81000000000000028 < max ice volume (m) =
2.56973947895774435 2.56973947895774435 --- > average albedo =
0.70831954047609880 0.71239938402596259 > max ice volume (m) =
2.57388329449594178 2.57388329449594178 335,342c331,338 < arwt evap
h2o kg in dt = 0.00000000000000000E+00 0.00000000000000000E+00 < arwt
frzl h2o kg in dt = 0.00000000000000000E+00 0.00000000000000000E+00 <
arwt frsh h2o kg in dt = 0.00000000000000000E+00
0.00000000000000000E+00 < arwt ice mass (kg) = 2.62714517865375440E+16
5.12402566021968160E+16 < arwt snw mass (kg) = 7.06398673602778875E+14
1.37777118649400425E+15 < arwt tot mass (kg) = 2.69778504601403240E+16
5.26180277886908240E+16 < arwt tot mass chng(kg) =
0.00000000000000000E+00 0.00000000000000000E+00 < arwt water flux =
0.00000000000000000E+00 0.00000000000000000E+00 --- > arwt evap h2o kg
in dt = -3.14065194974866943E+12 -3.93173023171445703E+12 > arwt frzl
h2o kg in dt = 5.27300119967046328E+13 6.62368055911166094E+13 > arwt
frsh h2o kg in dt = -2.64696243743919656E+14 -3.33722669005428875E+14
> arwt ice mass (kg) = 3.69755170040173520E+16 6.47155801049390720E+16
> arwt snw mass (kg) = 7.06865286207696750E+14 1.37868127512572725E+15
> arwt tot mass (kg) = 3.76823822902250480E+16 6.60942613800648000E+16
> arwt tot mass chng(kg) = 3.14285603790864000E+14
3.96027744364800000E+14 > arwt water flux = 3.14285603790875625E+14
3.96027744364831062E+14 344c340 < water flux error =
0.00000000000000000E+00 0.00000000000000000E+00 --- > water flux error
= 3.08499603620219322E-16 4.69972723068647549E-16 346,352c342,348 <
arwt atm heat flux (W) = 2.00677252210029300E+15
3.91404098297107500E+15 < arwt ocn heat flux (W) =
0.00000000000000000E+00 0.00000000000000000E+00 < arwt frzl heat
flux(W) = 7.05454050741469920E+16 8.86156119504524640E+16 < arwt tot
energy (J) = -9.01060205368686569E+21 -1.75744212814227298E+22 < arwt
net heat (J) = -2.46739077187368092E+20 -3.04925655482932986E+20 <
arwt tot energy chng(J)= 0.00000000000000000E+00
0.00000000000000000E+00 < arwt heat error = 2.73831954532283359E-02
1.73505374999322788E-02 --- > arwt atm heat flux (W) =
-2.42665465720147080E+16 -3.05972704306722960E+16 > arwt ocn heat flux
(W) = 2.57468797943184084E-21 5.02171230614227945E-21 > arwt frzl heat
flux(W) = 4.89217333524982200E+15 6.14530362984248700E+15 > arwt tot
energy (J) = -1.25859156849351658E+22 -2.20754833009416549E+22 > arwt
net heat (J) = -1.04971391666152309E+20 -1.32273266617853215E+20 >
arwt tot energy chng(J)= -1.04971391666151752E+20
-1.32273266617942540E+20 > arwt heat error = 4.42602679014267966E-17
-4.04636975699597543E-15 359,362c355,358 < arwt salt mass (kg) =
1.05085807146150172E+14 2.04961026408787281E+14 < arwt salt mass
chng(kg)= 0.00000000000000000E+00 0.00000000000000000E+00 < arwt salt
flx in dt(kg)= 0.00000000000000000E+00 0.00000000000000000E+00 < arwt
salt flx error = 0.00000000000000000E+00 0.00000000000000000E+00 --- >
arwt salt mass (kg) = 1.47902068016069406E+14 2.58862320419756281E+14
> arwt salt mass chng(kg)= 1.04614516461391748E+12
1.31901317799086157E+12 > arwt salt flx in dt(kg)=
-1.04614516461395789E+12 -1.31901317799098901E+12 > arwt salt flx
error = -2.73189374425175273E-16 -4.92313466260164250E-16
376,377c372,373 < avg ice thickness (m) = 2.56973947895791621
2.56973947895791621 < avg snow depth (m) = 0.19200400801603207
0.19200400801603207 --- > avg ice thickness (m) = 2.57388329449611364
2.57388329449611364 > avg snow depth (m) = 0.19213083652475232
0.19213083652475232 380c376 < surface temperature(C) =
-20.14999999999998082 -20.14999999999998082 --- > surface
temperature(C) = -24.57951004561716246 -24.57951004561716246
382,385c378,381 < outward longwave flx = 0.00000000000000000
0.00000000000000000 < sensible heat flx = 0.00000000000000000
0.00000000000000000 < latent heat flx = 0.00000000000000000
0.00000000000000000 < subl/cond (m ice) = 0.00000000000000000
0.00000000000000000 --- > outward longwave flx =
-214.66891827616245791 -214.66891827616245791 > sensible heat flx =
18.62840040205053782 18.62840040205053782 > latent heat flx =
1.36331636320478089 1.36331636320478089 > subl/cond (m ice) =
0.00000188789027464 0.00000188789027464 389,390c385,386 < new ice (m)
= 0.00000000000000000 0.00000000000000000 < congelation (m) =
0.00000000000000000 0.00000000000000000 --- > new ice (m) =
0.00000000000000038 0.00000000000000038 > congelation (m) =
0.00017251622852200 0.00017251622852200 393,395c389,391 < effective
dhi (m) = 0.00000000000000000 0.00000000000000000 < effective dhs (m)
= 0.00000000000000000 0.00000000000000000 < intnl enrgy chng(W/m^2)=
0.00000000000000000 0.00000000000000000 --- > effective dhi (m) =
0.00017251622852221 0.00017251622852221 > effective dhs (m) =
0.00000524604661165 0.00000524604661165 > intnl enrgy chng(W/m^2)=
14.83781797137525338 14.83781797137525338 400c396 < heat used (W/m^2)
= 0.00000000000000000 0.00000000000000000 --- > heat used (W/m^2) =
-0.00000000000000000 -0.00000000000000000 |
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#151 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/Ab21h3Db0KTVxokLzuu4UCfYFP_PBIS7ks5uneOCgaJpZM4Uvuf4>.
|
You can see the timing info on the results page. It looks fine as far as I can see. The timing column has 3 timers each with current time and then baseline time in parenthesis. These are short runs and there is always some variability, but there is no consistent slowdown from what I can see. |
I don't expect the results to be different. Maybe for the box tests, but not other configurations. The results are so different, my first suspicion is that the forcing has changed. We need to figure this out before merging. |
…nce a ktherm value of 0 does NOT mean thermodynamics is turned off
Rick noticed that the issues appeared to be related to the I'm also not sure what the |
I'm running a full suite on conrad with intel to see if it's fixed. |
That makes a lot of sense. The tests that failed are likely the ones that have ktherm=0 set. CICE_RunMod.F90_debug is supposed to be identical to CICE_RunMod.F90, but with the addition of calls to a debugging routine that prints tons of information. There's probably a better way to do this without wrapping all of those calls in "if debug" conditionals. I've kept it as a separate file because it's rarely used -- but maybe it's rarely used because it's a separate file and no one else knows what it's for... |
I think we're OK now based on the conrad intel results. I think we can merge. thanks. |
Does anyone think we should wait to merge? |
no need to wait -- go for it |
Done. And just for fun, I'm going to run a full test suite on conrad again with master. |
The hadgem3 driver was not updated when 'save_init' was added in 83686a3 (Implement box model test from 2001 JCP paper (CICE-Consortium#151), 2018-10-22). As this subroutine is necessary to ensure proper initialization of the model, add it now.
* drivers/hadgem3: add missing 'subname' and use existing 'subname's * drivers/hadgem3/CICE_InitMod: update 'init_lvl' call Add the required 'iblk' argument. * drivers/hadgem3/CICE_RunMod: remove uneeded 'dt' arguments The subroutines 'prep_radiation', 'zsal_diags', 'bgc_diags' and 'hbrine_diags' do not take a 'dt' argument anymore, so remove it. * drivers/hadgem3/CICE_RunMod: get 'Lsub' from Icepack * drivers/hadgem3/CICE_RunMod: remove 'da_state_update' subroutine This subroutine is inside an 'ICE_DA' CPP, which is not used in any configuration. Remove it. * drivers/hadgem3/CICE_RunMod: remove stray '+' This '+' sign was copy-pasted there in error in 29b99b6 (CICE: Floe size distribution (#382), 2019-12-07). Remove it. * drivers/hadgem3: remove obsolete 'check_finished_file' subroutine Remove the call to 'check_finished_file' as well as the definition of the subroutine, as the 'hadgem3' driver is not used on machine 'bering' and it's unclear if machine 'bering' still exists. * drivers/hadgem3: fix cice_init so it calls 'count_tracers' This was forgotten back in 8b0ae03 (Refactor tracer initialization (#235), 2018-11-16) * drivers/hadgem3/CICE_RunMod: add call to 'save_init' The hadgem3 driver was not updated when 'save_init' was added in 83686a3 (Implement box model test from 2001 JCP paper (#151), 2018-10-22). As this subroutine is necessary to ensure proper initialization of the model, add it now. * drivers/hadgem3/CICE_RunMod: tweak loop indices in 'coupling_prep' Other drivers use 'ilo,ihi' and 'jlo,jhi' here. Do the same. * drivers/hagdem3: update driver to new time manager * drivers/hadgem3: pass 'mpi_comm_opa' explicitely to init_communicate In 066070e (Fix minor issues in documentation, key_ CPPs, bfbcomp return codes (#532), 2020-11-23), the 'ice_communicate' module was updated to remove CPP macros relating to the OASIS coupler (key_oasis*) and to the NEMO ocean model (key_iomput). These CPPs were used to make the correct MPI communicator accessible to the 'init_communicate' subroutine. However, that subroutine already accepts an optional MPI communicator as argument and it was deemed cleaner to require the driver layer to explicitely pass the communicator instead of making it accessible through 'use' statements. Update the 'hadgem3' driver, used for coupling with NEMO, to explicitely pass the NEMO MPI communicator 'mpi_comm_opa' to 'init_communicate'. * drivers: add 'nemo_concepts' driver Historically the 'hadgem3' driver has been used when compiling a single NEMO-CICE executable at ECCC. Going forward, all driver-level adjustements will be done in our own driver, 'nemo_concepts', 'CONCEPTS' being the name of the multi-departmental collaboration around using the NEMO ocean model. Copy CICE_InitMod, CICE_RunMod and CICE_FinalMod from the 'hadgem3' directory to a new 'nemo_concepts' directory under 'drivers/direct'. The following commits will clean up this new driver and port over some in-house adjustments. * drivers/nemo_concepts: remove unused 'writeout_finished_file' subroutine This subroutine was only called on machine 'bering', which is not an ECCC machine and probably does not exist anymore anyway. Remove it. * drivers/nemo_concepts: call 'scale_fluxes' with 'aice_init' Since 'merge_fluxes' is called with aice_init, it is more consistent to also call 'scale_fluxes', in 'coupling_prep' with 'aice_init' instead of 'aice'. Copy this in-house change to the new 'nemo_concepts' driver.
When CICE learned to disable the thermodynamics in 83686a3 (Implement box model test from 2001 JCP paper (CICE-Consortium#151), 2018-10-22), it was not envisioned that this capability would be used with 'calc_strair = .true.'. This currently does not work (the atmospheric stresses are always zero). This is because they are computed in 'icepack_atmo::icepack_atm_boundary', called from 'icepack_therm_vertical::icepack_step_therm1', itself called from 'ice_step_mod::step_therm1', a call which is skipped if thermodynamics is disabled ('ktherm<0'). Adjust the logic in ice_step to always call 'step_therm1', and update Icepack to a commit in which some parts of the computation in 'icepack_step_therm1' are only done if 'ktherm >= 0', while others (namely the computation of the atmospheric stresses) are always done.
When CICE learned to disable the thermodynamics in 83686a3 (Implement box model test from 2001 JCP paper (CICE-Consortium#151), 2018-10-22), it was not envisioned that this capability would be used with 'calc_strair = .true.'. This currently does not work (the atmospheric stresses are always zero). This is because they are computed in 'icepack_atmo::icepack_atm_boundary', called from 'icepack_therm_vertical::icepack_step_therm1', itself called from 'ice_step_mod::step_therm1', a call which is skipped if thermodynamics is disabled ('ktherm<0'). Adjust the logic in ice_step to always call 'step_therm1', and update Icepack to a commit in which some parts of the computation in 'icepack_step_therm1' are only done if 'ktherm >= 0', while others (namely the computation of the atmospheric stresses) are always done.
When CICE learned to disable the thermodynamics in 83686a3 (Implement box model test from 2001 JCP paper (CICE-Consortium#151), 2018-10-22), it was not envisioned that this capability would be used with 'calc_strair = .true.'. This currently does not work (the atmospheric stresses are always zero). This is because they are computed in 'icepack_atmo::icepack_atm_boundary', called from 'icepack_therm_vertical::icepack_step_therm1', itself called from 'ice_step_mod::step_therm1', a call which is skipped if thermodynamics is disabled ('ktherm<0'). Adjust the logic in ice_step to always call 'step_therm1', and update Icepack to a commit in which some parts of the computation in 'icepack_step_therm1' are only done if 'ktherm >= 0', while others (namely the computation of the atmospheric stresses) are always done.
When CICE learned to disable the thermodynamics in 83686a3 (Implement box model test from 2001 JCP paper (CICE-Consortium#151), 2018-10-22), it was not envisioned that this capability would be used with 'calc_strair = .true.'. This currently does not work (the atmospheric stresses are always zero). This is because they are computed in 'icepack_atmo::icepack_atm_boundary', called from 'icepack_therm_vertical::icepack_step_therm1', itself called from 'ice_step_mod::step_therm1', a call which is skipped if thermodynamics is disabled ('ktherm<0'). Adjust the logic in ice_step to always call 'step_therm1', and update Icepack to a commit in which some parts of the computation in 'icepack_step_therm1' are only done if 'ktherm >= 0', while others (namely the computation of the atmospheric stresses) are always done.
When CICE learned to disable the thermodynamics in 83686a3 (Implement box model test from 2001 JCP paper (CICE-Consortium#151), 2018-10-22), it was not envisioned that this capability would be used with 'calc_strair = .true.'. This currently does not work (the atmospheric stresses are always zero). This is because they are computed in 'icepack_atmo::icepack_atm_boundary', called from 'icepack_therm_vertical::icepack_step_therm1', itself called from 'ice_step_mod::step_therm1', a call which is skipped if thermodynamics is disabled ('ktherm<0'). Adjust the logic in ice_step to always call 'step_therm1', and update Icepack to a commit in which some parts of the computation in 'icepack_step_therm1' are only done if 'ktherm >= 0', while others (namely the computation of the atmospheric stresses) are always done.
This PR implements the box model test defined in Hunke, E.C., 2001. Viscout-plastic sea ice dynamics with the EVP model: linearization issues. J. Comp. Phys. 170, 18-38
Developer(s): Matt Turner, Rick Allard
Please suggest code Pull Request reviewers in the column at right.
Are the code changes bit for bit, different at roundoff level, or more substantial? bfb
Is the documentation being updated with this PR? (Y/N) N
If not, does the documentation need to be updated separately at a later time? (Y/N) Y
Note: "Documentation" includes information on the wiki and .rst files in doc/source/,
which are used to create the online technical docs at https://readthedocs.org/projects/cice-consortium-cice/.
Other Relevant Details:
Majority of work performed by @rallard77
To run the test
./cice.setup -m conrad --test smoke -s box2001 --testid t00 --grid gbox80