| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| class(base_backend_t), | public, | pointer | :: | backend | => | null() | |
| class(mesh_t), | public, | pointer | :: | mesh | => | null() | |
| type(allocator_t), | public, | pointer | :: | host_allocator | => | null() | |
| type(abl_config_t), | public | :: | cfg | ||||
| class(field_t), | public, | pointer | :: | damp_coeff | => | null() |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(base_backend_t), | intent(inout), | target | :: | backend | ||
| type(mesh_t), | intent(inout), | target | :: | mesh | ||
| type(allocator_t), | intent(inout), | target | :: | host_allocator | ||
| type(abl_config_t), | intent(in) | :: | cfg |
Sets the t=0 velocity profile: log-law when the drive is pressure- gradient / mass-conserve, otherwise the geostrophic wind, plus noise (Incompact3d init_abl, 68-92).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(abl_t) | :: | self | ||||
| class(field_t), | intent(inout) | :: | u | |||
| class(field_t), | intent(inout) | :: | v | |||
| class(field_t), | intent(inout) | :: | w |
Adds the ABL driving forces to the momentum RHS each substep (Incompact3d momentum_forcing_abl, 296-320).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(abl_t) | :: | self | ||||
| class(field_t), | intent(inout) | :: | du | |||
| class(field_t), | intent(inout) | :: | dv | |||
| class(field_t), | intent(inout) | :: | dw | |||
| class(field_t), | intent(in) | :: | u | |||
| class(field_t), | intent(in) | :: | v | |||
| class(field_t), | intent(in) | :: | w |
Configure the neutral ABL wall model in the LES closure.
The floor is no-slip, so the velocity driving the drag law is sampled at dsampling*dy above it, matching Incompact3d's wall_sgs_noslip.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(abl_t), | intent(in) | :: | self | |||
| type(les_t), | intent(inout) | :: | les |
Rayleigh sponge relaxing the flow toward the reference profile over the top damping layer (Incompact3d damping_zone, neutral branch).
As in Incompact3d, the target is the same whatever drives the flow: u relaxes to the log-law value at delta, and v, w to u_geo(2), u_geo(3). That suits the pressure-gradient and mass-conserve drives, whose profile is the log law. With only the Coriolis drive the free stream is u_geo, so the sponge pulls u toward a different value than the drive does. The layer is centred on delta and 0.1delta thick, so it acts only when the domain extends above delta - 0.05delta.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(abl_t) | :: | self | ||||
| class(field_t), | intent(inout) | :: | du | |||
| class(field_t), | intent(inout) | :: | dv | |||
| class(field_t), | intent(inout) | :: | dw | |||
| class(field_t), | intent(in) | :: | u | |||
| class(field_t), | intent(in) | :: | v | |||
| class(field_t), | intent(in) | :: | w |
Precomputes the damping coefficient coeff*lambda(y), constant in x/z.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(abl_t) | :: | self |