ROMS
Loading...
Searching...
No Matches
tl_post_initial.F
Go to the documentation of this file.
1#include "cppdefs.h"
3#ifdef TANGENT
4!
5!git $Id$
6!svn $Id$
7!================================================== Hernan G. Arango ===
8! Copyright (c) 2002-2025 The ROMS Group !
9! Licensed under a MIT/X style license !
10! See License_ROMS.md !
11!=======================================================================
12! !
13! On the first timestep, it computes the initial depths and level !
14! thicknesses from the initial free-surface field. Additionally, it !
15! initializes the tangent linear state variables for all time levels !
16! and applies lateral boundary conditions. !
17! !
18!=======================================================================
19!
20 USE mod_param
21 USE mod_parallel
22# ifdef NESTING
23 USE mod_scalars
24# endif
25!
27# ifdef SOLVE3D
28 USE set_depth_mod, ONLY : set_depth
29# endif
31# ifdef SOLVE3D
33# endif
34!
35 implicit none
36!
37 PUBLIC :: tl_post_initial
38 PRIVATE
39!
40 CONTAINS
41!
42!***********************************************************************
43 SUBROUTINE tl_post_initial (ng, model)
44!***********************************************************************
45!
46! Imported variable declarations.
47!
48 integer, intent(in) :: ng, model
49!
50! Local variable declarations.
51!
52 integer :: tile
53!
54!-----------------------------------------------------------------------
55! Initialize free-surface and compute initial level thicknesses and
56! depths. Here we need nonlinear 'Zt_avg1' and 'Hz' to compute initial
57! 'tl_ubar' and 'tl_vbar'.
58!-----------------------------------------------------------------------
59!
60 DO tile=first_tile(ng),last_tile(ng),+1
61 CALL set_zeta_timeavg (ng, tile, inlm)
62 CALL set_depth (ng, tile, inlm)
63 CALL tl_ini_zeta (ng, tile, model)
64 CALL tl_set_depth (ng, tile, model)
65 END DO
66!$OMP BARRIER
67!
68!-----------------------------------------------------------------------
69! Initialize other state variables.
70!-----------------------------------------------------------------------
71!
72 DO tile=last_tile(ng),first_tile(ng),-1
73 CALL tl_ini_fields (ng, tile, model)
74 END DO
75!$OMP BARRIER
76
77# ifdef NESTING
78!
79!-----------------------------------------------------------------------
80! Extract donor grid initial data at contact points and store it in
81! REFINED structure so it can be used for the space-time interpolation.
82!-----------------------------------------------------------------------
83!
84 IF (refinedgrid(ng)) THEN
85 CALL tl_nesting (ng, model, ngetd)
86 END IF
87# endif
88!
89 RETURN
90 END SUBROUTINE tl_post_initial
91#endif
92 END MODULE tl_post_initial_mod
subroutine, public set_zeta_timeavg(ng, tile, model)
Definition ini_fields.F:986
integer, dimension(:), allocatable first_tile
integer, dimension(:), allocatable last_tile
integer, parameter inlm
Definition mod_param.F:662
logical, dimension(:), allocatable refinedgrid
subroutine, public set_depth(ng, tile, model)
Definition set_depth.F:34
subroutine, public tl_ini_fields(ng, tile, model)
subroutine, public tl_ini_zeta(ng, tile, model)
subroutine, public tl_post_initial(ng, model)
subroutine, public tl_set_depth(ng, tile, model)