Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/AGRIF_DEMO/EXPREF/file_def_nemo-ice.xml
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/AGRIF_DEMO/EXPREF/file_def_nemo-ice.xml (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/AGRIF_DEMO/EXPREF/file_def_nemo-ice.xml (revision 9977)
@@ -5,5 +5,5 @@
============================================================================================================
= output files definition =
-= Define your own files for lim3 =
+= Define your own files for sea ice =
= put the variables you want... =
============================================================================================================
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/GYRE_PISCES/EXPREF/field_def_nemo-oce.xml
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/GYRE_PISCES/EXPREF/field_def_nemo-oce.xml (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/GYRE_PISCES/EXPREF/field_def_nemo-oce.xml (revision 9977)
@@ -1,978 +1,1 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- toce * e3t
-
- soce * e3t
-
-
-
-
-
-
- sst * sst
-
-
-
-
-
-
-
-
-
-
-
- sss * sss
-
-
-
-
-
-
-
-
- ssh * ssh
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- topthdep - pycndep
-
-
-
-
-
-
-
-
-
- sshdyn * sshdyn
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- uoce * e3u
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- voce * e3v
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ttrd_atf * e3t
- strd_atf * e3t
-
- ttrd_atf_e3t * 1026.0 * 3991.86795711963
- strd_atf_e3t * 1026.0 * 0.001
-
-
-
-
-
-
-
-
-
-
- sqrt( ttrd_xad^2 + ttrd_yad^2 + ttrd_zad^2 )
- sqrt( strd_xad^2 + strd_yad^2 + strd_zad^2 )
-
-
-
-
-
-
-
-
-
-
-
-
- ttrd_ldf + ttrd_zdf - ttrd_zdfp
- strd_ldf + strd_zdf - strd_zdfp
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ttrd_xad * e3t
- strd_xad * e3t
- ttrd_yad * e3t
- strd_yad * e3t
- ttrd_zad * e3t
- strd_zad * e3t
- ttrd_ad * e3t
- strd_ad * e3t
- ttrd_totad * e3t
- strd_totad * e3t
- ttrd_ldf * e3t
- strd_ldf * e3t
- ttrd_zdf * e3t
- strd_zdf * e3t
- ttrd_evd * e3t
- strd_evd * e3t
-
-
- ttrd_iso * e3t
- strd_iso * e3t
- ttrd_zdfp * e3t
- strd_zdfp * e3t
-
-
- ttrd_dmp * e3t
- strd_dmp * e3t
- ttrd_bbl * e3t
- strd_bbl * e3t
- ttrd_npc * e3t
- strd_npc * e3t
- ttrd_qns * e3t_surf
- strd_cdt * e3t_surf
- ttrd_qsr * e3t
- ttrd_bbc * e3t
-
-
- ttrd_totad_e3t * 1026.0 * 3991.86795711963
- strd_totad_e3t * 1026.0 * 0.001
- ttrd_evd_e3t * 1026.0 * 3991.86795711963
- strd_evd_e3t * 1026.0 * 0.001
- ttrd_iso_e3t * 1026.0 * 3991.86795711963
- strd_iso_e3t * 1026.0 * 0.001
- ttrd_zdfp_e3t * 1026.0 * 3991.86795711963
- strd_zdfp_e3t * 1026.0 * 0.001
- ttrd_qns_e3t * 1026.0 * 3991.86795711963
- ttrd_qsr_e3t * 1026.0 * 3991.86795711963
- ttrd_bbl_e3t * 1026.0 * 3991.86795711963
- strd_bbl_e3t * 1026.0 * 0.001
- ttrd_evd_e3t * 1026.0 * 3991.86795711963
- strd_evd_e3t * 1026.0 * 0.001
-
-
-
-
-
-
-
-
- ttrd_tot * e3t
- strd_tot * e3t
-
- ttrd_tot_e3t * 1026.0 * 3991.86795711963
- strd_tot_e3t * 1026.0 * 0.001
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+link ../../SHARED/field_def_nemo-oce.xml
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_ICE_PISCES/EXPREF/field_def_nemo-ice.xml
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_ICE_PISCES/EXPREF/field_def_nemo-ice.xml (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_ICE_PISCES/EXPREF/field_def_nemo-ice.xml (revision 9977)
@@ -1,440 +1,1 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- icemass * icemask + $missval * (1.-icemask )
- icethic * icemask05 + $missval * (1.-icemask05)
- snwmass * icemask + $missval * (1.-icemask )
- snwthic * icemask05 + $missval * (1.-icemask05)
- iceconc * 100.
- iceage * icemask15 + $missval * (1.-icemask15)
- icesalt * icemask + $missval * (1.-icemask )
- icefrb * icemask + $missval * (1.-icemask )
-
-
- (icettop+273.15) * icemask + $missval * (1.-icemask)
- (icetsni+273.15) * icemask + $missval * (1.-icemask)
- (icetbot+273.15) * icemask + $missval * (1.-icemask)
- icehc * icemask + $missval * (1.-icemask)
- snwhc * icemask + $missval * (1.-icemask)
-
-
- vfxsum * icemask + $missval * (1.-icemask)
- vfxice * icemask + $missval * (1.-icemask)
- hfxsensib * icemask + $missval * (1.-icemask)
- hfxcndtop * icemask + $missval * (1.-icemask)
- hfxcndbot * icemask + $missval * (1.-icemask)
- sfxice * icemask + $missval * (1.-icemask)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- uice * icemask + $missval * (1.-icemask)
- vice * icemask + $missval * (1.-icemask)
- icevel * icemask + $missval * (1.-icemask)
- utau_ai * icemask + $missval * (1.-icemask)
- vtau_ai * icemask + $missval * (1.-icemask)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- xmtrpice + xmtrpsnw
- ymtrpice + ymtrpsnw
-
-
- iceconc_cat * icemask_cat + $missval * (1.-icemask_cat)
- icethic_cat * icemask_cat + $missval * (1.-icemask_cat)
- snwthic_cat * icemask_cat + $missval * (1.-icemask_cat)
- iceconc_cat*100. * icemask_cat + $missval * (1.-icemask_cat)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+link ../../SHARED/field_def_nemo-ice.xml
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_ICE_PISCES/EXPREF/field_def_nemo-oce.xml
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_ICE_PISCES/EXPREF/field_def_nemo-oce.xml (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_ICE_PISCES/EXPREF/field_def_nemo-oce.xml (revision 9977)
@@ -1,978 +1,1 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- toce * e3t
-
- soce * e3t
-
-
-
-
-
-
- sst * sst
-
-
-
-
-
-
-
-
-
-
-
- sss * sss
-
-
-
-
-
-
-
-
- ssh * ssh
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- topthdep - pycndep
-
-
-
-
-
-
-
-
-
- sshdyn * sshdyn
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- uoce * e3u
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- voce * e3v
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ttrd_atf * e3t
- strd_atf * e3t
-
- ttrd_atf_e3t * 1026.0 * 3991.86795711963
- strd_atf_e3t * 1026.0 * 0.001
-
-
-
-
-
-
-
-
-
-
- sqrt( ttrd_xad^2 + ttrd_yad^2 + ttrd_zad^2 )
- sqrt( strd_xad^2 + strd_yad^2 + strd_zad^2 )
-
-
-
-
-
-
-
-
-
-
-
-
- ttrd_ldf + ttrd_zdf - ttrd_zdfp
- strd_ldf + strd_zdf - strd_zdfp
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ttrd_xad * e3t
- strd_xad * e3t
- ttrd_yad * e3t
- strd_yad * e3t
- ttrd_zad * e3t
- strd_zad * e3t
- ttrd_ad * e3t
- strd_ad * e3t
- ttrd_totad * e3t
- strd_totad * e3t
- ttrd_ldf * e3t
- strd_ldf * e3t
- ttrd_zdf * e3t
- strd_zdf * e3t
- ttrd_evd * e3t
- strd_evd * e3t
-
-
- ttrd_iso * e3t
- strd_iso * e3t
- ttrd_zdfp * e3t
- strd_zdfp * e3t
-
-
- ttrd_dmp * e3t
- strd_dmp * e3t
- ttrd_bbl * e3t
- strd_bbl * e3t
- ttrd_npc * e3t
- strd_npc * e3t
- ttrd_qns * e3t_surf
- strd_cdt * e3t_surf
- ttrd_qsr * e3t
- ttrd_bbc * e3t
-
-
- ttrd_totad_e3t * 1026.0 * 3991.86795711963
- strd_totad_e3t * 1026.0 * 0.001
- ttrd_evd_e3t * 1026.0 * 3991.86795711963
- strd_evd_e3t * 1026.0 * 0.001
- ttrd_iso_e3t * 1026.0 * 3991.86795711963
- strd_iso_e3t * 1026.0 * 0.001
- ttrd_zdfp_e3t * 1026.0 * 3991.86795711963
- strd_zdfp_e3t * 1026.0 * 0.001
- ttrd_qns_e3t * 1026.0 * 3991.86795711963
- ttrd_qsr_e3t * 1026.0 * 3991.86795711963
- ttrd_bbl_e3t * 1026.0 * 3991.86795711963
- strd_bbl_e3t * 1026.0 * 0.001
- ttrd_evd_e3t * 1026.0 * 3991.86795711963
- strd_evd_e3t * 1026.0 * 0.001
-
-
-
-
-
-
-
-
- ttrd_tot * e3t
- strd_tot * e3t
-
- ttrd_tot_e3t * 1026.0 * 3991.86795711963
- strd_tot_e3t * 1026.0 * 0.001
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+link ../../SHARED/field_def_nemo-oce.xml
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_ICE_PISCES/EXPREF/file_def_nemo-ice.xml
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_ICE_PISCES/EXPREF/file_def_nemo-ice.xml (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_ICE_PISCES/EXPREF/file_def_nemo-ice.xml (revision 9977)
@@ -5,5 +5,5 @@
============================================================================================================
= output files definition =
-= Define your own files for lim3 =
+= Define your own files for sea ice =
= put the variables you want... =
============================================================================================================
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_ICE_PISCES/EXPREF/file_def_nemo-pisces.xml
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_ICE_PISCES/EXPREF/file_def_nemo-pisces.xml (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_ICE_PISCES/EXPREF/file_def_nemo-pisces.xml (revision 9977)
@@ -14,15 +14,15 @@
- tdenit * 14. * 86400. * 365. / 1e12
- tnfix * 14. * 86400. * 365. / 1e12
- tcflx * -1. * 12. * 86400. * 365. / 1e15
- tcflxcum * -1. * 12. / 1e15
- tcexp * 12. * 86400. * 365. / 1e15
- tintpp * 12. * 86400. * 365. / 1e15
- pno3tot * 16. / 122. * 1e6
- ppo4tot * 1. / 122. * 1e6
- psiltot * 1e6
- palktot * 1e6
- pfertot * 1e9
+ tdenit * 14. * 86400. * 365. / 1e12
+ tnfix * 14. * 86400. * 365. / 1e12
+ tcflx * -1. * 12. * 86400. * 365. / 1e15
+ tcflxcum * -1. * 12. / 1e15
+ tcexp * 12. * 86400. * 365. / 1e15
+ tintpp * 12. * 86400. * 365. / 1e15
+ pno3tot * 16. / 122. * 1e6
+ ppo4tot * 1. / 122. * 1e6
+ psiltot * 1e6
+ palktot * 1e6
+ pfertot * 1e9
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_OFF_PISCES/EXPREF/field_def_nemo-oce.xml
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_OFF_PISCES/EXPREF/field_def_nemo-oce.xml (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_OFF_PISCES/EXPREF/field_def_nemo-oce.xml (revision 9977)
@@ -1,978 +1,1 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- toce * e3t
-
- soce * e3t
-
-
-
-
-
-
- sst * sst
-
-
-
-
-
-
-
-
-
-
-
- sss * sss
-
-
-
-
-
-
-
-
- ssh * ssh
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- topthdep - pycndep
-
-
-
-
-
-
-
-
-
- sshdyn * sshdyn
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- uoce * e3u
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- voce * e3v
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ttrd_atf * e3t
- strd_atf * e3t
-
- ttrd_atf_e3t * 1026.0 * 3991.86795711963
- strd_atf_e3t * 1026.0 * 0.001
-
-
-
-
-
-
-
-
-
-
- sqrt( ttrd_xad^2 + ttrd_yad^2 + ttrd_zad^2 )
- sqrt( strd_xad^2 + strd_yad^2 + strd_zad^2 )
-
-
-
-
-
-
-
-
-
-
-
-
- ttrd_ldf + ttrd_zdf - ttrd_zdfp
- strd_ldf + strd_zdf - strd_zdfp
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ttrd_xad * e3t
- strd_xad * e3t
- ttrd_yad * e3t
- strd_yad * e3t
- ttrd_zad * e3t
- strd_zad * e3t
- ttrd_ad * e3t
- strd_ad * e3t
- ttrd_totad * e3t
- strd_totad * e3t
- ttrd_ldf * e3t
- strd_ldf * e3t
- ttrd_zdf * e3t
- strd_zdf * e3t
- ttrd_evd * e3t
- strd_evd * e3t
-
-
- ttrd_iso * e3t
- strd_iso * e3t
- ttrd_zdfp * e3t
- strd_zdfp * e3t
-
-
- ttrd_dmp * e3t
- strd_dmp * e3t
- ttrd_bbl * e3t
- strd_bbl * e3t
- ttrd_npc * e3t
- strd_npc * e3t
- ttrd_qns * e3t_surf
- strd_cdt * e3t_surf
- ttrd_qsr * e3t
- ttrd_bbc * e3t
-
-
- ttrd_totad_e3t * 1026.0 * 3991.86795711963
- strd_totad_e3t * 1026.0 * 0.001
- ttrd_evd_e3t * 1026.0 * 3991.86795711963
- strd_evd_e3t * 1026.0 * 0.001
- ttrd_iso_e3t * 1026.0 * 3991.86795711963
- strd_iso_e3t * 1026.0 * 0.001
- ttrd_zdfp_e3t * 1026.0 * 3991.86795711963
- strd_zdfp_e3t * 1026.0 * 0.001
- ttrd_qns_e3t * 1026.0 * 3991.86795711963
- ttrd_qsr_e3t * 1026.0 * 3991.86795711963
- ttrd_bbl_e3t * 1026.0 * 3991.86795711963
- strd_bbl_e3t * 1026.0 * 0.001
- ttrd_evd_e3t * 1026.0 * 3991.86795711963
- strd_evd_e3t * 1026.0 * 0.001
-
-
-
-
-
-
-
-
- ttrd_tot * e3t
- strd_tot * e3t
-
- ttrd_tot_e3t * 1026.0 * 3991.86795711963
- strd_tot_e3t * 1026.0 * 0.001
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+link ../../SHARED/field_def_nemo-oce.xml
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_OFF_PISCES/EXPREF/file_def_nemo.xml
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_OFF_PISCES/EXPREF/file_def_nemo.xml (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_OFF_PISCES/EXPREF/file_def_nemo.xml (revision 9977)
@@ -19,15 +19,15 @@
- tdenit * 14. * 86400. * 365. / 1e12
- tnfix * 14. * 86400. * 365. / 1e12
- tcflx * -1. * 12. * 86400. * 365. / 1e15
- tcflxcum * -1. * 12. / 1e15
- tcexp * 12. * 86400. * 365. / 1e15
- tintpp * 12. * 86400. * 365. / 1e15
- pno3tot * 16. / 122. * 1e6
- ppo4tot * 1. / 122. * 1e6
- psiltot * 1e6
- palktot * 1e6
- pfertot * 1e9
+ tdenit * 14. * 86400. * 365. / 1e12
+ tnfix * 14. * 86400. * 365. / 1e12
+ tcflx * -1. * 12. * 86400. * 365. / 1e15
+ tcflxcum * -1. * 12. / 1e15
+ tcexp * 12. * 86400. * 365. / 1e15
+ tintpp * 12. * 86400. * 365. / 1e15
+ pno3tot * 16. / 122. * 1e6
+ ppo4tot * 1. / 122. * 1e6
+ psiltot * 1e6
+ palktot * 1e6
+ pfertot * 1e9
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_SAS_ICE/EXPREF/file_def_nemo-ice.xml
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_SAS_ICE/EXPREF/file_def_nemo-ice.xml (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/ORCA2_SAS_ICE/EXPREF/file_def_nemo-ice.xml (revision 9977)
@@ -5,5 +5,5 @@
============================================================================================================
= output files definition =
-= Define your own files for lim3 =
+= Define your own files for sea ice =
= put the variables you want... =
============================================================================================================
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/SHARED/field_def_nemo-oce.xml
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/SHARED/field_def_nemo-oce.xml (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/SHARED/field_def_nemo-oce.xml (revision 9977)
@@ -347,4 +347,5 @@
uoce * e3u
+ uoce * uoce * e3u
@@ -401,4 +402,5 @@
voce * e3v
+ voce * voce * e3v
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/SPITZ12/EXPREF/file_def_nemo-ice.xml
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/SPITZ12/EXPREF/file_def_nemo-ice.xml (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/SPITZ12/EXPREF/file_def_nemo-ice.xml (revision 9977)
@@ -5,5 +5,5 @@
============================================================================================================
= output files definition =
-= Define your own files for lim3 =
+= Define your own files for sea ice =
= put the variables you want... =
============================================================================================================
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/SPITZ12/EXPREF/namelist_ice_cfg
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/SPITZ12/EXPREF/namelist_ice_cfg (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/cfgs/SPITZ12/EXPREF/namelist_ice_cfg (revision 9977)
@@ -86,5 +86,5 @@
&namini ! Ice initialization
!------------------------------------------------------------------------------
- ln_iceini = .false. ! activate ice initialization (T) or not (F)
+ ln_iceini = .true. ! activate ice initialization (T) or not (F)
rn_thres_sst = 0.5 ! max delta temp. above Tfreeze with initial ice = (sst - tfreeze)
rn_hts_ini_n = 0.1 ! initial real snow thickness (m), North
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/ice.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/ice.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/ice.F90 (revision 9977)
@@ -210,5 +210,5 @@
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: t_bo !: Sea-Ice bottom temperature [Kelvin]
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qlead !: heat balance of the lead (or of the open ocean)
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fhtur !: net downward heat flux from the ice to the ocean
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qsb_ice_bot !: net downward heat flux from the ice to the ocean
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fhld !: heat flux from the lead used for bottom melting
@@ -256,6 +256,6 @@
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_err_dif !: heat flux remaining due to change in non-solar flux [W.m-2]
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_err_rem !: heat flux error after heat remapping [W.m-2]
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_in !: heat flux available for thermo transformations [W.m-2]
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_out !: heat flux remaining at the end of thermo transformations [W.m-2]
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qt_atm_oi !: heat flux available for thermo transformations [W.m-2]
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qt_oce_ai !: heat flux remaining at the end of thermo transformations [W.m-2]
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_err_sub !: mass flux error after sublimation [kg.m-2.s-1]
@@ -270,5 +270,5 @@
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rn_amax_2d !: maximum ice concentration 2d array
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ftr_ice !: transmitted solar radiation under ice
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qtr_ice_bot !: transmitted solar radiation under ice
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: t1_ice !: temperature of the first layer (Jules coupling) [K]
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: cnd_ice !: effective conductivity at the top of ice/snow (Jules coupling) [W.m-2.K-1]
@@ -360,6 +360,6 @@
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: t_si !: Temperature at Snow-ice interface (K)
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tm_si !: mean temperature at the snow-ice interface (K)
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_fc_bo !: Bottom conduction flux (W/m2)
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_fc_su !: Surface conduction flux (W/m2)
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qcn_ice_bot !: Bottom conduction flux (W/m2)
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qcn_ice_top !: Surface conduction flux (W/m2)
!
@@ -387,27 +387,27 @@
ii = ii + 1
- ALLOCATE( t_bo (jpi,jpj) , wfx_snw_sni(jpi,jpj) , &
- & wfx_snw(jpi,jpj) , wfx_snw_dyn(jpi,jpj) , wfx_snw_sum(jpi,jpj) , wfx_snw_sub(jpi,jpj) , &
- & wfx_ice(jpi,jpj) , wfx_sub (jpi,jpj) , wfx_ice_sub(jpi,jpj) , wfx_lam (jpi,jpj) , &
- & wfx_pnd(jpi,jpj) , &
- & wfx_bog(jpi,jpj) , wfx_dyn(jpi,jpj) , wfx_bom(jpi,jpj) , wfx_sum(jpi,jpj) , &
- & wfx_res(jpi,jpj) , wfx_sni(jpi,jpj) , wfx_opw(jpi,jpj) , wfx_spr(jpi,jpj) , &
- & afx_tot(jpi,jpj) , rn_amax_2d(jpi,jpj), &
- & fhtur (jpi,jpj) , qlead (jpi,jpj) , &
- & sfx_res(jpi,jpj) , sfx_bri(jpi,jpj) , sfx_dyn(jpi,jpj) , sfx_sub(jpi,jpj) , sfx_lam(jpi,jpj) , &
- & sfx_bog(jpi,jpj) , sfx_bom(jpi,jpj) , sfx_sum(jpi,jpj) , sfx_sni(jpi,jpj) , sfx_opw(jpi,jpj) , &
- & hfx_res(jpi,jpj) , hfx_snw(jpi,jpj) , hfx_sub(jpi,jpj) , &
- & hfx_in (jpi,jpj) , hfx_out(jpi,jpj) , fhld (jpi,jpj) , &
- & hfx_sum(jpi,jpj) , hfx_bom(jpi,jpj) , hfx_bog(jpi,jpj) , hfx_dif(jpi,jpj) , &
- & hfx_opw(jpi,jpj) , hfx_thd(jpi,jpj) , hfx_dyn(jpi,jpj) , hfx_spr(jpi,jpj) , &
- & hfx_err_dif(jpi,jpj) , hfx_err_rem(jpi,jpj) , wfx_err_sub(jpi,jpj) , STAT=ierr(ii) )
+ ALLOCATE( t_bo (jpi,jpj) , wfx_snw_sni(jpi,jpj) , &
+ & wfx_snw (jpi,jpj) , wfx_snw_dyn(jpi,jpj) , wfx_snw_sum(jpi,jpj) , wfx_snw_sub(jpi,jpj) , &
+ & wfx_ice (jpi,jpj) , wfx_sub (jpi,jpj) , wfx_ice_sub(jpi,jpj) , wfx_lam (jpi,jpj) , &
+ & wfx_pnd (jpi,jpj) , &
+ & wfx_bog (jpi,jpj) , wfx_dyn (jpi,jpj) , wfx_bom(jpi,jpj) , wfx_sum(jpi,jpj) , &
+ & wfx_res (jpi,jpj) , wfx_sni (jpi,jpj) , wfx_opw(jpi,jpj) , wfx_spr(jpi,jpj) , &
+ & afx_tot (jpi,jpj) , rn_amax_2d(jpi,jpj), &
+ & qsb_ice_bot(jpi,jpj) , qlead (jpi,jpj) , &
+ & sfx_res (jpi,jpj) , sfx_bri (jpi,jpj) , sfx_dyn(jpi,jpj) , sfx_sub(jpi,jpj) , sfx_lam(jpi,jpj) , &
+ & sfx_bog (jpi,jpj) , sfx_bom (jpi,jpj) , sfx_sum(jpi,jpj) , sfx_sni(jpi,jpj) , sfx_opw(jpi,jpj) , &
+ & hfx_res (jpi,jpj) , hfx_snw (jpi,jpj) , hfx_sub(jpi,jpj) , &
+ & qt_atm_oi (jpi,jpj) , qt_oce_ai (jpi,jpj) , fhld (jpi,jpj) , &
+ & hfx_sum (jpi,jpj) , hfx_bom (jpi,jpj) , hfx_bog(jpi,jpj) , hfx_dif(jpi,jpj) , &
+ & hfx_opw (jpi,jpj) , hfx_thd (jpi,jpj) , hfx_dyn(jpi,jpj) , hfx_spr(jpi,jpj) , &
+ & hfx_err_dif(jpi,jpj) , hfx_err_rem(jpi,jpj) , wfx_err_sub(jpi,jpj) , STAT=ierr(ii) )
! * Ice global state variables
ii = ii + 1
- ALLOCATE( ftr_ice(jpi,jpj,jpl) , cnd_ice(jpi,jpj,jpl) , t1_ice(jpi,jpj,jpl) , &
- & h_i (jpi,jpj,jpl) , a_i (jpi,jpj,jpl) , v_i (jpi,jpj,jpl) , &
- & v_s (jpi,jpj,jpl) , h_s (jpi,jpj,jpl) , t_su (jpi,jpj,jpl) , &
- & s_i (jpi,jpj,jpl) , sv_i (jpi,jpj,jpl) , o_i (jpi,jpj,jpl) , &
- & oa_i (jpi,jpj,jpl) , bv_i (jpi,jpj,jpl) , STAT=ierr(ii) )
+ ALLOCATE( qtr_ice_bot(jpi,jpj,jpl) , cnd_ice(jpi,jpj,jpl) , t1_ice(jpi,jpj,jpl) , &
+ & h_i (jpi,jpj,jpl) , a_i (jpi,jpj,jpl) , v_i (jpi,jpj,jpl) , &
+ & v_s (jpi,jpj,jpl) , h_s (jpi,jpj,jpl) , t_su (jpi,jpj,jpl) , &
+ & s_i (jpi,jpj,jpl) , sv_i (jpi,jpj,jpl) , o_i (jpi,jpj,jpl) , &
+ & oa_i (jpi,jpj,jpl) , bv_i (jpi,jpj,jpl) , STAT=ierr(ii) )
ii = ii + 1
@@ -451,5 +451,5 @@
! * SIMIP diagnostics
ii = ii + 1
- ALLOCATE( t_si (jpi,jpj,jpl) , tm_si(jpi,jpj) , diag_fc_bo(jpi,jpj) , diag_fc_su(jpi,jpj) , STAT = ierr(ii) )
+ ALLOCATE( t_si(jpi,jpj,jpl) , tm_si(jpi,jpj) , qcn_ice_bot(jpi,jpj,jpl) , qcn_ice_top(jpi,jpj,jpl) , STAT = ierr(ii) )
ice_alloc = MAXVAL( ierr(:) )
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/ice1d.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/ice1d.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/ice1d.F90 (revision 9977)
@@ -32,5 +32,5 @@
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: qlead_1d
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ftr_ice_1d
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: qtr_ice_bot_1d
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: qsr_ice_1d
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: qns_ice_1d
@@ -40,5 +40,5 @@
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: qml_ice_1d !: heat available for snow / ice surface melting [W/m2]
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: qcn_ice_1d !: heat available for snow / ice surface sublimation [W/m2]
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: qsr_ice_tr_1d !: solar flux transmitted below the ice surface [W/m2]
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: qtr_ice_top_1d !: solar flux transmitted below the ice surface [W/m2]
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: t1_ice_1d !: temperature of the 1st layer (Jules coupling) [K]
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: cnd_ice_1d !: conductivity at the top of ice/snow (Jules coupling) [W/K/m2]
@@ -53,5 +53,5 @@
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: hfx_err_rem_1d
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: hfx_err_dif_1d
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: hfx_out_1d
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: qt_oce_ai_1d
! heat flux associated with ice-atmosphere mass exchange
@@ -93,22 +93,20 @@
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: sfx_dyn_1d
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: sprecip_1d !: <==> the 2D sprecip
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: at_i_1d !: <==> the 2D at_i
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ato_i_1d !: <==> the 2D ato_i
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: fhtur_1d !: <==> the 2D fhtur
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: fhld_1d !: <==> the 2D fhld
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: dqns_ice_1d !: <==> the 2D dqns_ice
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: evap_ice_1d !: <==> the 2D evap_ice
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: qprec_ice_1d !: <==> the 2D qprec_ice
-
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: t_su_1d !: <==> the 2D t_su
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: t_si_1d !: <==> the 2D t_si
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: a_i_1d !: <==> the 2D a_i
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: a_ib_1d !: <==> the 2D a_i_b
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: h_i_1d !:
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: h_ib_1d !:
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: h_s_1d !:
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: fc_su !: Surface Conduction flux
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: fc_bo_i !: Bottom Conduction flux
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: sprecip_1d
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: at_i_1d
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ato_i_1d
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: qsb_ice_bot_1d
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: fhld_1d
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: dqns_ice_1d
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: evap_ice_1d
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: qprec_ice_1d
+
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: t_su_1d
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: t_si_1d
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: a_i_1d
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: a_ib_1d
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: h_i_1d
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: h_ib_1d
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: h_s_1d
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: dh_s_tot !: Snow accretion/ablation [m]
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: dh_i_sum !: Ice surface ablation [m]
@@ -140,6 +138,6 @@
! Conduction flux diagnostics (SIMIP)
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: diag_fc_bo_1d !: <==> the 2D diag_fc_bo
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: diag_fc_su_1d !: <==> the 2D diag_fc_su
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: qcn_ice_bot_1d
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: qcn_ice_top_1d
! surface fields from the ocean
@@ -182,17 +180,17 @@
ii = 1
ALLOCATE( nptidx (jpij) , &
- & qlead_1d (jpij) , ftr_ice_1d(jpij) , qsr_ice_1d(jpij) , &
- & qns_ice_1d(jpij) , qml_ice_1d(jpij) , qcn_ice_1d(jpij) , qsr_ice_tr_1d(jpij) , &
- & cnd_ice_1d(jpij) , t1_ice_1d (jpij) , t_bo_1d (jpij) , &
- & hfx_sum_1d(jpij) , hfx_bom_1d(jpij) , hfx_bog_1d(jpij) , &
- & hfx_dif_1d(jpij) , hfx_opw_1d(jpij) , hfx_dyn_1d(jpij) , &
- & rn_amax_1d(jpij) , &
- & hfx_thd_1d(jpij) , hfx_spr_1d(jpij) , &
- & hfx_snw_1d(jpij) , hfx_sub_1d(jpij) , &
- & hfx_res_1d(jpij) , hfx_err_rem_1d(jpij) , hfx_err_dif_1d(jpij) , hfx_out_1d(jpij), STAT=ierr(ii) )
+ & qlead_1d (jpij) , qtr_ice_bot_1d(jpij) , qsr_ice_1d(jpij) , &
+ & qns_ice_1d(jpij) , qml_ice_1d (jpij) , qcn_ice_1d(jpij) , qtr_ice_top_1d(jpij) , &
+ & cnd_ice_1d(jpij) , t1_ice_1d (jpij) , t_bo_1d (jpij) , &
+ & hfx_sum_1d(jpij) , hfx_bom_1d (jpij) , hfx_bog_1d(jpij) , &
+ & hfx_dif_1d(jpij) , hfx_opw_1d (jpij) , hfx_dyn_1d(jpij) , &
+ & rn_amax_1d(jpij) , &
+ & hfx_thd_1d(jpij) , hfx_spr_1d (jpij) , &
+ & hfx_snw_1d(jpij) , hfx_sub_1d (jpij) , &
+ & hfx_res_1d(jpij) , hfx_err_rem_1d(jpij) , hfx_err_dif_1d(jpij) , qt_oce_ai_1d(jpij), STAT=ierr(ii) )
!
ii = ii + 1
ALLOCATE( sprecip_1d (jpij) , at_i_1d (jpij) , ato_i_1d (jpij) , &
- & fhtur_1d (jpij) , wfx_snw_sni_1d(jpij) , wfx_spr_1d (jpij) , wfx_snw_sum_1d(jpij) , &
+ & qsb_ice_bot_1d(jpij) , wfx_snw_sni_1d(jpij) , wfx_spr_1d (jpij) , wfx_snw_sum_1d(jpij) , &
& fhld_1d (jpij) , wfx_sub_1d (jpij) , wfx_bog_1d (jpij) , wfx_bom_1d (jpij) , &
& wfx_sum_1d (jpij) , wfx_sni_1d (jpij) , wfx_opw_1d (jpij) , wfx_res_1d (jpij) , &
@@ -206,5 +204,5 @@
ii = ii + 1
ALLOCATE( t_su_1d (jpij) , t_si_1d (jpij) , a_i_1d (jpij) , a_ib_1d (jpij) , &
- & h_i_1d (jpij) , h_ib_1d (jpij) , h_s_1d (jpij) , fc_su (jpij) , fc_bo_i (jpij) , &
+ & h_i_1d (jpij) , h_ib_1d (jpij) , h_s_1d (jpij) , &
& dh_s_tot(jpij) , dh_i_sum(jpij) , dh_i_itm (jpij) , dh_i_bom(jpij) , dh_i_bog(jpij) , &
& dh_i_sub(jpij) , dh_s_mlt(jpij) , dh_snowice(jpij) , s_i_1d (jpij) , s_i_new (jpij) , &
@@ -219,5 +217,5 @@
!
ii = ii + 1
- ALLOCATE( diag_fc_bo_1d(jpij) , diag_fc_su_1d(jpij) , STAT=ierr(ii) )
+ ALLOCATE( qcn_ice_bot_1d(jpij) , qcn_ice_top_1d(jpij) , STAT=ierr(ii) )
!
ii = ii + 1
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icealb.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icealb.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icealb.F90 (revision 9977)
@@ -16,4 +16,5 @@
USE ice, ONLY: jpl ! sea-ice: number of categories
USE phycst ! physical constants
+ USE dom_oce ! domain: ocean
!
USE in_out_manager ! I/O manager
@@ -160,5 +161,9 @@
ENDIF
! !--- Surface albedo is weighted mean of snow, ponds and bare ice contributions
- palb_os(ji,jj,jl) = zafrac_snw * zalb_snw + zafrac_pnd * zalb_pnd + zafrac_ice * zalb_ice
+ palb_os(ji,jj,jl) = ( zafrac_snw * zalb_snw + zafrac_pnd * zalb_pnd + zafrac_ice * zalb_ice ) * tmask(ji,jj,1)
+ !
+ palb_cs(ji,jj,jl) = palb_os(ji,jj,jl) &
+ & - ( - 0.1010 * palb_os(ji,jj,jl) * palb_os(ji,jj,jl) &
+ & + 0.1933 * palb_os(ji,jj,jl) - 0.0148 ) * tmask(ji,jj,1)
!
END DO
@@ -166,5 +171,4 @@
END DO
!
- palb_cs(:,:,:) = palb_os(:,:,:) - ( - 0.1010 * palb_os(:,:,:) * palb_os(:,:,:) + 0.1933 * palb_os(:,:,:) - 0.0148 )
!
IF( ln_timing ) CALL timing_stop('icealb')
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icectl.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icectl.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icectl.F90 (revision 9977)
@@ -189,5 +189,5 @@
! heat flux
- zhfx = glob_sum( ( hfx_in - hfx_out - diag_heat - diag_trp_ei - diag_trp_es &
+ zhfx = glob_sum( ( qt_atm_oi - qt_oce_ai - diag_heat - diag_trp_ei - diag_trp_es &
! & - SUM( qevap_ice * a_i_b, dim=3 ) & !!clem: I think this line must be commented (but need check)
& ) * e1e2t ) * zconv
@@ -572,6 +572,6 @@
WRITE(numout,*)
WRITE(numout,*) ' hfx_mass : ', hfx_thd(ji,jj) + hfx_dyn(ji,jj) + hfx_snw(ji,jj) + hfx_res(ji,jj)
- WRITE(numout,*) ' hfx_in : ', hfx_in(ji,jj)
- WRITE(numout,*) ' hfx_out : ', hfx_out(ji,jj)
+ WRITE(numout,*) ' qt_atm_oi : ', qt_atm_oi(ji,jj)
+ WRITE(numout,*) ' qt_oce_ai : ', qt_oce_ai(ji,jj)
WRITE(numout,*) ' dhc : ', diag_heat(ji,jj)
WRITE(numout,*)
@@ -579,5 +579,5 @@
WRITE(numout,*) ' hfx_thd : ', hfx_thd(ji,jj)
WRITE(numout,*) ' hfx_res : ', hfx_res(ji,jj)
- WRITE(numout,*) ' fhtur : ', fhtur(ji,jj)
+ WRITE(numout,*) ' qsb_ice_bot : ', qsb_ice_bot(ji,jj)
WRITE(numout,*) ' qlead : ', qlead(ji,jj) * r1_rdtice
WRITE(numout,*)
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icedia.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icedia.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icedia.F90 (revision 9977)
@@ -95,9 +95,9 @@
! 2 - Trends due to forcing !
! ---------------------------!
- z_frc_volbot = r1_rau0 * glob_sum( - ( wfx_ice(:,:) + wfx_snw(:,:) + wfx_err_sub(:,:) ) * e1e2t(:,:) ) * 1.e-9 ! freshwater flux ice/snow-ocean
- z_frc_voltop = r1_rau0 * glob_sum( - ( wfx_sub(:,:) + wfx_spr(:,:) ) * e1e2t(:,:) ) * 1.e-9 ! freshwater flux ice/snow-atm
- z_frc_sal = r1_rau0 * glob_sum( - sfx(:,:) * e1e2t(:,:) ) * 1.e-9 ! salt fluxes ice/snow-ocean
- z_frc_tembot = glob_sum( hfx_out(:,:) * e1e2t(:,:) ) * 1.e-20 ! heat on top of ocean (and below ice)
- z_frc_temtop = glob_sum( hfx_in (:,:) * e1e2t(:,:) ) * 1.e-20 ! heat on top of ice-coean
+ z_frc_volbot = r1_rau0 * glob_sum( - ( wfx_ice(:,:) + wfx_snw(:,:) + wfx_err_sub(:,:) ) * e1e2t(:,:) ) * 1.e-9 ! freshwater flux ice/snow-ocean
+ z_frc_voltop = r1_rau0 * glob_sum( - ( wfx_sub(:,:) + wfx_spr(:,:) ) * e1e2t(:,:) ) * 1.e-9 ! freshwater flux ice/snow-atm
+ z_frc_sal = r1_rau0 * glob_sum( - sfx(:,:) * e1e2t(:,:) ) * 1.e-9 ! salt fluxes ice/snow-ocean
+ z_frc_tembot = glob_sum( qt_oce_ai(:,:) * e1e2t(:,:) ) * 1.e-20 ! heat on top of ocean (and below ice)
+ z_frc_temtop = glob_sum( qt_atm_oi(:,:) * e1e2t(:,:) ) * 1.e-20 ! heat on top of ice-coean
!
frc_voltop = frc_voltop + z_frc_voltop * rdt_ice ! km3
@@ -110,7 +110,7 @@
! 3 - Content variations !
! ----------------------- !
- zdiff_vol = r1_rau0 * glob_sum( ( rhoic*vt_i(:,:) + rhosn*vt_s(:,:) - vol_loc_ini(:,:) ) * e1e2t(:,:) ) * 1.e-9 ! freshwater trend (km3)
- zdiff_sal = r1_rau0 * glob_sum( ( rhoic* SUM( sv_i(:,:,:), dim=3 ) - sal_loc_ini(:,:) ) * e1e2t(:,:) ) * 1.e-9 ! salt content trend (km3*pss)
- zdiff_tem = glob_sum( ( et_i(:,:) + et_s(:,:) - tem_loc_ini(:,:) ) * e1e2t(:,:) ) * 1.e-20 ! heat content trend (1.e20 J)
+ zdiff_vol = r1_rau0 * glob_sum( ( rhoic*vt_i(:,:) + rhosn*vt_s(:,:) - vol_loc_ini(:,:) ) * e1e2t(:,:) ) * 1.e-9 ! freshwater trend (km3)
+ zdiff_sal = r1_rau0 * glob_sum( ( rhoic* SUM( sv_i(:,:,:), dim=3 ) - sal_loc_ini(:,:) ) * e1e2t(:,:) ) * 1.e-9 ! salt content trend (km3*pss)
+ zdiff_tem = glob_sum( ( et_i(:,:) + et_s(:,:) - tem_loc_ini(:,:) ) * e1e2t(:,:) ) * 1.e-20 ! heat content trend (1.e20 J)
! + SUM( qevap_ice * a_i_b, dim=3 ) !! clem: I think this term should not be there (but needs a check)
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icestp.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icestp.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icestp.F90 (revision 9977)
@@ -189,5 +189,4 @@
IF( ln_icethd ) CALL ice_thd( kt ) ! -- Ice thermodynamics
!
- !
IF( ln_icethd ) CALL ice_cor( kt , 2 ) ! -- Corrections
!
@@ -427,9 +426,10 @@
! SIMIP diagnostics
- diag_fc_bo(:,:) = 0._wp ; diag_fc_su(:,:) = 0._wp
- t_si(:,:,:) = rt0 ! temp at the ice-snow interface
+ qcn_ice_bot(:,:,:) = 0._wp ; qcn_ice_top(:,:,:) = 0._wp ! conductive fluxes
+ t_si (:,:,:) = rt0 ! temp at the ice-snow interface
tau_icebfr(:,:) = 0._wp ! landfast ice param only (clem: important to keep the init here)
- cnd_ice (:,:,:) = 0._wp ! initialisation of the effective conductivity at the top of ice/snow (Jules coupling)
+ cnd_ice (:,:,:) = 0._wp ! initialisation: effective conductivity at the top of ice/snow (Jules coupling)
+ qtr_ice_bot(:,:,:) = 0._wp ! initialization: part of solar radiation transmitted through the ice needed at least for outputs
!
! for control checks (ln_icediachk)
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icethd.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icethd.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icethd.F90 (revision 9977)
@@ -20,5 +20,5 @@
USE sbc_oce , ONLY : sss_m, sst_m, e3t_m, utau, vtau, ssu_m, ssv_m, frq_m, qns_tot, qsr_tot, sprecip, ln_cpl
USE sbc_ice , ONLY : qsr_oce, qns_oce, qemp_oce, qsr_ice, qns_ice, dqns_ice, evap_ice, qprec_ice, qevap_ice, &
- & qml_ice, qcn_ice, qsr_ice_tr
+ & qml_ice, qcn_ice, qtr_ice_top
USE ice1D ! sea-ice: thermodynamics variables
USE icethd_zdf ! sea-ice: vertical heat diffusion
@@ -128,6 +128,4 @@
CALL lbc_lnk( zfric, 'T', 1. )
!
- ftr_ice(:,:,:) = 0._wp ! initialization (part of solar radiation transmitted through the ice)
-
!--------------------------------------------------------------------!
! Partial computation of forcing for the thermodynamic sea ice model
@@ -143,27 +141,24 @@
! ! temperature and turbulent mixing (McPhee, 1992)
!
- ! --- Energy received in the lead, zqld is defined everywhere (J.m-2) --- !
+ ! --- Energy received in the lead from atm-oce exchanges, zqld is defined everywhere (J.m-2) --- !
zqld = tmask(ji,jj,1) * rdt_ice * &
& ( ( 1._wp - at_i_b(ji,jj) ) * qsr_oce(ji,jj) * frq_m(ji,jj) + &
& ( 1._wp - at_i_b(ji,jj) ) * qns_oce(ji,jj) + qemp_oce(ji,jj) )
- ! --- Energy needed to bring ocean surface layer until its freezing (<0, J.m-2) --- !
- ! includes supercooling potential energy (>0) or "above-freezing" energy (<0)
- zqfr = tmask(ji,jj,1) * rau0 * rcp * e3t_m(ji,jj) * ( t_bo(ji,jj) - ( sst_m(ji,jj) + rt0 ) )
-
- ! --- Above-freezing sensible heat content (J/m2 grid)
- zqfr_neg = tmask(ji,jj,1) * rau0 * rcp * e3t_m(ji,jj) * MIN( ( t_bo(ji,jj) - ( sst_m(ji,jj) + rt0 ) ), 0._wp )
-
- ! --- Sensible ocean-to-ice heat flux (W/m2)
- zfric_u = MAX( SQRT( zfric(ji,jj) ), zfric_umin )
- fhtur(ji,jj) = rswitch * rau0 * rcp * zch * zfric_u * ( ( sst_m(ji,jj) + rt0 ) - t_bo(ji,jj) ) ! W.m-2
-
- fhtur(ji,jj) = rswitch * MIN( fhtur(ji,jj), - zqfr_neg * r1_rdtice / MAX( at_i(ji,jj), epsi10 ) )
- ! upper bound for fhtur: the heat retrieved from the ocean must be smaller than the heat necessary to reach
- ! the freezing point, so that we do not have SST < T_freeze
- ! This implies: - ( fhtur(ji,jj) * at_i(ji,jj) * rtdice ) - zqfr >= 0
-
- !-- Energy Budget of the leads (J.m-2), source of lateral accretion. Must be < 0 to form ice
- qlead(ji,jj) = MIN( 0._wp , zqld - ( fhtur(ji,jj) * at_i(ji,jj) * rdt_ice ) - zqfr )
+ ! --- Energy needed to bring ocean surface layer until its freezing (mostly<0 but >0 if supercooling, J.m-2) --- !
+ zqfr = rau0 * rcp * e3t_m(ji,jj) * ( t_bo(ji,jj) - ( sst_m(ji,jj) + rt0 ) ) * tmask(ji,jj,1) ! both < 0 (t_bo < sst) and > 0 (t_bo > sst)
+ zqfr_neg = MIN( zqfr , 0._wp ) ! only < 0
+
+ ! --- Sensible ocean-to-ice heat flux (mostly>0 but <0 if supercooling, W/m2)
+ zfric_u = MAX( SQRT( zfric(ji,jj) ), zfric_umin )
+ qsb_ice_bot(ji,jj) = rswitch * rau0 * rcp * zch * zfric_u * ( ( sst_m(ji,jj) + rt0 ) - t_bo(ji,jj) ) ! W.m-2
+
+ qsb_ice_bot(ji,jj) = rswitch * MIN( qsb_ice_bot(ji,jj), - zqfr_neg * r1_rdtice / MAX( at_i(ji,jj), epsi10 ) )
+ ! upper bound for qsb_ice_bot: the heat retrieved from the ocean must be smaller than the heat necessary to reach
+ ! the freezing point, so that we do not have SST < T_freeze
+ ! This implies: - ( qsb_ice_bot(ji,jj) * at_i(ji,jj) * rtdice ) - zqfr >= 0
+
+ !-- Energy Budget of the leads (J.m-2), source of ice growth in open water. Must be < 0 to form ice
+ qlead(ji,jj) = MIN( 0._wp , zqld - ( qsb_ice_bot(ji,jj) * at_i(ji,jj) * rdt_ice ) - zqfr )
! If there is ice and leads are warming, then transfer energy from the lead budget and use it for bottom melting
@@ -177,5 +172,5 @@
! Net heat flux on top of the ice-ocean [W.m-2]
! ---------------------------------------------
- hfx_in(ji,jj) = qns_tot(ji,jj) + qsr_tot(ji,jj)
+ qt_atm_oi(ji,jj) = qns_tot(ji,jj) + qsr_tot(ji,jj)
END DO
END DO
@@ -185,7 +180,7 @@
! In case we bypass growing/melting from top and bottom: we suppose ice is impermeable => ocean is isolated from atmosphere
IF( .NOT. ln_icedH ) THEN
- hfx_in(:,:) = ( 1._wp - at_i_b(:,:) ) * ( qns_oce(:,:) + qsr_oce(:,:) ) + qemp_oce(:,:)
- fhtur (:,:) = 0._wp
- fhld (:,:) = 0._wp
+ qt_atm_oi (:,:) = ( 1._wp - at_i_b(:,:) ) * ( qns_oce(:,:) + qsr_oce(:,:) ) + qemp_oce(:,:)
+ qsb_ice_bot(:,:) = 0._wp
+ fhld (:,:) = 0._wp
ENDIF
@@ -193,12 +188,12 @@
! Net heat flux on top of the ocean after ice thermo (1st step) [W.m-2]
! ---------------------------------------------------------------------
- ! First step here : non solar + precip - qlead - qturb
+ ! First step here : non solar + precip - qlead - qsensible
! Second step in icethd_dh : heat remaining if total melt (zq_rema)
! Third step in iceupdate.F90 : heat from ice-ocean mass exchange (zf_mass) + solar
- hfx_out(:,:) = ( 1._wp - at_i_b(:,:) ) * qns_oce(:,:) + qemp_oce(:,:) & ! Non solar heat flux received by the ocean
- & - qlead(:,:) * r1_rdtice & ! heat flux taken from the ocean where there is open water ice formation
- & - at_i (:,:) * fhtur(:,:) & ! heat flux taken by turbulence
- & - at_i (:,:) * fhld(:,:) ! heat flux taken during bottom growth/melt
- ! (fhld should be 0 while bott growth)
+ qt_oce_ai(:,:) = ( 1._wp - at_i_b(:,:) ) * qns_oce(:,:) + qemp_oce(:,:) & ! Non solar heat flux received by the ocean
+ & - qlead(:,:) * r1_rdtice & ! heat flux taken from the ocean where there is open water ice formation
+ & - at_i (:,:) * qsb_ice_bot(:,:) & ! heat flux taken by sensible flux
+ & - at_i (:,:) * fhld (:,:) ! heat flux taken during bottom growth/melt
+ ! ! (fhld should be 0 while bott growth)
!-------------------------------------------------------------------------------------------!
! Thermodynamic computation (only on grid points covered by ice) => loop over ice categories
@@ -377,18 +372,17 @@
CALL tab_2d_1d( npti, nptidx(1:npti), a_ip_frac_1d(1:npti), a_ip_frac(:,:,kl) )
!
- CALL tab_2d_1d( npti, nptidx(1:npti), qprec_ice_1d(1:npti), qprec_ice )
- CALL tab_2d_1d( npti, nptidx(1:npti), qsr_ice_1d (1:npti), qsr_ice (:,:,kl) )
- CALL tab_2d_1d( npti, nptidx(1:npti), qns_ice_1d (1:npti), qns_ice (:,:,kl) )
- CALL tab_2d_1d( npti, nptidx(1:npti), ftr_ice_1d (1:npti), ftr_ice (:,:,kl) )
- CALL tab_2d_1d( npti, nptidx(1:npti), evap_ice_1d (1:npti), evap_ice(:,:,kl) )
- CALL tab_2d_1d( npti, nptidx(1:npti), dqns_ice_1d (1:npti), dqns_ice(:,:,kl) )
- CALL tab_2d_1d( npti, nptidx(1:npti), t_bo_1d (1:npti), t_bo )
- CALL tab_2d_1d( npti, nptidx(1:npti), sprecip_1d (1:npti), sprecip )
- CALL tab_2d_1d( npti, nptidx(1:npti), fhtur_1d (1:npti), fhtur )
- CALL tab_2d_1d( npti, nptidx(1:npti), fhld_1d (1:npti), fhld )
+ CALL tab_2d_1d( npti, nptidx(1:npti), qprec_ice_1d (1:npti), qprec_ice )
+ CALL tab_2d_1d( npti, nptidx(1:npti), qsr_ice_1d (1:npti), qsr_ice (:,:,kl) )
+ CALL tab_2d_1d( npti, nptidx(1:npti), qns_ice_1d (1:npti), qns_ice (:,:,kl) )
+ CALL tab_2d_1d( npti, nptidx(1:npti), evap_ice_1d (1:npti), evap_ice(:,:,kl) )
+ CALL tab_2d_1d( npti, nptidx(1:npti), dqns_ice_1d (1:npti), dqns_ice(:,:,kl) )
+ CALL tab_2d_1d( npti, nptidx(1:npti), t_bo_1d (1:npti), t_bo )
+ CALL tab_2d_1d( npti, nptidx(1:npti), sprecip_1d (1:npti), sprecip )
+ CALL tab_2d_1d( npti, nptidx(1:npti), qsb_ice_bot_1d(1:npti), qsb_ice_bot )
+ CALL tab_2d_1d( npti, nptidx(1:npti), fhld_1d (1:npti), fhld )
- CALL tab_2d_1d( npti, nptidx(1:npti), qml_ice_1d (1:npti), qml_ice (:,:,kl) )
- CALL tab_2d_1d( npti, nptidx(1:npti), qcn_ice_1d (1:npti), qcn_ice (:,:,kl) )
- CALL tab_2d_1d( npti, nptidx(1:npti), qsr_ice_tr_1d(1:npti), qsr_ice_tr (:,:,kl) )
+ CALL tab_2d_1d( npti, nptidx(1:npti), qml_ice_1d (1:npti), qml_ice (:,:,kl) )
+ CALL tab_2d_1d( npti, nptidx(1:npti), qcn_ice_1d (1:npti), qcn_ice (:,:,kl) )
+ CALL tab_2d_1d( npti, nptidx(1:npti), qtr_ice_top_1d(1:npti), qtr_ice_top(:,:,kl) )
!
CALL tab_2d_1d( npti, nptidx(1:npti), wfx_snw_sni_1d(1:npti), wfx_snw_sni )
@@ -417,21 +411,18 @@
CALL tab_2d_1d( npti, nptidx(1:npti), sfx_lam_1d (1:npti), sfx_lam )
!
- CALL tab_2d_1d( npti, nptidx(1:npti), hfx_thd_1d (1:npti), hfx_thd )
- CALL tab_2d_1d( npti, nptidx(1:npti), hfx_spr_1d (1:npti), hfx_spr )
- CALL tab_2d_1d( npti, nptidx(1:npti), hfx_sum_1d (1:npti), hfx_sum )
- CALL tab_2d_1d( npti, nptidx(1:npti), hfx_bom_1d (1:npti), hfx_bom )
- CALL tab_2d_1d( npti, nptidx(1:npti), hfx_bog_1d (1:npti), hfx_bog )
- CALL tab_2d_1d( npti, nptidx(1:npti), hfx_dif_1d (1:npti), hfx_dif )
- CALL tab_2d_1d( npti, nptidx(1:npti), hfx_opw_1d (1:npti), hfx_opw )
- CALL tab_2d_1d( npti, nptidx(1:npti), hfx_snw_1d (1:npti), hfx_snw )
- CALL tab_2d_1d( npti, nptidx(1:npti), hfx_sub_1d (1:npti), hfx_sub )
- CALL tab_2d_1d( npti, nptidx(1:npti), hfx_res_1d (1:npti), hfx_res )
+ CALL tab_2d_1d( npti, nptidx(1:npti), hfx_thd_1d (1:npti), hfx_thd )
+ CALL tab_2d_1d( npti, nptidx(1:npti), hfx_spr_1d (1:npti), hfx_spr )
+ CALL tab_2d_1d( npti, nptidx(1:npti), hfx_sum_1d (1:npti), hfx_sum )
+ CALL tab_2d_1d( npti, nptidx(1:npti), hfx_bom_1d (1:npti), hfx_bom )
+ CALL tab_2d_1d( npti, nptidx(1:npti), hfx_bog_1d (1:npti), hfx_bog )
+ CALL tab_2d_1d( npti, nptidx(1:npti), hfx_dif_1d (1:npti), hfx_dif )
+ CALL tab_2d_1d( npti, nptidx(1:npti), hfx_opw_1d (1:npti), hfx_opw )
+ CALL tab_2d_1d( npti, nptidx(1:npti), hfx_snw_1d (1:npti), hfx_snw )
+ CALL tab_2d_1d( npti, nptidx(1:npti), hfx_sub_1d (1:npti), hfx_sub )
+ CALL tab_2d_1d( npti, nptidx(1:npti), hfx_res_1d (1:npti), hfx_res )
CALL tab_2d_1d( npti, nptidx(1:npti), hfx_err_dif_1d(1:npti), hfx_err_dif )
CALL tab_2d_1d( npti, nptidx(1:npti), hfx_err_rem_1d(1:npti), hfx_err_rem )
- CALL tab_2d_1d( npti, nptidx(1:npti), hfx_out_1d (1:npti), hfx_out )
- !
- ! SIMIP diagnostics
- CALL tab_2d_1d( npti, nptidx(1:npti), diag_fc_bo_1d(1:npti), diag_fc_bo )
- CALL tab_2d_1d( npti, nptidx(1:npti), diag_fc_su_1d(1:npti), diag_fc_su )
+ CALL tab_2d_1d( npti, nptidx(1:npti), qt_oce_ai_1d (1:npti), qt_oce_ai )
+ !
! ocean surface fields
CALL tab_2d_1d( npti, nptidx(1:npti), sst_1d(1:npti), sst_m )
@@ -507,27 +498,27 @@
CALL tab_1d_2d( npti, nptidx(1:npti), sfx_lam_1d (1:npti), sfx_lam )
!
- CALL tab_1d_2d( npti, nptidx(1:npti), hfx_thd_1d (1:npti), hfx_thd )
- CALL tab_1d_2d( npti, nptidx(1:npti), hfx_spr_1d (1:npti), hfx_spr )
- CALL tab_1d_2d( npti, nptidx(1:npti), hfx_sum_1d (1:npti), hfx_sum )
- CALL tab_1d_2d( npti, nptidx(1:npti), hfx_bom_1d (1:npti), hfx_bom )
- CALL tab_1d_2d( npti, nptidx(1:npti), hfx_bog_1d (1:npti), hfx_bog )
- CALL tab_1d_2d( npti, nptidx(1:npti), hfx_dif_1d (1:npti), hfx_dif )
- CALL tab_1d_2d( npti, nptidx(1:npti), hfx_opw_1d (1:npti), hfx_opw )
- CALL tab_1d_2d( npti, nptidx(1:npti), hfx_snw_1d (1:npti), hfx_snw )
- CALL tab_1d_2d( npti, nptidx(1:npti), hfx_sub_1d (1:npti), hfx_sub )
- CALL tab_1d_2d( npti, nptidx(1:npti), hfx_res_1d (1:npti), hfx_res )
+ CALL tab_1d_2d( npti, nptidx(1:npti), hfx_thd_1d (1:npti), hfx_thd )
+ CALL tab_1d_2d( npti, nptidx(1:npti), hfx_spr_1d (1:npti), hfx_spr )
+ CALL tab_1d_2d( npti, nptidx(1:npti), hfx_sum_1d (1:npti), hfx_sum )
+ CALL tab_1d_2d( npti, nptidx(1:npti), hfx_bom_1d (1:npti), hfx_bom )
+ CALL tab_1d_2d( npti, nptidx(1:npti), hfx_bog_1d (1:npti), hfx_bog )
+ CALL tab_1d_2d( npti, nptidx(1:npti), hfx_dif_1d (1:npti), hfx_dif )
+ CALL tab_1d_2d( npti, nptidx(1:npti), hfx_opw_1d (1:npti), hfx_opw )
+ CALL tab_1d_2d( npti, nptidx(1:npti), hfx_snw_1d (1:npti), hfx_snw )
+ CALL tab_1d_2d( npti, nptidx(1:npti), hfx_sub_1d (1:npti), hfx_sub )
+ CALL tab_1d_2d( npti, nptidx(1:npti), hfx_res_1d (1:npti), hfx_res )
CALL tab_1d_2d( npti, nptidx(1:npti), hfx_err_dif_1d(1:npti), hfx_err_dif )
CALL tab_1d_2d( npti, nptidx(1:npti), hfx_err_rem_1d(1:npti), hfx_err_rem )
- CALL tab_1d_2d( npti, nptidx(1:npti), hfx_out_1d (1:npti), hfx_out )
- !
- CALL tab_1d_2d( npti, nptidx(1:npti), qns_ice_1d(1:npti), qns_ice(:,:,kl) )
- CALL tab_1d_2d( npti, nptidx(1:npti), ftr_ice_1d(1:npti), ftr_ice(:,:,kl) )
+ CALL tab_1d_2d( npti, nptidx(1:npti), qt_oce_ai_1d (1:npti), qt_oce_ai )
+ !
+ CALL tab_1d_2d( npti, nptidx(1:npti), qns_ice_1d (1:npti), qns_ice (:,:,kl) )
+ CALL tab_1d_2d( npti, nptidx(1:npti), qtr_ice_bot_1d(1:npti), qtr_ice_bot(:,:,kl) )
! effective conductivity and 1st layer temperature (for Jules coupling)
CALL tab_1d_2d( npti, nptidx(1:npti), cnd_ice_1d(1:npti), cnd_ice(:,:,kl) )
CALL tab_1d_2d( npti, nptidx(1:npti), t1_ice_1d (1:npti), t1_ice (:,:,kl) )
! SIMIP diagnostics
- CALL tab_1d_2d( npti, nptidx(1:npti), t_si_1d (1:npti), t_si(:,:,kl) )
- CALL tab_1d_2d( npti, nptidx(1:npti), diag_fc_bo_1d(1:npti), diag_fc_bo )
- CALL tab_1d_2d( npti, nptidx(1:npti), diag_fc_su_1d(1:npti), diag_fc_su )
+ CALL tab_1d_2d( npti, nptidx(1:npti), t_si_1d (1:npti), t_si (:,:,kl) )
+ CALL tab_1d_2d( npti, nptidx(1:npti), qcn_ice_bot_1d(1:npti), qcn_ice_bot(:,:,kl) )
+ CALL tab_1d_2d( npti, nptidx(1:npti), qcn_ice_top_1d(1:npti), qcn_ice_top(:,:,kl) )
! extensive variables
CALL tab_1d_2d( npti, nptidx(1:npti), v_i_1d (1:npti), v_i (:,:,kl) )
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icethd_dh.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icethd_dh.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icethd_dh.F90 (revision 9977)
@@ -85,6 +85,6 @@
REAL(wp), DIMENSION(jpij) :: zqprec ! energy of fallen snow (J.m-3)
- REAL(wp), DIMENSION(jpij) :: zq_su ! heat for surface ablation (J.m-2)
- REAL(wp), DIMENSION(jpij) :: zq_bo ! heat for bottom ablation (J.m-2)
+ REAL(wp), DIMENSION(jpij) :: zq_top ! heat for surface ablation (J.m-2)
+ REAL(wp), DIMENSION(jpij) :: zq_bot ! heat for bottom ablation (J.m-2)
REAL(wp), DIMENSION(jpij) :: zq_rema ! remaining heat at the end of the routine (J.m-2)
REAL(wp), DIMENSION(jpij) :: zf_tt ! Heat budget to determine melting or freezing(W.m-2)
@@ -131,21 +131,13 @@
!
DO ji = 1, npti
- zq_su(ji) = MAX( 0._wp, qml_ice_1d(ji) * rdt_ice )
+ zq_top(ji) = MAX( 0._wp, qml_ice_1d(ji) * rdt_ice )
END DO
!
- CASE( np_jules_EMULE )
+ CASE( np_jules_OFF , np_jules_EMULE )
!
DO ji = 1, npti
- zdum = qns_ice_1d(ji) + qsr_ice_1d(ji) - qsr_ice_tr_1d(ji) - fc_su(ji)
+ zdum = qns_ice_1d(ji) + qsr_ice_1d(ji) - qtr_ice_top_1d(ji) - qcn_ice_top_1d(ji)
qml_ice_1d(ji) = zdum * MAX( 0._wp , SIGN( 1._wp, t_su_1d(ji) - rt0 ) )
- zq_su(ji) = MAX( 0._wp, qml_ice_1d(ji) * rdt_ice )
- END DO
- !
- CASE( np_jules_OFF )
- !
- DO ji = 1, npti
- zdum = qns_ice_1d(ji) + qsr_ice_1d(ji) - qsr_ice_tr_1d(ji) - fc_su(ji)
- qml_ice_1d(ji) = zdum * MAX( 0._wp , SIGN( 1._wp, t_su_1d(ji) - rt0 ) )
- zq_su(ji) = MAX( 0._wp, qml_ice_1d(ji) * rdt_ice )
+ zq_top(ji) = MAX( 0._wp, qml_ice_1d(ji) * rdt_ice )
END DO
!
@@ -153,6 +145,6 @@
!
DO ji = 1, npti
- zf_tt(ji) = fc_bo_i(ji) + fhtur_1d(ji) + fhld_1d(ji)
- zq_bo(ji) = MAX( 0._wp, zf_tt(ji) * rdt_ice )
+ zf_tt(ji) = qcn_ice_bot_1d(ji) + qsb_ice_bot_1d(ji) + fhld_1d(ji)
+ zq_bot(ji) = MAX( 0._wp, zf_tt(ji) * rdt_ice )
END DO
@@ -210,6 +202,6 @@
! --- melt of falling snow ---
rswitch = MAX( 0._wp , SIGN( 1._wp , zqprec(ji) - epsi20 ) )
- zdeltah (ji,1) = - rswitch * zq_su(ji) / MAX( zqprec(ji) , epsi20 ) ! thickness change
- zdeltah (ji,1) = MAX( - zdh_s_pre(ji), zdeltah(ji,1) ) ! bound melting
+ zdeltah (ji,1) = - rswitch * zq_top(ji) / MAX( zqprec(ji) , epsi20 ) ! thickness change
+ zdeltah (ji,1) = MAX( - zdh_s_pre(ji), zdeltah(ji,1) ) ! bound melting
hfx_snw_1d (ji) = hfx_snw_1d (ji) - zdeltah(ji,1) * a_i_1d(ji) * zqprec(ji) * r1_rdtice ! heat used to melt snow (W.m-2, >0)
wfx_snw_sum_1d(ji) = wfx_snw_sum_1d(ji) - rhosn * a_i_1d(ji) * zdeltah(ji,1) * r1_rdtice ! snow melting only = water into the ocean (then without snow precip), >0
@@ -217,5 +209,5 @@
! updates available heat + precipitations after melting
dh_s_mlt (ji) = dh_s_mlt(ji) + zdeltah(ji,1)
- zq_su (ji) = MAX( 0._wp , zq_su (ji) + zdeltah(ji,1) * zqprec(ji) )
+ zq_top (ji) = MAX( 0._wp , zq_top (ji) + zdeltah(ji,1) * zqprec(ji) )
zdh_s_pre(ji) = zdh_s_pre(ji) + zdeltah(ji,1)
@@ -240,14 +232,14 @@
! Snow melting
! ------------
- ! If heat still available (zq_su > 0), then melt more snow
+ ! If heat still available (zq_top > 0), then melt more snow
zdeltah(1:npti,:) = 0._wp
zdh_s_mel(1:npti) = 0._wp
DO jk = 1, nlay_s
DO ji = 1, npti
- IF( zh_s(ji,jk) > 0._wp .AND. zq_su(ji) > 0._wp ) THEN
+ IF( zh_s(ji,jk) > 0._wp .AND. zq_top(ji) > 0._wp ) THEN
!
rswitch = MAX( 0._wp, SIGN( 1._wp, e_s_1d(ji,jk) - epsi20 ) )
- zdeltah (ji,jk) = - rswitch * zq_su(ji) / MAX( e_s_1d(ji,jk), epsi20 ) ! thickness change
- zdeltah (ji,jk) = MAX( zdeltah(ji,jk) , - zh_s(ji,jk) ) ! bound melting
+ zdeltah (ji,jk) = - rswitch * zq_top(ji) / MAX( e_s_1d(ji,jk), epsi20 ) ! thickness change
+ zdeltah (ji,jk) = MAX( zdeltah(ji,jk) , - zh_s(ji,jk) ) ! bound melting
zdh_s_mel(ji) = zdh_s_mel(ji) + zdeltah(ji,jk)
@@ -257,5 +249,5 @@
! updates available heat + thickness
dh_s_mlt(ji) = dh_s_mlt(ji) + zdeltah(ji,jk)
- zq_su (ji) = MAX( 0._wp , zq_su (ji) + zdeltah(ji,jk) * e_s_1d(ji,jk) )
+ zq_top (ji) = MAX( 0._wp , zq_top(ji) + zdeltah(ji,jk) * e_s_1d(ji,jk) )
h_s_1d (ji) = MAX( 0._wp , h_s_1d(ji) + zdeltah(ji,jk) )
zh_s (ji,jk) = MAX( 0._wp , zh_s(ji,jk) + zdeltah(ji,jk) )
@@ -349,5 +341,5 @@
zdE = zEi - zEw ! Specific enthalpy difference < 0
- zfmdt = - zq_su(ji) / zdE ! Mass flux to the ocean [kg/m2, >0]
+ zfmdt = - zq_top(ji) / zdE ! Mass flux to the ocean [kg/m2, >0]
zdeltah(ji,jk) = - zfmdt * r1_rhoic ! Melt of layer jk [m, <0]
@@ -355,5 +347,5 @@
zdeltah(ji,jk) = MIN( 0._wp , MAX( zdeltah(ji,jk) , - zh_i(ji,jk) ) ) ! Melt of layer jk cannot exceed the layer thickness [m, <0]
- zq_su(ji) = MAX( 0._wp , zq_su(ji) - zdeltah(ji,jk) * rhoic * zdE ) ! update available heat
+ zq_top(ji) = MAX( 0._wp , zq_top(ji) - zdeltah(ji,jk) * rhoic * zdE ) ! update available heat
dh_i_sum(ji) = dh_i_sum(ji) + zdeltah(ji,jk) ! Cumulate surface melt
@@ -416,7 +408,7 @@
!------------------
! Basal growth is driven by heat imbalance at the ice-ocean interface,
- ! between the inner conductive flux (fc_bo_i), from the open water heat flux
- ! (fhld) and the turbulent ocean flux (fhtur).
- ! fc_bo_i is positive downwards. fhtur and fhld are positive to the ice
+ ! between the inner conductive flux (qcn_ice_bot), from the open water heat flux
+ ! (fhld) and the sensible ice-ocean flux (qsb_ice_bot).
+ ! qcn_ice_bot is positive downwards. qsb_ice_bot and fhld are positive to the ice
! If salinity varies in time, an iterative procedure is required, because
@@ -515,5 +507,5 @@
zdE = zEi - zEw ! Specific enthalpy difference (J/kg, <0)
- zfmdt = - zq_bo(ji) / zdE ! Mass flux x time step (kg/m2, >0)
+ zfmdt = - zq_bot(ji) / zdE ! Mass flux x time step (kg/m2, >0)
zdeltah(ji,jk) = - zfmdt * r1_rhoic ! Gross thickness change
@@ -521,7 +513,7 @@
zdeltah(ji,jk) = MIN( 0._wp , MAX( zdeltah(ji,jk), - zh_i(ji,jk) ) ) ! bound thickness change
- zq_bo(ji) = MAX( 0._wp , zq_bo(ji) - zdeltah(ji,jk) * rhoic * zdE ) ! update available heat. MAX is necessary for roundup errors
-
- dh_i_bom(ji) = dh_i_bom(ji) + zdeltah(ji,jk) ! Update basal melt
+ zq_bot(ji) = MAX( 0._wp , zq_bot(ji) - zdeltah(ji,jk) * rhoic * zdE ) ! update available heat. MAX is necessary for roundup errors
+
+ dh_i_bom(ji) = dh_i_bom(ji) + zdeltah(ji,jk) ! Update basal melt
zfmdt = - zdeltah(ji,jk) * rhoic ! Mass flux x time step > 0
@@ -556,5 +548,5 @@
zdeltah(1:npti,:) = 0._wp ! important
DO ji = 1, npti
- zq_rema (ji) = zq_su(ji) + zq_bo(ji)
+ zq_rema (ji) = zq_top(ji) + zq_bot(ji)
rswitch = 1._wp - MAX( 0._wp, SIGN( 1._wp, - h_s_1d(ji) ) ) ! =1 if snow
rswitch = rswitch * MAX( 0._wp, SIGN( 1._wp, e_s_1d(ji,1) - epsi20 ) )
@@ -570,5 +562,5 @@
!
! Remaining heat flux (W.m-2) is sent to the ocean heat budget
- hfx_out_1d(ji) = hfx_out_1d(ji) + ( zq_rema(ji) * a_i_1d(ji) ) * r1_rdtice
+ qt_oce_ai_1d(ji) = qt_oce_ai_1d(ji) + ( zq_rema(ji) * a_i_1d(ji) ) * r1_rdtice
IF( ln_icectl .AND. zq_rema(ji) < 0. .AND. lwp ) WRITE(numout,*) 'ALERTE zq_rema <0 = ', zq_rema(ji)
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icethd_zdf_bl99.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icethd_zdf_bl99.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icethd_zdf_bl99.F90 (revision 9977)
@@ -178,5 +178,5 @@
!-------------
! --- Transmission/absorption of solar radiation in the ice --- !
- zradtr_s(1:npti,0) = qsr_ice_tr_1d(1:npti)
+ zradtr_s(1:npti,0) = qtr_ice_top_1d(1:npti)
DO jk = 1, nlay_s
DO ji = 1, npti
@@ -188,5 +188,5 @@
END DO
!
- zradtr_i(1:npti,0) = zradtr_s(1:npti,nlay_s) * isnow(1:npti) + qsr_ice_tr_1d(1:npti) * ( 1._wp - isnow(1:npti) )
+ zradtr_i(1:npti,0) = zradtr_s(1:npti,nlay_s) * isnow(1:npti) + qtr_ice_top_1d(1:npti) * ( 1._wp - isnow(1:npti) )
DO jk = 1, nlay_i
DO ji = 1, npti
@@ -198,5 +198,5 @@
END DO
!
- ftr_ice_1d(1:npti) = zradtr_i(1:npti,nlay_i) ! record radiation transmitted below the ice
+ qtr_ice_bot_1d(1:npti) = zradtr_i(1:npti,nlay_i) ! record radiation transmitted below the ice
!
iconv = 0 ! number of iterations
@@ -330,5 +330,5 @@
DO ji = 1, npti
- zfnet(ji) = qsr_ice_1d(ji) - qsr_ice_tr_1d(ji) + qns_ice_1d(ji) ! net heat flux = net - transmitted solar + non solar
+ zfnet(ji) = qsr_ice_1d(ji) - qtr_ice_top_1d(ji) + qns_ice_1d(ji) ! net heat flux = net - transmitted solar + non solar
END DO
!
@@ -728,12 +728,12 @@
!-----------------------------
!
- ! --- update conduction fluxes
- !
+ ! --- calculate conduction fluxes (positive downward)
+
DO ji = 1, npti
! ! surface ice conduction flux
- fc_su(ji) = - isnow(ji) * zkappa_s(ji,0) * zg1s * ( t_s_1d(ji,1) - t_su_1d(ji) ) &
- & - ( 1._wp - isnow(ji) ) * zkappa_i(ji,0) * zg1 * ( t_i_1d(ji,1) - t_su_1d(ji) )
+ qcn_ice_top_1d(ji) = - isnow(ji) * zkappa_s(ji,0) * zg1s * ( t_s_1d(ji,1) - t_su_1d(ji) ) &
+ & - ( 1._wp - isnow(ji) ) * zkappa_i(ji,0) * zg1 * ( t_i_1d(ji,1) - t_su_1d(ji) )
! ! bottom ice conduction flux
- fc_bo_i(ji) = - zkappa_i(ji,nlay_i) * zg1 * ( t_bo_1d(ji) - t_i_1d(ji,nlay_i) )
+ qcn_ice_bot_1d(ji) = - zkappa_i(ji,nlay_i) * zg1 * ( t_bo_1d(ji ) - t_i_1d (ji,nlay_i) )
END DO
@@ -750,5 +750,5 @@
!
DO ji = 1, npti
- hfx_err_dif_1d(ji) = hfx_err_dif_1d(ji) - ( fc_su(ji) - qcn_ice_1d(ji) ) * a_i_1d(ji)
+ hfx_err_dif_1d(ji) = hfx_err_dif_1d(ji) - ( qcn_ice_top_1d(ji) - qcn_ice_1d(ji) ) * a_i_1d(ji)
END DO
!
@@ -770,12 +770,15 @@
IF( t_su_1d(ji) < rt0 ) THEN ! case T_su < 0degC
- zhfx_err = ( qns_ice_1d(ji) + qsr_ice_1d(ji) - zradtr_i(ji,nlay_i) - fc_bo_i(ji) + zdq * r1_rdtice )*a_i_1d(ji)
+ zhfx_err = ( qns_ice_1d(ji) + qsr_ice_1d(ji) - zradtr_i(ji,nlay_i) - qcn_ice_bot_1d(ji) &
+ & + zdq * r1_rdtice ) * a_i_1d(ji)
ELSE ! case T_su = 0degC
- zhfx_err = ( fc_su(ji) + qsr_ice_tr_1d(ji) - zradtr_i(ji,nlay_i) - fc_bo_i(ji) + zdq * r1_rdtice )*a_i_1d(ji)
+ zhfx_err = ( qcn_ice_top_1d(ji) + qtr_ice_top_1d(ji) - zradtr_i(ji,nlay_i) - qcn_ice_bot_1d(ji) &
+ & + zdq * r1_rdtice ) * a_i_1d(ji)
ENDIF
ELSEIF( k_jules == np_jules_ACTIVE ) THEN
- zhfx_err = ( fc_su(ji) + qsr_ice_tr_1d(ji) - zradtr_i(ji,nlay_i) - fc_bo_i(ji) + zdq * r1_rdtice ) * a_i_1d(ji)
+ zhfx_err = ( qcn_ice_top_1d(ji) + qtr_ice_top_1d(ji) - zradtr_i(ji,nlay_i) - qcn_ice_bot_1d(ji) &
+ & + zdq * r1_rdtice ) * a_i_1d(ji)
ENDIF
@@ -787,21 +790,4 @@
hfx_dif_1d(ji) = hfx_dif_1d(ji) - zdq * r1_rdtice * a_i_1d(ji)
!
- END DO
- !
- ! --- SIMIP diagnostics
- !
- DO ji = 1, npti
- !--- Conduction fluxes (positive downwards)
- diag_fc_bo_1d(ji) = diag_fc_bo_1d(ji) + fc_bo_i(ji) * a_i_1d(ji) / at_i_1d(ji)
- diag_fc_su_1d(ji) = diag_fc_su_1d(ji) + fc_su (ji) * a_i_1d(ji) / at_i_1d(ji)
-
- !--- Snow-ice interfacial temperature (diagnostic SIMIP)
- zfac = rn_cnd_s * zh_i(ji) + ztcond_i(ji,1) * zh_s(ji)
- IF( h_s_1d(ji) >= zhs_min ) THEN
- t_si_1d(ji) = ( rn_cnd_s * zh_i(ji) * t_s_1d(ji,1) + &
- & ztcond_i(ji,1) * zh_s(ji) * t_i_1d(ji,1) ) / MAX( epsi10, zfac )
- ELSE
- t_si_1d(ji) = t_su_1d(ji)
- ENDIF
END DO
!
@@ -827,11 +813,23 @@
IF( k_jules == np_jules_EMULE ) THEN
! Restore temperatures to their initial values
- t_s_1d (1:npti,:) = ztsold(1:npti,:)
- t_i_1d (1:npti,:) = ztiold(1:npti,:)
- qcn_ice_1d(1:npti) = fc_su (1:npti)
+ t_s_1d (1:npti,:) = ztsold (1:npti,:)
+ t_i_1d (1:npti,:) = ztiold (1:npti,:)
+ qcn_ice_1d(1:npti) = qcn_ice_top_1d(1:npti)
ENDIF
!
+ ! --- SIMIP diagnostics
+ !
+ DO ji = 1, npti
+ !--- Snow-ice interfacial temperature (diagnostic SIMIP)
+ zfac = rn_cnd_s * zh_i(ji) + ztcond_i(ji,1) * zh_s(ji)
+ IF( h_s_1d(ji) >= zhs_min ) THEN
+ t_si_1d(ji) = ( rn_cnd_s * zh_i(ji) * t_s_1d(ji,1) + &
+ & ztcond_i(ji,1) * zh_s(ji) * t_i_1d(ji,1) ) / MAX( epsi10, zfac )
+ ELSE
+ t_si_1d(ji) = t_su_1d(ji)
+ ENDIF
+ END DO
+ !
END SUBROUTINE ice_thd_zdf_BL99
-
#else
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/iceupdate.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/iceupdate.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/iceupdate.F90 (revision 9977)
@@ -107,10 +107,9 @@
! --- case we bypass ice thermodynamics --- !
IF( .NOT. ln_icethd ) THEN ! we suppose ice is impermeable => ocean is isolated from atmosphere
- hfx_in (:,:) = ( 1._wp - at_i_b(:,:) ) * ( qns_oce(:,:) + qsr_oce(:,:) ) + qemp_oce(:,:)
- hfx_out (:,:) = ( 1._wp - at_i_b(:,:) ) * qns_oce(:,:) + qemp_oce(:,:)
- ftr_ice (:,:,:) = 0._wp
- emp_ice (:,:) = 0._wp
- qemp_ice (:,:) = 0._wp
- qevap_ice(:,:,:) = 0._wp
+ qt_atm_oi (:,:) = ( 1._wp - at_i_b(:,:) ) * ( qns_oce(:,:) + qsr_oce(:,:) ) + qemp_oce(:,:)
+ qt_oce_ai (:,:) = ( 1._wp - at_i_b(:,:) ) * qns_oce(:,:) + qemp_oce(:,:)
+ emp_ice (:,:) = 0._wp
+ qemp_ice (:,:) = 0._wp
+ qevap_ice (:,:,:) = 0._wp
ENDIF
@@ -120,20 +119,20 @@
! Solar heat flux reaching the ocean = zqsr (W.m-2)
!---------------------------------------------------
- zqsr = qsr_tot(ji,jj) - SUM( a_i_b(ji,jj,:) * ( qsr_ice(ji,jj,:) - ftr_ice(ji,jj,:) ) )
-
- ! Total heat flux reaching the ocean = hfx_out (W.m-2)
+ zqsr = qsr_tot(ji,jj) - SUM( a_i_b(ji,jj,:) * ( qsr_ice(ji,jj,:) - qtr_ice_bot(ji,jj,:) ) )
+
+ ! Total heat flux reaching the ocean = qt_oce_ai (W.m-2)
!---------------------------------------------------
- zqmass = hfx_thd(ji,jj) + hfx_dyn(ji,jj) + hfx_res(ji,jj) ! heat flux from snow is 0 (T=0 degC)
- hfx_out(ji,jj) = hfx_out(ji,jj) + zqmass + zqsr
+ zqmass = hfx_thd(ji,jj) + hfx_dyn(ji,jj) + hfx_res(ji,jj) ! heat flux from snow is 0 (T=0 degC)
+ qt_oce_ai(ji,jj) = qt_oce_ai(ji,jj) + zqmass + zqsr
! Add the residual from heat diffusion equation and sublimation (W.m-2)
!----------------------------------------------------------------------
- hfx_out(ji,jj) = hfx_out(ji,jj) + hfx_err_dif(ji,jj) + &
- & ( hfx_sub(ji,jj) - SUM( qevap_ice(ji,jj,:) * a_i_b(ji,jj,:) ) )
+ qt_oce_ai(ji,jj) = qt_oce_ai(ji,jj) + hfx_err_dif(ji,jj) + &
+ & ( hfx_sub(ji,jj) - SUM( qevap_ice(ji,jj,:) * a_i_b(ji,jj,:) ) )
! New qsr and qns used to compute the oceanic heat flux at the next time step
!----------------------------------------------------------------------------
qsr(ji,jj) = zqsr
- qns(ji,jj) = hfx_out(ji,jj) - zqsr
+ qns(ji,jj) = qt_oce_ai(ji,jj) - zqsr
! Mass flux at the atm. surface
@@ -250,10 +249,10 @@
IF( iom_use('qsr_ice' ) ) CALL iom_put( "qsr_ice" , SUM( qsr_ice * a_i_b, dim=3 ) ) ! solar flux at ice surface
IF( iom_use('qns_ice' ) ) CALL iom_put( "qns_ice" , SUM( qns_ice * a_i_b, dim=3 ) + qemp_ice ) ! non-solar flux at ice surface
- IF( iom_use('qtr_ice_bot') ) CALL iom_put( "qtr_ice_bot", SUM( ftr_ice * a_i_b, dim=3 ) ) ! solar flux transmitted thru ice
- IF( iom_use('qtr_ice_top') ) CALL iom_put( "qtr_ice_top", SUM( qsr_ice_tr * a_i_b, dim=3 ) ) ! solar flux transmitted thru ice surface
+ IF( iom_use('qtr_ice_bot') ) CALL iom_put( "qtr_ice_bot", SUM( qtr_ice_bot * a_i_b, dim=3 ) ) ! solar flux transmitted thru ice
+ IF( iom_use('qtr_ice_top') ) CALL iom_put( "qtr_ice_top", SUM( qtr_ice_top * a_i_b, dim=3 ) ) ! solar flux transmitted thru ice surface
IF( iom_use('qt_oce' ) ) CALL iom_put( "qt_oce" , ( qsr_oce + qns_oce ) * ( 1._wp - at_i_b ) + qemp_oce )
IF( iom_use('qt_ice' ) ) CALL iom_put( "qt_ice" , SUM( ( qns_ice + qsr_ice ) * a_i_b, dim=3 ) + qemp_ice )
- IF( iom_use('qt_oce_ai' ) ) CALL iom_put( "qt_oce_ai" , hfx_out * tmask(:,:,1) ) ! total heat flux at the ocean surface: interface oce-(ice+atm)
- IF( iom_use('qt_atm_oi' ) ) CALL iom_put( "qt_atm_oi" , hfx_in * tmask(:,:,1) ) ! total heat flux at the oce-ice surface: interface atm-(ice+oce)
+ IF( iom_use('qt_oce_ai' ) ) CALL iom_put( "qt_oce_ai" , qt_oce_ai * tmask(:,:,1) ) ! total heat flux at the ocean surface: interface oce-(ice+atm)
+ IF( iom_use('qt_atm_oi' ) ) CALL iom_put( "qt_atm_oi" , qt_atm_oi * tmask(:,:,1) ) ! total heat flux at the oce-ice surface: interface atm-(ice+oce)
IF( iom_use('qemp_oce' ) ) CALL iom_put( "qemp_oce" , qemp_oce ) ! Downward Heat Flux from E-P over ocean
IF( iom_use('qemp_ice' ) ) CALL iom_put( "qemp_ice" , qemp_ice ) ! Downward Heat Flux from E-P over ice
@@ -267,5 +266,5 @@
IF( iom_use('hfxdif' ) ) CALL iom_put ("hfxdif" , hfx_dif ) ! heat flux used for ice temperature change
IF( iom_use('hfxsnw' ) ) CALL iom_put ("hfxsnw" , hfx_snw ) ! heat flux used for snow melt
- IF( iom_use('hfxerr' ) ) CALL iom_put ("hfxerr" , hfx_err_dif ) ! heat flux error after heat diffusion (included in hfx_out)
+ IF( iom_use('hfxerr' ) ) CALL iom_put ("hfxerr" , hfx_err_dif ) ! heat flux error after heat diffusion (included in qt_oce_ai)
! heat fluxes associated with mass exchange (freeze/melt/precip...)
@@ -277,7 +276,7 @@
! other heat fluxes
- IF( iom_use('hfxsensib' ) ) CALL iom_put( "hfxsensib" , -fhtur * at_i_b ) ! Sensible oceanic heat flux
- IF( iom_use('hfxcndbot' ) ) CALL iom_put( "hfxcndbot" , diag_fc_bo * at_i_b ) ! Bottom conduction flux
- IF( iom_use('hfxcndtop' ) ) CALL iom_put( "hfxcndtop" , diag_fc_su * at_i_b ) ! Surface conduction flux
+ IF( iom_use('hfxsensib' ) ) CALL iom_put( "hfxsensib" , -qsb_ice_bot * at_i_b ) ! Sensible oceanic heat flux
+ IF( iom_use('hfxcndbot' ) ) CALL iom_put( "hfxcndbot" , SUM( qcn_ice_bot * a_i_b, dim=3 ) ) ! Bottom conduction flux
+ IF( iom_use('hfxcndtop' ) ) CALL iom_put( "hfxcndtop" , SUM( qcn_ice_top * a_i_b, dim=3 ) ) ! Surface conduction flux
! diags
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/BDY/bdydta.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/BDY/bdydta.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/BDY/bdydta.F90 (revision 9977)
@@ -351,12 +351,13 @@
ENDIF
#if defined key_si3
+ ! convert N-cat fields (input) into jpl-cat (output)
IF( cn_ice(jbdy) /= 'none' .AND. nn_ice_dta(jbdy) == 1 ) THEN
jfld_hti = jfld_htit(jbdy)
jfld_hts = jfld_htst(jbdy)
jfld_ai = jfld_ait(jbdy)
- IF( nice_cat == 1 ) THEN ! case input cat = 1
+ IF ( jpl /= 1 .AND. nice_cat == 1 ) THEN ! case input cat = 1
CALL ice_var_itd ( bf(jfld_hti)%fnow(:,1,1), bf(jfld_hts)%fnow(:,1,1), bf(jfld_ai)%fnow(:,1,1), &
& dta_bdy(jbdy)%h_i , dta_bdy(jbdy)%h_s , dta_bdy(jbdy)%a_i )
- ELSEIF( nice_cat /= 1 .AND. nice_cat /= jpl ) THEN ! case input cat /=1 and /=jpl
+ ELSEIF( jpl /= 1 .AND. nice_cat /= 1 .AND. nice_cat /= jpl ) THEN ! case input cat /=1 and /=jpl
CALL ice_var_itd2( bf(jfld_hti)%fnow(:,1,:), bf(jfld_hts)%fnow(:,1,:), bf(jfld_ai)%fnow(:,1,:), &
& dta_bdy(jbdy)%h_i , dta_bdy(jbdy)%h_s , dta_bdy(jbdy)%a_i )
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/BDY/bdyice.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/BDY/bdyice.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/BDY/bdyice.F90 (revision 9977)
@@ -50,21 +50,21 @@
!! *** SUBROUTINE bdy_ice ***
!!
- !! ** Purpose : - Apply open boundary conditions for ice (SI3)
+ !! ** Purpose : Apply open boundary conditions for sea ice
!!
!!----------------------------------------------------------------------
INTEGER, INTENT(in) :: kt ! Main time step counter
!
- INTEGER :: ib_bdy ! Loop index
+ INTEGER :: jbdy ! BDY set index
!!----------------------------------------------------------------------
!
- IF( ln_timing ) CALL timing_start('bdy_ice')
+ IF( ln_timing ) CALL timing_start('bdy_ice_thd')
!
CALL ice_var_glo2eqv
!
- DO ib_bdy = 1, nb_bdy
- !
- SELECT CASE( cn_ice(ib_bdy) )
+ DO jbdy = 1, nb_bdy
+ !
+ SELECT CASE( cn_ice(jbdy) )
CASE('none') ; CYCLE
- CASE('frs' ) ; CALL bdy_ice_frs( idx_bdy(ib_bdy), dta_bdy(ib_bdy), kt, ib_bdy )
+ CASE('frs' ) ; CALL bdy_ice_frs( idx_bdy(jbdy), dta_bdy(jbdy), kt, jbdy )
CASE DEFAULT
CALL ctl_stop( 'bdy_ice : unrecognised option for open boundaries for ice fields' )
@@ -79,15 +79,14 @@
!
IF( ln_icectl ) CALL ice_prt( kt, iiceprt, jiceprt, 1, ' - ice thermo bdy - ' )
- IF( ln_timing ) CALL timing_stop('bdy_ice')
+ IF( ln_timing ) CALL timing_stop('bdy_ice_thd')
!
END SUBROUTINE bdy_ice
- SUBROUTINE bdy_ice_frs( idx, dta, kt, ib_bdy )
+ SUBROUTINE bdy_ice_frs( idx, dta, kt, jbdy )
!!------------------------------------------------------------------------------
!! *** SUBROUTINE bdy_ice_frs ***
!!
- !! ** Purpose : Apply the Flow Relaxation Scheme for sea-ice fields in the case
- !! of unstructured open boundaries.
+ !! ** Purpose : Apply the Flow Relaxation Scheme for sea-ice fields
!!
!! Reference : Engedahl H., 1995: Use of the flow relaxation scheme in a three-
@@ -97,10 +96,10 @@
TYPE(OBC_DATA), INTENT(in) :: dta ! OBC external data
INTEGER, INTENT(in) :: kt ! main time-step counter
- INTEGER, INTENT(in) :: ib_bdy ! BDY set index
+ INTEGER, INTENT(in) :: jbdy ! BDY set index
!
INTEGER :: jpbound ! 0 = incoming ice
! ! 1 = outgoing ice
- INTEGER :: jb, jk, jgrd, jl ! dummy loop indices
- INTEGER :: ji, jj, ii, ij ! local scalar
+ INTEGER :: i_bdy, jgrd ! dummy loop indices
+ INTEGER :: ji, jj, jk, jl, ib, jb
REAL(wp) :: zwgt, zwgt1 ! local scalar
REAL(wp) :: ztmelts, zdh
@@ -110,12 +109,12 @@
!
DO jl = 1, jpl
- DO jb = 1, idx%nblenrim(jgrd)
- ji = idx%nbi(jb,jgrd)
- jj = idx%nbj(jb,jgrd)
- zwgt = idx%nbw(jb,jgrd)
- zwgt1 = 1.e0 - idx%nbw(jb,jgrd)
- a_i(ji,jj,jl) = ( a_i(ji,jj,jl) * zwgt1 + dta%a_i(jb,jl) * zwgt ) * tmask(ji,jj,1) ! Leads fraction
- h_i(ji,jj,jl) = ( h_i(ji,jj,jl) * zwgt1 + dta%h_i(jb,jl) * zwgt ) * tmask(ji,jj,1) ! Ice depth
- h_s(ji,jj,jl) = ( h_s(ji,jj,jl) * zwgt1 + dta%h_s(jb,jl) * zwgt ) * tmask(ji,jj,1) ! Snow depth
+ DO i_bdy = 1, idx%nblenrim(jgrd)
+ ji = idx%nbi(i_bdy,jgrd)
+ jj = idx%nbj(i_bdy,jgrd)
+ zwgt = idx%nbw(i_bdy,jgrd)
+ zwgt1 = 1.e0 - idx%nbw(i_bdy,jgrd)
+ a_i(ji,jj,jl) = ( a_i(ji,jj,jl) * zwgt1 + dta%a_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Leads fraction
+ h_i(ji,jj,jl) = ( h_i(ji,jj,jl) * zwgt1 + dta%h_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Ice depth
+ h_s(ji,jj,jl) = ( h_s(ji,jj,jl) * zwgt1 + dta%h_s(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Snow depth
! -----------------
@@ -135,31 +134,31 @@
ENDDO
- CALL lbc_bdy_lnk( a_i(:,:,jl), 'T', 1., ib_bdy )
- CALL lbc_bdy_lnk( h_i(:,:,jl), 'T', 1., ib_bdy )
- CALL lbc_bdy_lnk( h_s(:,:,jl), 'T', 1., ib_bdy )
ENDDO
+ CALL lbc_bdy_lnk( a_i(:,:,:), 'T', 1., jbdy )
+ CALL lbc_bdy_lnk( h_i(:,:,:), 'T', 1., jbdy )
+ CALL lbc_bdy_lnk( h_s(:,:,:), 'T', 1., jbdy )
DO jl = 1, jpl
- DO jb = 1, idx%nblenrim(jgrd)
- ji = idx%nbi(jb,jgrd)
- jj = idx%nbj(jb,jgrd)
+ DO i_bdy = 1, idx%nblenrim(jgrd)
+ ji = idx%nbi(i_bdy,jgrd)
+ jj = idx%nbj(i_bdy,jgrd)
! condition on ice thickness depends on the ice velocity
! if velocity is outward (strictly), then ice thickness, volume... must be equal to adjacent values
- jpbound = 0 ; ii = ji ; ij = jj
- !
- IF( u_ice(ji+1,jj ) < 0. .AND. umask(ji-1,jj ,1) == 0. ) jpbound = 1; ii = ji+1; ij = jj
- IF( u_ice(ji-1,jj ) > 0. .AND. umask(ji+1,jj ,1) == 0. ) jpbound = 1; ii = ji-1; ij = jj
- IF( v_ice(ji ,jj+1) < 0. .AND. vmask(ji ,jj-1,1) == 0. ) jpbound = 1; ii = ji ; ij = jj+1
- IF( v_ice(ji ,jj-1) > 0. .AND. vmask(ji ,jj+1,1) == 0. ) jpbound = 1; ii = ji ; ij = jj-1
- !
- IF( nn_ice_dta(ib_bdy) == 0 ) jpbound = 0; ii = ji; ij = jj ! case ice boundaries = initial conditions
- ! ! do not make state variables dependent on velocity
- !
- IF( a_i(ii,ij,jl) > 0._wp ) THEN ! there is ice at the boundary
- !
- a_i(ji,jj,jl) = a_i(ii,ij,jl) ! concentration
- h_i(ji,jj,jl) = h_i(ii,ij,jl) ! thickness ice
- h_s(ji,jj,jl) = h_s(ii,ij,jl) ! thickness snw
+ jpbound = 0 ; ib = ji ; jb = jj
+ !
+ IF( u_ice(ji+1,jj ) < 0. .AND. umask(ji-1,jj ,1) == 0. ) jpbound = 1 ; ib = ji+1 ; jb = jj
+ IF( u_ice(ji-1,jj ) > 0. .AND. umask(ji+1,jj ,1) == 0. ) jpbound = 1 ; ib = ji-1 ; jb = jj
+ IF( v_ice(ji ,jj+1) < 0. .AND. vmask(ji ,jj-1,1) == 0. ) jpbound = 1 ; ib = ji ; jb = jj+1
+ IF( v_ice(ji ,jj-1) > 0. .AND. vmask(ji ,jj+1,1) == 0. ) jpbound = 1 ; ib = ji ; jb = jj-1
+ !
+ IF( nn_ice_dta(jbdy) == 0 ) jpbound = 0 ; ib = ji ; jb = jj ! case ice boundaries = initial conditions
+ ! ! do not make state variables dependent on velocity
+ !
+ IF( a_i(ib,jb,jl) > 0._wp ) THEN ! there is ice at the boundary
+ !
+ a_i(ji,jj,jl) = a_i(ib,jb,jl) ! concentration
+ h_i(ji,jj,jl) = h_i(ib,jb,jl) ! thickness ice
+ h_s(ji,jj,jl) = h_s(ib,jb,jl) ! thickness snw
!
SELECT CASE( jpbound )
@@ -167,23 +166,23 @@
CASE( 0 ) ! velocity is inward
!
- oa_i(ji,jj, jl) = rn_ice_age(ib_bdy) * a_i(ji,jj,jl) ! age
- a_ip(ji,jj, jl) = 0._wp ! pond concentration
- v_ip(ji,jj, jl) = 0._wp ! pond volume
- t_su(ji,jj, jl) = rn_ice_tem(ib_bdy) ! temperature surface
- t_s (ji,jj,:,jl) = rn_ice_tem(ib_bdy) ! temperature snw
- t_i (ji,jj,:,jl) = rn_ice_tem(ib_bdy) ! temperature ice
- s_i (ji,jj, jl) = rn_ice_sal(ib_bdy) ! salinity
- sz_i(ji,jj,:,jl) = rn_ice_sal(ib_bdy) ! salinity profile
+ oa_i(ji,jj, jl) = rn_ice_age(jbdy) * a_i(ji,jj,jl) ! age
+ a_ip(ji,jj, jl) = 0._wp ! pond concentration
+ v_ip(ji,jj, jl) = 0._wp ! pond volume
+ t_su(ji,jj, jl) = rn_ice_tem(jbdy) ! temperature surface
+ t_s (ji,jj,:,jl) = rn_ice_tem(jbdy) ! temperature snw
+ t_i (ji,jj,:,jl) = rn_ice_tem(jbdy) ! temperature ice
+ s_i (ji,jj, jl) = rn_ice_sal(jbdy) ! salinity
+ sz_i(ji,jj,:,jl) = rn_ice_sal(jbdy) ! salinity profile
!
CASE( 1 ) ! velocity is outward
!
- oa_i(ji,jj, jl) = oa_i(ii,ij, jl) ! age
- a_ip(ji,jj, jl) = a_ip(ii,ij, jl) ! pond concentration
- v_ip(ji,jj, jl) = v_ip(ii,ij, jl) ! pond volume
- t_su(ji,jj, jl) = t_su(ii,ij, jl) ! temperature surface
- t_s (ji,jj,:,jl) = t_s (ii,ij,:,jl) ! temperature snw
- t_i (ji,jj,:,jl) = t_i (ii,ij,:,jl) ! temperature ice
- s_i (ji,jj, jl) = s_i (ii,ij, jl) ! salinity
- sz_i(ji,jj,:,jl) = sz_i(ii,ij,:,jl) ! salinity profile
+ oa_i(ji,jj, jl) = oa_i(ib,jb, jl) ! age
+ a_ip(ji,jj, jl) = a_ip(ib,jb, jl) ! pond concentration
+ v_ip(ji,jj, jl) = v_ip(ib,jb, jl) ! pond volume
+ t_su(ji,jj, jl) = t_su(ib,jb, jl) ! temperature surface
+ t_s (ji,jj,:,jl) = t_s (ib,jb,:,jl) ! temperature snw
+ t_i (ji,jj,:,jl) = t_i (ib,jb,:,jl) ! temperature ice
+ s_i (ji,jj, jl) = s_i (ib,jb, jl) ! salinity
+ sz_i(ji,jj,:,jl) = sz_i(ib,jb,:,jl) ! salinity profile
!
END SELECT
@@ -243,25 +242,21 @@
END DO
!
- CALL lbc_bdy_lnk( a_i (:,:,jl), 'T', 1., ib_bdy )
- CALL lbc_bdy_lnk( h_i (:,:,jl), 'T', 1., ib_bdy )
- CALL lbc_bdy_lnk( h_s (:,:,jl), 'T', 1., ib_bdy )
- CALL lbc_bdy_lnk( oa_i(:,:,jl), 'T', 1., ib_bdy )
- CALL lbc_bdy_lnk( a_ip(:,:,jl), 'T', 1., ib_bdy )
- CALL lbc_bdy_lnk( v_ip(:,:,jl), 'T', 1., ib_bdy )
- CALL lbc_bdy_lnk( s_i (:,:,jl), 'T', 1., ib_bdy )
- CALL lbc_bdy_lnk( t_su(:,:,jl), 'T', 1., ib_bdy )
- CALL lbc_bdy_lnk( v_i (:,:,jl), 'T', 1., ib_bdy )
- CALL lbc_bdy_lnk( v_s (:,:,jl), 'T', 1., ib_bdy )
- CALL lbc_bdy_lnk( sv_i(:,:,jl), 'T', 1., ib_bdy )
- DO jk = 1, nlay_s
- CALL lbc_bdy_lnk(t_s(:,:,jk,jl), 'T', 1., ib_bdy )
- CALL lbc_bdy_lnk(e_s(:,:,jk,jl), 'T', 1., ib_bdy )
- END DO
- DO jk = 1, nlay_i
- CALL lbc_bdy_lnk(t_i(:,:,jk,jl), 'T', 1., ib_bdy )
- CALL lbc_bdy_lnk(e_i(:,:,jk,jl), 'T', 1., ib_bdy )
- END DO
- !
END DO ! jl
+
+ CALL lbc_bdy_lnk( a_i (:,:,:) , 'T', 1., jbdy )
+ CALL lbc_bdy_lnk( h_i (:,:,:) , 'T', 1., jbdy )
+ CALL lbc_bdy_lnk( h_s (:,:,:) , 'T', 1., jbdy )
+ CALL lbc_bdy_lnk( oa_i(:,:,:) , 'T', 1., jbdy )
+ CALL lbc_bdy_lnk( a_ip(:,:,:) , 'T', 1., jbdy )
+ CALL lbc_bdy_lnk( v_ip(:,:,:) , 'T', 1., jbdy )
+ CALL lbc_bdy_lnk( s_i (:,:,:) , 'T', 1., jbdy )
+ CALL lbc_bdy_lnk( t_su(:,:,:) , 'T', 1., jbdy )
+ CALL lbc_bdy_lnk( v_i (:,:,:) , 'T', 1., jbdy )
+ CALL lbc_bdy_lnk( v_s (:,:,:) , 'T', 1., jbdy )
+ CALL lbc_bdy_lnk( sv_i(:,:,:) , 'T', 1., jbdy )
+ CALL lbc_bdy_lnk( t_s (:,:,:,:), 'T', 1., jbdy )
+ CALL lbc_bdy_lnk( e_s (:,:,:,:), 'T', 1., jbdy )
+ CALL lbc_bdy_lnk( t_i (:,:,:,:), 'T', 1., jbdy )
+ CALL lbc_bdy_lnk( e_i (:,:,:,:), 'T', 1., jbdy )
!
END SUBROUTINE bdy_ice_frs
@@ -272,21 +267,23 @@
!! *** SUBROUTINE bdy_ice_dyn ***
!!
- !! ** Purpose : Apply dynamics boundary conditions for sea-ice in the cas of unstructured open boundaries.
- !! u_ice and v_ice are equal to the value of the adjacent grid point if this latter is not ice free
- !! if adjacent grid point is ice free, then u_ice and v_ice are equal to ocean velocities
+ !! ** Purpose : Apply dynamics boundary conditions for sea-ice.
!!
- !! 2013-06 : C. Rousset
+ !! ** Method : if this adjacent grid point is not ice free, then u_ice and v_ice take its value
+ !! if is ice free, then u_ice and v_ice are unchanged by BDY
+ !! they keep values calculated in rheology
+ !!
!!------------------------------------------------------------------------------
CHARACTER(len=1), INTENT(in) :: cd_type ! nature of velocity grid-points
!
- INTEGER :: jb, jgrd ! dummy loop indices
- INTEGER :: ji, jj ! local scalar
- INTEGER :: ib_bdy ! Loop index
+ INTEGER :: i_bdy, jgrd ! dummy loop indices
+ INTEGER :: ji, jj ! local scalar
+ INTEGER :: jbdy ! BDY set index
REAL(wp) :: zmsk1, zmsk2, zflag
!!------------------------------------------------------------------------------
- !
- DO ib_bdy=1, nb_bdy
- !
- SELECT CASE( cn_ice(ib_bdy) )
+ IF( ln_timing ) CALL timing_start('bdy_ice_dyn')
+ !
+ DO jbdy=1, nb_bdy
+ !
+ SELECT CASE( cn_ice(jbdy) )
!
CASE('none')
@@ -295,14 +292,14 @@
CASE('frs')
!
- IF( nn_ice_dta(ib_bdy) == 0 ) CYCLE ! case ice boundaries = initial conditions
- ! ! do not change ice velocity (it is only computed by rheology)
+ IF( nn_ice_dta(jbdy) == 0 ) CYCLE ! case ice boundaries = initial conditions
+ ! ! do not change ice velocity (it is only computed by rheology)
SELECT CASE ( cd_type )
!
CASE ( 'U' )
jgrd = 2 ! u velocity
- DO jb = 1, idx_bdy(ib_bdy)%nblenrim(jgrd)
- ji = idx_bdy(ib_bdy)%nbi(jb,jgrd)
- jj = idx_bdy(ib_bdy)%nbj(jb,jgrd)
- zflag = idx_bdy(ib_bdy)%flagu(jb,jgrd)
+ DO i_bdy = 1, idx_bdy(jbdy)%nblenrim(jgrd)
+ ji = idx_bdy(jbdy)%nbi(i_bdy,jgrd)
+ jj = idx_bdy(jbdy)%nbj(i_bdy,jgrd)
+ zflag = idx_bdy(jbdy)%flagu(i_bdy,jgrd)
!
IF ( ABS( zflag ) == 1. ) THEN ! eastern and western boundaries
@@ -320,12 +317,12 @@
!
END DO
- CALL lbc_bdy_lnk( u_ice(:,:), 'U', -1., ib_bdy )
+ CALL lbc_bdy_lnk( u_ice(:,:), 'U', -1., jbdy )
!
CASE ( 'V' )
jgrd = 3 ! v velocity
- DO jb = 1, idx_bdy(ib_bdy)%nblenrim(jgrd)
- ji = idx_bdy(ib_bdy)%nbi(jb,jgrd)
- jj = idx_bdy(ib_bdy)%nbj(jb,jgrd)
- zflag = idx_bdy(ib_bdy)%flagv(jb,jgrd)
+ DO i_bdy = 1, idx_bdy(jbdy)%nblenrim(jgrd)
+ ji = idx_bdy(jbdy)%nbi(i_bdy,jgrd)
+ jj = idx_bdy(jbdy)%nbj(i_bdy,jgrd)
+ zflag = idx_bdy(jbdy)%flagv(i_bdy,jgrd)
!
IF ( ABS( zflag ) == 1. ) THEN ! northern and southern boundaries
@@ -343,5 +340,5 @@
!
END DO
- CALL lbc_bdy_lnk( v_ice(:,:), 'V', -1., ib_bdy )
+ CALL lbc_bdy_lnk( v_ice(:,:), 'V', -1., jbdy )
!
END SELECT
@@ -352,4 +349,6 @@
!
END DO
+ !
+ IF( ln_timing ) CALL timing_stop('bdy_ice_dyn')
!
END SUBROUTINE bdy_ice_dyn
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/CRS/crsdom.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/CRS/crsdom.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/CRS/crsdom.F90 (revision 9977)
@@ -2246,5 +2246,5 @@
zmbk(:,:) = 0.0
- zmbk(:,:) = REAL( mbathy_crs(:,:), wp ) ; CALL crs_lbc_lnk(zmbk,'T',1.0) ; mbathy_crs(:,:) = INT( zmbk(:,:) )
+ zmbk(:,:) = REAL( mbathy_crs(:,:), wp ) ; CALL crs_lbc_lnk(zmbk,'T',1.0) ; mbathy_crs(:,:) = NINT( zmbk(:,:) )
@@ -2266,6 +2266,6 @@
! convert into REAL to use lbc_lnk ; impose a min value of 1 as a zero can be set in lbclnk
zmbk(:,:) = 1.e0;
- zmbk(:,:) = REAL( mbku_crs(:,:), wp ) ; CALL crs_lbc_lnk(zmbk,'U',1.0) ; mbku_crs (:,:) = MAX( INT( zmbk(:,:) ), 1 )
- zmbk(:,:) = REAL( mbkv_crs(:,:), wp ) ; CALL crs_lbc_lnk(zmbk,'V',1.0) ; mbkv_crs (:,:) = MAX( INT( zmbk(:,:) ), 1 )
+ zmbk(:,:) = REAL( mbku_crs(:,:), wp ) ; CALL crs_lbc_lnk(zmbk,'U',1.0) ; mbku_crs (:,:) = MAX( NINT( zmbk(:,:) ), 1 )
+ zmbk(:,:) = REAL( mbkv_crs(:,:), wp ) ; CALL crs_lbc_lnk(zmbk,'V',1.0) ; mbkv_crs (:,:) = MAX( NINT( zmbk(:,:) ), 1 )
!
END SUBROUTINE crs_dom_bat
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/DIA/dia25h.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/DIA/dia25h.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/DIA/dia25h.F90 (revision 9977)
@@ -139,6 +139,6 @@
! -----------------
! Define frequency of summing to create 25 h mean
- IF( MOD( 3600,INT(rdt) ) == 0 ) THEN
- i_steps = 3600/INT(rdt)
+ IF( MOD( 3600,NINT(rdt) ) == 0 ) THEN
+ i_steps = 3600/NINT(rdt)
ELSE
CALL ctl_stop('STOP', 'dia_wri_tide: timestep must give MOD(3600,rdt) = 0 otherwise no hourly values are possible')
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/DOM/domain.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/DOM/domain.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/DOM/domain.F90 (revision 9977)
@@ -543,5 +543,5 @@
!
cd_cfg = 'ORCA'
- CALL iom_get( inum, 'ORCA_index', zorca_res ) ; kk_cfg = INT( zorca_res )
+ CALL iom_get( inum, 'ORCA_index', zorca_res ) ; kk_cfg = NINT( zorca_res )
!
WRITE(ldtxt(ii),*) ' .' ; ii = ii+1
@@ -563,8 +563,8 @@
ENDIF
!
- CALL iom_get( inum, 'jpiglo', ziglo ) ; kpi = INT( ziglo )
- CALL iom_get( inum, 'jpjglo', zjglo ) ; kpj = INT( zjglo )
- CALL iom_get( inum, 'jpkglo', zkglo ) ; kpk = INT( zkglo )
- CALL iom_get( inum, 'jperio', zperio ) ; kperio = INT( zperio )
+ CALL iom_get( inum, 'jpiglo', ziglo ) ; kpi = NINT( ziglo )
+ CALL iom_get( inum, 'jpjglo', zjglo ) ; kpj = NINT( zjglo )
+ CALL iom_get( inum, 'jpkglo', zkglo ) ; kpk = NINT( zkglo )
+ CALL iom_get( inum, 'jperio', zperio ) ; kperio = NINT( zperio )
CALL iom_close( inum )
!
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/DOM/domzgr.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/DOM/domzgr.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/DOM/domzgr.F90 (revision 9977)
@@ -253,7 +253,7 @@
! !* ocean top and bottom level
CALL iom_get( inum, jpdom_data, 'top_level' , z2d , lrowattr=ln_use_jattr ) ! 1st wet T-points (ISF)
- k_top(:,:) = INT( z2d(:,:) )
+ k_top(:,:) = NINT( z2d(:,:) )
CALL iom_get( inum, jpdom_data, 'bottom_level' , z2d , lrowattr=ln_use_jattr ) ! last wet T-points
- k_bot(:,:) = INT( z2d(:,:) )
+ k_bot(:,:) = NINT( z2d(:,:) )
!
! reference depth for negative bathy (wetting and drying only)
@@ -307,10 +307,10 @@
END DO
! converte into REAL to use lbc_lnk ; impose a min value of 1 as a zero can be set in lbclnk
- zk(:,:) = REAL( miku(:,:), wp ) ; CALL lbc_lnk( zk, 'U', 1. ) ; miku(:,:) = MAX( INT( zk(:,:) ), 1 )
- zk(:,:) = REAL( mikv(:,:), wp ) ; CALL lbc_lnk( zk, 'V', 1. ) ; mikv(:,:) = MAX( INT( zk(:,:) ), 1 )
- zk(:,:) = REAL( mikf(:,:), wp ) ; CALL lbc_lnk( zk, 'F', 1. ) ; mikf(:,:) = MAX( INT( zk(:,:) ), 1 )
- !
- zk(:,:) = REAL( mbku(:,:), wp ) ; CALL lbc_lnk( zk, 'U', 1. ) ; mbku(:,:) = MAX( INT( zk(:,:) ), 1 )
- zk(:,:) = REAL( mbkv(:,:), wp ) ; CALL lbc_lnk( zk, 'V', 1. ) ; mbkv(:,:) = MAX( INT( zk(:,:) ), 1 )
+ zk(:,:) = REAL( miku(:,:), wp ) ; CALL lbc_lnk( zk, 'U', 1. ) ; miku(:,:) = MAX( NINT( zk(:,:) ), 1 )
+ zk(:,:) = REAL( mikv(:,:), wp ) ; CALL lbc_lnk( zk, 'V', 1. ) ; mikv(:,:) = MAX( NINT( zk(:,:) ), 1 )
+ zk(:,:) = REAL( mikf(:,:), wp ) ; CALL lbc_lnk( zk, 'F', 1. ) ; mikf(:,:) = MAX( NINT( zk(:,:) ), 1 )
+ !
+ zk(:,:) = REAL( mbku(:,:), wp ) ; CALL lbc_lnk( zk, 'U', 1. ) ; mbku(:,:) = MAX( NINT( zk(:,:) ), 1 )
+ zk(:,:) = REAL( mbkv(:,:), wp ) ; CALL lbc_lnk( zk, 'V', 1. ) ; mbkv(:,:) = MAX( NINT( zk(:,:) ), 1 )
!
END SUBROUTINE zgr_top_bot
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/IOM/iom.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/IOM/iom.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/IOM/iom.F90 (revision 9977)
@@ -83,8 +83,4 @@
MODULE PROCEDURE iom_p0d, iom_p1d, iom_p2d, iom_p3d
END INTERFACE iom_put
-
- LOGICAL, PARAMETER :: ltmppatch = .TRUE. !: seb: patch before we remove periodicity
- INTEGER :: nldi_save, nlei_save !: and close boundaries in output files
- INTEGER :: nldj_save, nlej_save !:
!!----------------------------------------------------------------------
@@ -95,5 +91,5 @@
CONTAINS
- SUBROUTINE iom_init( cdname, fname )
+ SUBROUTINE iom_init( cdname, fname, ld_tmppatch )
!!----------------------------------------------------------------------
!! *** ROUTINE ***
@@ -102,6 +98,7 @@
!!
!!----------------------------------------------------------------------
- CHARACTER(len=*), INTENT(in) :: cdname
+ CHARACTER(len=*), INTENT(in) :: cdname
CHARACTER(len=*), OPTIONAL, INTENT(in) :: fname
+ LOGICAL , OPTIONAL, INTENT(in) :: ld_tmppatch
#if defined key_iomput
!
@@ -113,8 +110,14 @@
!
REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zt_bnds, zw_bnds
+ LOGICAL :: ll_tmppatch = .TRUE. !: seb: patch before we remove periodicity
+ INTEGER :: nldi_save, nlei_save !: and close boundaries in output files
+ INTEGER :: nldj_save, nlej_save !:
!!----------------------------------------------------------------------
!
! seb: patch before we remove periodicity and close boundaries in output files
- IF ( ltmppatch ) THEN
+ IF( PRESENT(ld_tmppatch) ) THEN ; ll_tmppatch = ld_tmppatch
+ ELSE ; ll_tmppatch = .TRUE.
+ ENDIF
+ IF ( ll_tmppatch ) THEN
nldi_save = nldi ; nlei_save = nlei
nldj_save = nldj ; nlej_save = nlej
@@ -246,5 +249,5 @@
DEALLOCATE( zt_bnds, zw_bnds )
!
- IF ( ltmppatch ) THEN
+ IF ( ll_tmppatch ) THEN
nldi = nldi_save ; nlei = nlei_save
nldj = nldj_save ; nlej = nlej_save
@@ -1924,14 +1927,4 @@
!!----------------------------------------------------------------------
!
- ! seb: patch before we remove periodicity and close boundaries in output files
- IF ( ltmppatch ) THEN
- nldi_save = nldi ; nlei_save = nlei
- nldj_save = nldj ; nlej_save = nlej
- IF( nimpp == 1 ) nldi = 1
- IF( nimpp + jpi - 1 == jpiglo ) nlei = jpi
- IF( njmpp == 1 ) nldj = 1
- IF( njmpp + jpj - 1 == jpjglo ) nlej = jpj
- ENDIF
- !
ni = nlei-nldi+1
nj = nlej-nldj+1
@@ -1955,9 +1948,4 @@
ENDIF
!
- IF ( ltmppatch ) THEN
- nldi = nldi_save ; nlei = nlei_save
- nldj = nldj_save ; nlej = nlej_save
- ENDIF
- !
END SUBROUTINE set_grid
@@ -1981,14 +1969,4 @@
REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: z_rot ! Lat/lon working array for rotation of cells
!!----------------------------------------------------------------------
- !
- ! seb: patch before we remove periodicity and close boundaries in output files
- IF ( ltmppatch ) THEN
- nldi_save = nldi ; nlei_save = nlei
- nldj_save = nldj ; nlej_save = nlej
- IF( nimpp == 1 ) nldi = 1
- IF( nimpp + jpi - 1 == jpiglo ) nlei = jpi
- IF( njmpp == 1 ) nldj = 1
- IF( njmpp + jpj - 1 == jpjglo ) nlej = jpj
- ENDIF
!
ALLOCATE( z_bnds(4,jpi,jpj,2), z_fld(jpi,jpj), z_rot(4,2) )
@@ -2075,9 +2053,4 @@
DEALLOCATE( z_bnds, z_fld, z_rot )
!
- IF ( ltmppatch ) THEN
- nldi = nldi_save ; nlei = nlei_save
- nldj = nldj_save ; nlej = nlej_save
- ENDIF
- !
END SUBROUTINE set_grid_bounds
@@ -2095,14 +2068,4 @@
REAL(wp), DIMENSION(:), ALLOCATABLE :: zlon
!!----------------------------------------------------------------------
- !
- ! seb: patch before we remove periodicity and close boundaries in output files
- IF ( ltmppatch ) THEN
- nldi_save = nldi ; nlei_save = nlei
- nldj_save = nldj ; nlej_save = nlej
- IF( nimpp == 1 ) nldi = 1
- IF( nimpp + jpi - 1 == jpiglo ) nlei = jpi
- IF( njmpp == 1 ) nldj = 1
- IF( njmpp + jpj - 1 == jpjglo ) nlej = jpj
- ENDIF
!
ni=nlei-nldi+1 ! define zonal mean domain (jpj*jpk)
@@ -2119,9 +2082,4 @@
!
CALL iom_update_file_name('ptr')
- !
- IF ( ltmppatch ) THEN
- nldi = nldi_save ; nlei = nlei_save
- nldj = nldj_save ; nlej = nlej_save
- ENDIF
!
END SUBROUTINE set_grid_znl
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/IOM/restart.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/IOM/restart.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/IOM/restart.F90 (revision 9977)
@@ -129,5 +129,5 @@
clpname = TRIM(Agrif_CFixed())//"_"//clname
ENDIF
- CALL iom_init( cwxios_context, TRIM(clpath)//TRIM(clpname))
+ CALL iom_init( cwxios_context, TRIM(clpath)//TRIM(clpname), .false. )
CALL xios_update_calendar(nitrst)
CALL iom_swap( cxios_context )
@@ -239,10 +239,10 @@
IF( .NOT.lxios_set ) THEN
IF(lwp) WRITE(numout,*) 'Enable restart reading by XIOS'
- CALL iom_init( crxios_context )
+ CALL iom_init( crxios_context, ld_tmppatch = .false. )
lxios_set = .TRUE.
ENDIF
ENDIF
IF( TRIM(Agrif_CFixed()) /= '0' .AND. lrxios) THEN
- CALL iom_init( crxios_context )
+ CALL iom_init( crxios_context, ld_tmppatch = .false. )
IF(lwp) WRITE(numout,*) 'Enable restart reading by XIOS for AGRIF'
lxios_set = .TRUE.
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/LBC/lbclnk.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/LBC/lbclnk.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/LBC/lbclnk.F90 (revision 9977)
@@ -38,5 +38,5 @@
!
INTERFACE lbc_bdy_lnk
- MODULE PROCEDURE mpp_lnk_bdy_2d, mpp_lnk_bdy_3d
+ MODULE PROCEDURE mpp_lnk_bdy_2d, mpp_lnk_bdy_3d, mpp_lnk_bdy_4d
END INTERFACE
!
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/LBC/lib_mpp.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/LBC/lib_mpp.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/LBC/lib_mpp.F90 (revision 9977)
@@ -88,5 +88,5 @@
PUBLIC mppsize
PUBLIC mppsend, mpprecv ! needed by TAM and ICB routines
- PUBLIC mpp_lnk_bdy_2d, mpp_lnk_bdy_3d
+ PUBLIC mpp_lnk_bdy_2d, mpp_lnk_bdy_3d, mpp_lnk_bdy_4d
PUBLIC mpprank
@@ -456,9 +456,9 @@
! !== 4D array and array of 4D pointer ==!
!
-!!# define DIM_4d
-!!# define ROUTINE_BDY mpp_lnk_bdy_4d
-!!# include "mpp_bdy_generic.h90"
-!!# undef ROUTINE_BDY
-!!# undef DIM_4d
+# define DIM_4d
+# define ROUTINE_BDY mpp_lnk_bdy_4d
+# include "mpp_bdy_generic.h90"
+# undef ROUTINE_BDY
+# undef DIM_4d
!!----------------------------------------------------------------------
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/LBC/mpp_nfd_generic.h90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/LBC/mpp_nfd_generic.h90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/LBC/mpp_nfd_generic.h90 (revision 9977)
@@ -56,5 +56,5 @@
INTEGER :: ipi, ipj, ipk, ipl, ipf ! dimension of the input array
INTEGER :: imigr, iihom, ijhom ! local integers
- INTEGER :: ierr, itaille, ildi, ilei, iilb
+ INTEGER :: ierr, itaille, ilci, ildi, ilei, iilb
INTEGER :: ij, iproc
INTEGER, DIMENSION (jpmaxngh) :: ml_req_nf ! for mpi_isend when avoiding mpi_allgather
@@ -117,8 +117,9 @@
IF(iproc /= -1) THEN
iilb = nimppt(iproc+1)
+ ilci = nlcit (iproc+1)
ildi = nldit (iproc+1)
ilei = nleit (iproc+1)
- IF( iilb == 1 ) ildi = 1 ! e-w boundary already done -> force to take 1st column
- IF( iilb + jpi - 1 == jpiglo ) ilei = jpi ! e-w boundary already done -> force to take last column
+ IF( iilb == 1 ) ildi = 1 ! e-w boundary already done -> force to take 1st column
+ IF( iilb + ilci - 1 == jpiglo ) ilei = ilci ! e-w boundary already done -> force to take last column
iilb = nfiimpp(isendto(jr),jpnj) - nfiimpp(isendto(1),jpnj)
ENDIF
@@ -185,8 +186,9 @@
iproc = nrank_north(jr) + 1
iilb = nimppt(iproc)
+ ilci = nlcit (iproc)
ildi = nldit (iproc)
ilei = nleit (iproc)
- IF( iilb == 1 ) ildi = 1 ! e-w boundary already done -> force to take 1st column
- IF( iilb + jpi - 1 == jpiglo ) ilei = jpi ! e-w boundary already done -> force to take last column
+ IF( iilb == 1 ) ildi = 1 ! e-w boundary already done -> force to take 1st column
+ IF( iilb + ilci - 1 == jpiglo ) ilei = ilci ! e-w boundary already done -> force to take last column
DO jf = 1, ipf
DO jl = 1, ipl
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/LBC/mppini.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/LBC/mppini.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/LBC/mppini.F90 (revision 9977)
@@ -536,5 +536,4 @@
& ibonit (jproc), ibonjt (jproc)
END DO
- CLOSE(inum)
END IF
@@ -577,11 +576,34 @@
IF( jperio >= 3 .AND. jperio <= 6 .AND. jpni > 1 ) THEN
CALL mpp_ini_north
- IF(lwp) WRITE(numout,*)
- IF(lwp) WRITE(numout,*) ' ==>>> North fold boundary prepared for jpni >1'
+ IF (lwp) THEN
+ WRITE(numout,*)
+ WRITE(numout,*) ' ==>>> North fold boundary prepared for jpni >1'
+ ! additional prints in layout.dat
+ WRITE(inum,*)
+ WRITE(inum,*)
+ WRITE(inum,*) 'number of subdomains located along the north fold : ', ndim_rank_north
+ WRITE(inum,*) 'Rank of the subdomains located along the north fold : ', ndim_rank_north
+ DO jproc = 1, ndim_rank_north, 5
+ WRITE(inum,*) nrank_north( jproc:MINVAL( (/jproc+4,ndim_rank_north/) ) )
+ END DO
+ ENDIF
ENDIF
!
CALL mpp_init_ioipsl ! Prepare NetCDF output file (if necessary)
!
- IF( ln_nnogather ) CALL mpp_init_nfdcom ! northfold neighbour lists
+ IF( ln_nnogather ) THEN
+ CALL mpp_init_nfdcom ! northfold neighbour lists
+ IF (lwp) THEN
+ WRITE(inum,*)
+ WRITE(inum,*)
+ WRITE(inum,*) 'north fold exchanges with explicit point-to-point messaging :'
+ WRITE(inum,*) 'nfsloop : ', nfsloop
+ WRITE(inum,*) 'nfeloop : ', nfeloop
+ WRITE(inum,*) 'nsndto : ', nsndto
+ WRITE(inum,*) 'isendto : ', isendto
+ ENDIF
+ ENDIF
+ !
+ IF (lwp) CLOSE(inum)
!
DEALLOCATE(iin, ijn, ii_nono, ii_noea, ii_noso, ii_nowe, &
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/SBC/sbc_ice.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/SBC/sbc_ice.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/SBC/sbc_ice.F90 (revision 9977)
@@ -49,5 +49,5 @@
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qml_ice !: heat available for snow / ice surface melting [W/m2]
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qcn_ice !: heat conduction flux in the layer below surface [W/m2]
- REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qsr_ice_tr !: solar flux transmitted below the ice surface [W/m2]
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qtr_ice_top !: solar flux transmitted below the ice surface [W/m2]
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: utau_ice !: atmos-ice u-stress. VP: I-pt ; EVP: U,V-pts [N/m2]
@@ -126,11 +126,11 @@
ALLOCATE( qns_ice (jpi,jpj,jpl) , qsr_ice (jpi,jpj,jpl) , &
& qla_ice (jpi,jpj,jpl) , dqla_ice (jpi,jpj,jpl) , &
- & dqns_ice(jpi,jpj,jpl) , tn_ice (jpi,jpj,jpl) , alb_ice (jpi,jpj,jpl) , &
- & qml_ice (jpi,jpj,jpl) , qcn_ice (jpi,jpj,jpl) , qsr_ice_tr(jpi,jpj,jpl) , &
- & utau_ice(jpi,jpj) , vtau_ice (jpi,jpj) , wndm_ice (jpi,jpj) , &
- & evap_ice(jpi,jpj,jpl) , devap_ice(jpi,jpj,jpl) , qprec_ice (jpi,jpj) , &
- & qemp_ice(jpi,jpj) , qevap_ice(jpi,jpj,jpl) , qemp_oce (jpi,jpj) , &
- & qns_oce (jpi,jpj) , qsr_oce (jpi,jpj) , emp_oce (jpi,jpj) , &
- & emp_ice (jpi,jpj) , tsfc_ice (jpi,jpj,jpl) , sstfrz (jpi,jpj) , STAT= ierr(2) )
+ & dqns_ice(jpi,jpj,jpl) , tn_ice (jpi,jpj,jpl) , alb_ice (jpi,jpj,jpl) , &
+ & qml_ice (jpi,jpj,jpl) , qcn_ice (jpi,jpj,jpl) , qtr_ice_top(jpi,jpj,jpl) , &
+ & utau_ice(jpi,jpj) , vtau_ice (jpi,jpj) , wndm_ice (jpi,jpj) , &
+ & evap_ice(jpi,jpj,jpl) , devap_ice(jpi,jpj,jpl) , qprec_ice (jpi,jpj) , &
+ & qemp_ice(jpi,jpj) , qevap_ice(jpi,jpj,jpl) , qemp_oce (jpi,jpj) , &
+ & qns_oce (jpi,jpj) , qsr_oce (jpi,jpj) , emp_oce (jpi,jpj) , &
+ & emp_ice (jpi,jpj) , tsfc_ice (jpi,jpj,jpl) , sstfrz (jpi,jpj) , STAT= ierr(2) )
#endif
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/SBC/sbcblk.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/SBC/sbcblk.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/SBC/sbcblk.F90 (revision 9977)
@@ -907,9 +907,9 @@
!
WHERE ( phs(:,:,:) <= 0._wp .AND. phi(:,:,:) < 0.1_wp ) ! linear decrease from hi=0 to 10cm
- qsr_ice_tr(:,:,:) = qsr_ice(:,:,:) * ( zfr1 + zfr2 * ( 1._wp - phi(:,:,:) * 10._wp ) )
+ qtr_ice_top(:,:,:) = qsr_ice(:,:,:) * ( zfr1 + zfr2 * ( 1._wp - phi(:,:,:) * 10._wp ) )
ELSEWHERE( phs(:,:,:) <= 0._wp .AND. phi(:,:,:) >= 0.1_wp ) ! constant (zfr1) when hi>10cm
- qsr_ice_tr(:,:,:) = qsr_ice(:,:,:) * zfr1
+ qtr_ice_top(:,:,:) = qsr_ice(:,:,:) * zfr1
ELSEWHERE ! zero when hs>0
- qsr_ice_tr(:,:,:) = 0._wp
+ qtr_ice_top(:,:,:) = 0._wp
END WHERE
!
@@ -1000,5 +1000,5 @@
ztsu = ptsu(ji,jj,jl) ! Store current iteration temperature
ztsu0 = ptsu(ji,jj,jl) ! Store initial surface temperature
- zqa0 = qsr_ice(ji,jj,jl) - qsr_ice_tr(ji,jj,jl) + qns_ice(ji,jj,jl) ! Net initial atmospheric heat flux
+ zqa0 = qsr_ice(ji,jj,jl) - qtr_ice_top(ji,jj,jl) + qns_ice(ji,jj,jl) ! Net initial atmospheric heat flux
!
DO iter = 1, nit ! --- Iterative loop
@@ -1011,5 +1011,5 @@
qcn_ice(ji,jj,jl) = zkeff_h * ( ptsu(ji,jj,jl) - ptb(ji,jj) )
qns_ice(ji,jj,jl) = qns_ice(ji,jj,jl) + dqns_ice(ji,jj,jl) * ( ptsu(ji,jj,jl) - ztsu0 )
- qml_ice(ji,jj,jl) = ( qsr_ice(ji,jj,jl) - qsr_ice_tr(ji,jj,jl) + qns_ice(ji,jj,jl) - qcn_ice(ji,jj,jl) ) &
+ qml_ice(ji,jj,jl) = ( qsr_ice(ji,jj,jl) - qtr_ice_top(ji,jj,jl) + qns_ice(ji,jj,jl) - qcn_ice(ji,jj,jl) ) &
& * MAX( 0._wp , SIGN( 1._wp, ptsu(ji,jj,jl) - rt0 ) )
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/SBC/sbccpl.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/SBC/sbccpl.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/SBC/sbccpl.F90 (revision 9977)
@@ -1999,6 +1999,6 @@
! ! ========================= !
CASE ('coupled')
- qml_ice(:,:,:) = frcv(jpr_topm)%z3(:,:,:) * a_i(:,:,:)
- qcn_ice(:,:,:) = frcv(jpr_botm)%z3(:,:,:) * a_i(:,:,:)
+ qml_ice(:,:,:) = frcv(jpr_topm)%z3(:,:,:)
+ qcn_ice(:,:,:) = frcv(jpr_botm)%z3(:,:,:)
END SELECT
!
@@ -2012,13 +2012,13 @@
ztri = 0.18 * ( 1.0 - cldf_ice ) + 0.35 * cldf_ice ! surface transmission parameter (Grenfell Maykut 77)
!
- qsr_ice_tr(:,:,:) = ztri * qsr_ice(:,:,:)
- WHERE( phs(:,:,:) >= 0.0_wp ) qsr_ice_tr(:,:,:) = 0._wp ! snow fully opaque
- WHERE( phi(:,:,:) <= 0.1_wp ) qsr_ice_tr(:,:,:) = qsr_ice(:,:,:) ! thin ice transmits all solar radiation
+ qtr_ice_top(:,:,:) = ztri * qsr_ice(:,:,:)
+ WHERE( phs(:,:,:) >= 0.0_wp ) qtr_ice_top(:,:,:) = 0._wp ! snow fully opaque
+ WHERE( phi(:,:,:) <= 0.1_wp ) qtr_ice_top(:,:,:) = qsr_ice(:,:,:) ! thin ice transmits all solar radiation
!
CASE( np_jules_ACTIVE ) !== Jules coupler is active ==!
!
- ! ! ===> here we must receive the qsr_ice_tr array from the coupler
+ ! ! ===> here we must receive the qtr_ice_top array from the coupler
! for now just assume zero (fully opaque ice)
- qsr_ice_tr(:,:,:) = 0._wp
+ qtr_ice_top(:,:,:) = 0._wp
!
END SELECT
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/TRA/traadv_fct.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/TRA/traadv_fct.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/TRA/traadv_fct.F90 (revision 9977)
@@ -548,4 +548,8 @@
!!gm
!
+ IF ( ln_isfcav ) THEN ! set level two values which may not be set in ISF case
+ zwd(:,:,2) = 1._wp ; zwi(:,:,2) = 0._wp ; zws(:,:,2) = 0._wp ; zwrm(:,:,2) = 0._wp
+ END IF
+ !
DO jj = 2, jpjm1 ! 2nd order centered at top & bottom
DO ji = fs_2, fs_jpim1
@@ -556,10 +560,10 @@
zwi (ji,jj,ikt) = 0._wp
zws (ji,jj,ikt) = 0._wp
- zwrm(ji,jj,ikt) = 0.5_wp * ( pt_in(ji,jj,jk-1) + pt_in(ji,jj,jk) )
+ zwrm(ji,jj,ikt) = 0.5_wp * ( pt_in(ji,jj,ikt-1) + pt_in(ji,jj,ikt) )
!
zwd (ji,jj,ikb) = 1._wp ! bottom
zwi (ji,jj,ikb) = 0._wp
zws (ji,jj,ikb) = 0._wp
- zwrm(ji,jj,ikb) = 0.5_wp * ( pt_in(ji,jj,jk-1) + pt_in(ji,jj,jk) )
+ zwrm(ji,jj,ikb) = 0.5_wp * ( pt_in(ji,jj,ikb-1) + pt_in(ji,jj,ikb) )
END DO
END DO
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/TRA/trabbl.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/TRA/trabbl.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/TRA/trabbl.F90 (revision 9977)
@@ -526,5 +526,5 @@
zmbku(:,:) = REAL( mbku_d(:,:), wp ) ; zmbkv(:,:) = REAL( mbkv_d(:,:), wp )
CALL lbc_lnk_multi( zmbku,'U',1., zmbkv,'V',1.)
- mbku_d(:,:) = MAX( INT( zmbku(:,:) ), 1 ) ; mbkv_d(:,:) = MAX( INT( zmbkv(:,:) ), 1 )
+ mbku_d(:,:) = MAX( INT( zmbku(:,:) ), 1 ) ; mbkv_d(:,:) = MAX( NINT( zmbkv(:,:) ), 1 )
!
! !* sign of grad(H) at u- and v-points; zero if grad(H) = 0
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/USR/usrdef_zgr.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/USR/usrdef_zgr.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/USR/usrdef_zgr.F90 (revision 9977)
@@ -204,5 +204,5 @@
CALL lbc_lnk( z2d, 'T', 1. ) ! set surrounding land to zero (here jperio=0 ==>> closed)
!
- k_bot(:,:) = INT( z2d(:,:) ) ! =jpkm1 over the ocean point, =0 elsewhere
+ k_bot(:,:) = NINT( z2d(:,:) ) ! =jpkm1 over the ocean point, =0 elsewhere
!
k_top(:,:) = MIN( 1 , k_bot(:,:) ) ! = 1 over the ocean point, =0 elsewhere
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/stpctl.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/stpctl.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/stpctl.F90 (revision 9977)
@@ -114,5 +114,5 @@
CALL mpp_max_multiple( zmax(:), 5 ) ! max over the global domain
!
- nstop = INT( zmax(5) ) ! nstop indicator sheared among all local domains
+ nstop = NINT( zmax(5) ) ! nstop indicator sheared among all local domains
ENDIF
!
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/timing.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/timing.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/OCE/timing.F90 (revision 9977)
@@ -211,5 +211,5 @@
WRITE(numtime,*) ' NEMO team'
WRITE(numtime,*) ' Ocean General Circulation Model'
- WRITE(numtime,*) ' version 3.6 (2015) '
+ WRITE(numtime,*) ' version 4.0 (2018) '
WRITE(numtime,*)
WRITE(numtime,*) ' Timing Informations '
Index: /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/TOP/PISCES/P4Z/p4zsms.F90
===================================================================
--- /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/TOP/PISCES/P4Z/p4zsms.F90 (revision 9976)
+++ /NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/TOP/PISCES/P4Z/p4zsms.F90 (revision 9977)
@@ -300,6 +300,6 @@
IF( ln_p5z ) THEN
IF( iom_varid( numrtr, 'sized', ldstop = .FALSE. ) > 0 ) THEN
- CALL iom_get( numrtr, jpdom_autoglo, 'sizep' , sized(:,:,:) )
- CALL iom_get( numrtr, jpdom_autoglo, 'sizen' , sized(:,:,:) )
+ CALL iom_get( numrtr, jpdom_autoglo, 'sizep' , sizep(:,:,:) )
+ CALL iom_get( numrtr, jpdom_autoglo, 'sizen' , sizen(:,:,:) )
CALL iom_get( numrtr, jpdom_autoglo, 'sized' , sized(:,:,:) )
ELSE
@@ -321,6 +321,6 @@
CALL iom_rstput( kt, nitrst, numrtw, 'tcflxcum', t_oce_co2_flx_cum )
IF( ln_p5z ) THEN
- CALL iom_rstput( kt, nitrst, numrtw, 'sizep', sized(:,:,:) )
- CALL iom_rstput( kt, nitrst, numrtw, 'sizen', sized(:,:,:) )
+ CALL iom_rstput( kt, nitrst, numrtw, 'sizep', sizep(:,:,:) )
+ CALL iom_rstput( kt, nitrst, numrtw, 'sizen', sizen(:,:,:) )
CALL iom_rstput( kt, nitrst, numrtw, 'sized', sized(:,:,:) )
ENDIF