Various fixes on the main
This branch fixes various bugs found during testing of the RK3 tiling.
Context
-
Branches impacted: main -
Component: OCE
Analysis
Most fixes are relatively straightforward, but details on some fixes are given below.
General
- Incorrect position of an
ALLOCATE
statement invor_enT
-
triadi
/triadi_g
/triadj
/triadj_g
are undefined on some points intraldf_triad_lap
for the bilaplacian case- An
lbc_lnk
is added to set the undefined points
- An
-
20d
/26d
/28d
isotherm diagnostics do not have the correct grid definition - Data sent to XIOS for
e3t_0
/e3u_0
/e3v_0
/e3f_0
diagnostics has an inconsistent size forlk_vco_3d = .true./.false.
- Restartability issues are introduced when the
lbc_lnk
onhdiv
is removed (needed for tiling)-
ldfull = .true.
is added to a number oflbc_lnk
calls - This is part of a wider issue
-
lbc_lnk
calls iniom_get
useldfull = .true.
-lbc_lnk
will also set data on the internal row adjacent to the north-fold - By default
ldfull = .false.
-lbc_lnk
will not set data on the internal row adjacent to the north-fold - Data for variables such as
uu
/vv
/ts
/ssh
are read in from restart files (viaiom_get
) and are also set bylbc_lnk
during time-stepping - Due to the inconsistent use of
ldfull
in these two cases, the data on the internal row adjacent to the north-fold will differ and the model will not be restartable - In #68 (closed), brackets were inserted throughout the code in order to preserve results when removing
lbc_lnk
calls. This is likely also needed to address these specific restartability issues, but it is far easier to addldfull = .true.
to specificlbc_lnk
calls than to trace where these brackets are required.
-
-
RK3
-
qsr3d
diagnostic is not valid for RK3 (qsr_hc
is not defined) - In
rk3_dia
, logicals are always.false.
andll_ldfeiv_dia
is referenced instead ofln_ldfeiv_dia
Tiling
-
nav_lat
/nav_lon
are only defined for one tile in restart files -
akzu
/akzv
are only defined for one tile at the surface and bottom boundaries