public pure subroutine ocean_ideal_age_reset_step(hTr_age, h_layer, young_eff, nx, ny, nz)
Surface Dirichlet BC, k = nz only:
hTr_age(i,j,nz) = young_eff * h_layer(i,j,nz)young_eff is A_young(t) (s), a host scalar from
ocean_ideal_age_young_val — this writes a CONCENTRATION
times thickness, not a raw concentration (today’s hard-coded
young_eff = 0 reset never exercised the h_layer factor).
Writes the full 1:nx, 1:ny extent including ghosts/land, same
as the historical kernel; land h_layer -> H_VANISHED makes
the product negligible and no kernel reads land age.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Variables
Type
Visibility
Attributes
Name
Initial
integer,
private
::
i
integer,
private
::
j
Source Code
pure subroutine ocean_ideal_age_reset_step(hTr_age,h_layer,young_eff,nx,ny,nz)!! Surface Dirichlet BC, `k = nz` only:!! `hTr_age(i,j,nz) = young_eff * h_layer(i,j,nz)`!! `young_eff` is `A_young(t)` (s), a host scalar from!! `ocean_ideal_age_young_val` — this writes a CONCENTRATION!! times thickness, not a raw concentration (today's hard-coded!! `young_eff = 0` reset never exercised the `h_layer` factor).!! Writes the full `1:nx, 1:ny` extent including ghosts/land, same!! as the historical kernel; land `h_layer -> H_VANISHED` makes!! the product negligible and no kernel reads land age.integer,intent(in)::nx,ny,nzreal(wp),intent(inout)::hTr_age(nx,ny,nz)real(wp),intent(in)::h_layer(nx,ny,nz)real(wp),intent(in)::young_effinteger::i,jdoconcurrent(j=1:ny,i=1:nx)hTr_age(i,j,nz)=young_eff*h_layer(i,j,nz)end do end subroutine ocean_ideal_age_reset_step