ROMS
Loading...
Searching...
No Matches
sum_imp_mod Module Reference

Functions/Subroutines

subroutine, public sum_imp (ng, tile, lout)
 
subroutine sum_imp_tile (ng, tile, lbi, ubi, lbj, ubj, lbij, ubij, imins, imaxs, jmins, jmaxs, lout, tl_t, tl_u, tl_v, f_t, f_u, f_v, tl_zeta, f_zeta)
 

Function/Subroutine Documentation

◆ sum_imp()

subroutine, public sum_imp_mod::sum_imp ( integer, intent(in) ng,
integer, intent(in) tile,
integer, intent(in) lout )

Definition at line 20 of file sum_imp.F.

21!***********************************************************************
22!
23 USE mod_param
24# ifdef ADJUST_BOUNDARY
25 USE mod_boundary
26# endif
27# if defined ADJUST_STFLUX || defined ADJUST_WSTRESS
28 USE mod_forces
29# endif
30 USE mod_ocean
31!
32! Imported variable declarations.
33!
34 integer, intent(in) :: ng, tile, Lout
35!
36! Local variable declarations.
37!
38# include "tile.h"
39!
40 CALL sum_imp_tile (ng, tile, &
41 & lbi, ubi, lbj, ubj, lbij, ubij, &
42 & imins, imaxs, jmins, jmaxs, &
43 & lout, &
44# ifdef SOLVE3D
45 & ocean(ng) % tl_t, &
46 & ocean(ng) % tl_u, &
47 & ocean(ng) % tl_v, &
48 & ocean(ng) % f_t, &
49 & ocean(ng) % f_u, &
50 & ocean(ng) % f_v, &
51# else
52 & ocean(ng) % tl_ubar, &
53 & ocean(ng) % tl_vbar, &
54 & ocean(ng) % f_ubar, &
55 & ocean(ng) % f_vbar, &
56# endif
57 & ocean(ng) % tl_zeta, &
58 & ocean(ng) % f_zeta)
59 RETURN
type(t_ocean), dimension(:), allocatable ocean
Definition mod_ocean.F:351

References mod_ocean::ocean, and sum_imp_tile().

Referenced by rbl4dvar_mod::increment().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sum_imp_tile()

subroutine sum_imp_mod::sum_imp_tile ( integer, intent(in) ng,
integer, intent(in) tile,
integer, intent(in) lbi,
integer, intent(in) ubi,
integer, intent(in) lbj,
integer, intent(in) ubj,
integer, intent(in) lbij,
integer, intent(in) ubij,
integer, intent(in) imins,
integer, intent(in) imaxs,
integer, intent(in) jmins,
integer, intent(in) jmaxs,
integer, intent(in) lout,
real(r8), dimension(lbi:,lbj:,:,:,:), intent(inout) tl_t,
real(r8), dimension(lbi:,lbj:,:,:), intent(inout) tl_u,
real(r8), dimension(lbi:,lbj:,:,:), intent(inout) tl_v,
real(r8), dimension(lbi:,lbj:,:,:), intent(inout) f_t,
real(r8), dimension(lbi:,lbj:,:), intent(inout) f_u,
real(r8), dimension(lbi:,lbj:,:), intent(inout) f_v,
real(r8), dimension(lbi:,lbj:,:), intent(inout) tl_zeta,
real(r8), dimension(lbi:,lbj:), intent(inout) f_zeta )
private

Definition at line 63 of file sum_imp.F.

75!***********************************************************************
76!
77 USE mod_param
78 USE mod_ncparam
79!
80! Imported variable declarations.
81!
82 integer, intent(in) :: ng, tile
83 integer, intent(in) :: LBi, UBi, LBj, UBj, LBij, UBij
84 integer, intent(in) :: IminS, ImaxS, JminS, JmaxS
85 integer, intent(in) :: Lout
86!
87# ifdef ASSUMED_SHAPE
88# ifdef SOLVE3D
89 real(r8), intent(inout) :: tl_t(LBi:,LBj:,:,:,:)
90 real(r8), intent(inout) :: tl_u(LBi:,LBj:,:,:)
91 real(r8), intent(inout) :: tl_v(LBi:,LBj:,:,:)
92 real(r8), intent(inout) :: f_t(LBi:,LBj:,:,:)
93 real(r8), intent(inout) :: f_u(LBi:,LBj:,:)
94 real(r8), intent(inout) :: f_v(LBi:,LBj:,:)
95# else
96 real(r8), intent(inout) :: tl_ubar(LBi:,LBj:,:)
97 real(r8), intent(inout) :: tl_vbar(LBi:,LBj:,:)
98 real(r8), intent(inout) :: f_ubar(LBi:,LBj:)
99 real(r8), intent(inout) :: f_vbar(LBi:,LBj:)
100# endif
101 real(r8), intent(inout) :: tl_zeta(LBi:,LBj:,:)
102 real(r8), intent(inout) :: f_zeta(LBi:,LBj:)
103# else
104# ifdef SOLVE3D
105 real(r8), intent(inout) :: tl_t(LBi:UBi,LBj:UBj,N(ng),3,NT(ng))
106 real(r8), intent(inout) :: tl_u(LBi:UBi,LBj:UBj,N(ng),2)
107 real(r8), intent(inout) :: tl_v(LBi:UBi,LBj:UBj,N(ng),2)
108 real(r8), intent(inout) :: f_t(LBi:UBi,LBj:UBj,N(ng),NT(ng))
109 real(r8), intent(inout) :: f_u(LBi:UBi,LBj:UBj,N(ng))
110 real(r8), intent(inout) :: f_v(LBi:UBi,LBj:UBj,N(ng))
111# else
112 real(r8), intent(inout) :: tl_ubar(LBi:UBi,LBj:UBj,:)
113 real(r8), intent(inout) :: tl_vbar(LBi:UBi,LBj:UBj,:)
114 real(r8), intent(inout) :: f_ubar(LBi:UBi,LBj:UBj)
115 real(r8), intent(inout) :: f_vbar(LBi:UBi,LBj:UBj)
116# endif
117 real(r8), intent(inout) :: tl_zeta(LBi:UBi,LBj:UBj,:)
118 real(r8), intent(inout) :: f_zeta(LBi:UBi,LBj:UBj)
119# endif
120!
121! Local variable declarations.
122!
123 integer :: i, ib, ir, j, k
124# ifdef SOLVE3D
125 integer :: itrc
126# endif
127
128# include "set_bounds.h"
129!
130! Free-surface.
131!
132 DO j=jstrr,jendr
133 DO i=istrr,iendr
134 tl_zeta(i,j,lout)=f_zeta(i,j)+tl_zeta(i,j,lout)
135 END DO
136 END DO
137
138# ifndef SOLVE3D
139!
140! 2D U-momentum component.
141!
142 DO j=jstrr,jendr
143 DO i=istr,iendr
144 tl_ubar(i,j,lout)=f_ubar(i,j)+tl_ubar(i,j,lout)
145 END DO
146 END DO
147!
148! 2D V-momentum.
149!
150 DO j=jstr,jendr
151 DO i=istrr,iendr
152 tl_vbar(i,j,lout)=f_vbar(i,j)+tl_vbar(i,j,lout)
153 END DO
154 END DO
155# endif
156
157# ifdef SOLVE3D
158!
159! 3D U-momentum component.
160!
161 DO k=1,n(ng)
162 DO j=jstrr,jendr
163 DO i=istr,iendr
164 tl_u(i,j,k,lout)=f_u(i,j,k)+tl_u(i,j,k,lout)
165 END DO
166 END DO
167 END DO
168
169!
170! 3D V-momentum component.
171!
172 DO k=1,n(ng)
173 DO j=jstr,jendr
174 DO i=istrr,iendr
175 tl_v(i,j,k,lout)=f_v(i,j,k)+tl_v(i,j,k,lout)
176 END DO
177 END DO
178 END DO
179
180!
181! Tracers.
182!
183 DO itrc=1,nt(ng)
184 DO k=1,n(ng)
185 DO j=jstrr,jendr
186 DO i=istrr,iendr
187 tl_t(i,j,k,lout,itrc)=f_t(i,j,k,itrc)+tl_t(i,j,k,lout,itrc)
188 END DO
189 END DO
190 END DO
191 END DO
192# endif
193
194 RETURN
integer, dimension(:), allocatable n
Definition mod_param.F:479
integer, dimension(:), allocatable nt
Definition mod_param.F:489

Referenced by sum_imp().

Here is the caller graph for this function: