| 135 | |
| 136 | '''Fixing Icebergs across the north-fold''' |
| 137 | |
| 138 | A third set of orthogonal changes have been applied to this branch to fix problems encountered with the ICB package around the north fold. There were several aspects to the problems: |
| 139 | |
| 140 | 1. The extra halos required for the iceberg interpolation were not exchanged correctly leading to 'missing rows' and artificial barriers to iceberg transport. |
| 141 | 2. An assumption about communication symmetry and message order that was found wanting at higher resolutions leading to dead-lock situations |
| 142 | 3. A lack of support for land-suppression. |
| 143 | |
| 144 | The first two issues requires a recoding of the north-fold exchange of ice information which was extensive enough to warrant testing on a branch prior to submission. The current, tested solution is |
| 145 | universal but has not yet been optimised for the ln_nnogather option. This will need to be addressed if ICB is to be used at very high processor counts. With a robust exchange mechanism in place, enabling land suppression |
| 146 | proved to be a trivial task. Testing and identifying problems proved difficult initially due to the difficulty of working with the trajectory data spread throughout distributed datasets as ragged arrays. A basic |
| 147 | python script has been added which collates trajectory data into contiguous streams for analysis. |
| 148 | |
| 149 | |
| 150 | {{{ |
| 151 | svn ci -m 'Branch 2014/dev_r4743_NOC2_ZTS. Added fixes for ICB (icebergs) option to enable correct exchange of icb arrays across the north fold. These fixes also enable ICB to be used with land suppression. Optimisation of the exchanges for the ln_nnogather option has not yet been done. A Python utility (TOOLS/MISCELLANEOUS/icb_pp.py) is included to help collate iceberg trajectory output.' NEMOGCM/NEMO/OPA_SRC/ICB/icb_oce.F90 NEMOGCM/NEMO/OPA_SRC/ICB/icbdyn.F90 NEMOGCM/NEMO/OPA_SRC/ICB/icbini.F90 NEMOGCM/NEMO/OPA_SRC/ICB/icblbc.F90 NEMOGCM/NEMO/OPA_SRC/ICB/icbrst.F90 NEMOGCM/NEMO/OPA_SRC/ICB/icbstp.F90 NEMOGCM/NEMO/OPA_SRC/ICB/icbutl.F90 NEMOGCM/NEMO/OPA_SRC/LBC/lbclnk.F90 NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90 NEMOGCM/TOOLS/MISCELLANEOUS/icb_pp.py |
| 152 | |
| 153 | Sending NEMOGCM/NEMO/OPA_SRC/ICB/icb_oce.F90 |
| 154 | Sending NEMOGCM/NEMO/OPA_SRC/ICB/icbdyn.F90 |
| 155 | Sending NEMOGCM/NEMO/OPA_SRC/ICB/icbini.F90 |
| 156 | Sending NEMOGCM/NEMO/OPA_SRC/ICB/icblbc.F90 |
| 157 | Sending NEMOGCM/NEMO/OPA_SRC/ICB/icbrst.F90 |
| 158 | Sending NEMOGCM/NEMO/OPA_SRC/ICB/icbstp.F90 |
| 159 | Sending NEMOGCM/NEMO/OPA_SRC/ICB/icbutl.F90 |
| 160 | Sending NEMOGCM/NEMO/OPA_SRC/LBC/lbclnk.F90 |
| 161 | Sending NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90 |
| 162 | Adding NEMOGCM/TOOLS/MISCELLANEOUS/icb_pp.py |
| 163 | Transmitting file data .......... |
| 164 | Committed revision 4891. |
| 165 | }}} |
| 166 | |