123 ( tpdom,pustar,tpmxl,tpatm, &
124 tpblkw,tpblki,tpbud,tpdia,tptfl,tpsit,tpsil )
137 USE modi_glt_updbud_r
140 USE modi_glt_constrain_r
141 USE modi_glt_thermo_ice_r
142 USE modi_glt_thermo_lead_r
143 USE modi_glt_thermo_end_r
144 USE modi_glt_updice_r
152 TYPE(t_dom),
DIMENSION(np),
INTENT(in) :: &
154 REAL,
DIMENSION(np),
INTENT(in) :: &
156 TYPE(t_mxl),
DIMENSION(np),
INTENT(inout) :: &
158 TYPE(t_atm),
DIMENSION(np),
INTENT(in) :: &
160 TYPE(t_blk),
DIMENSION(np),
INTENT(inout) :: &
162 TYPE(t_blk),
DIMENSION(nt,np),
INTENT(in) :: &
164 TYPE(t_bud),
DIMENSION(np),
INTENT(inout) :: &
166 TYPE(t_dia),
DIMENSION(np),
INTENT(inout) :: &
168 TYPE(t_tfl),
DIMENSION(np),
INTENT(inout) :: &
170 TYPE(t_sit),
DIMENSION(nt,np),
INTENT(inout) :: &
172 TYPE(t_vtp),
DIMENSION(nl,nt,np),
INTENT(inout) :: &
179 TYPE(t_sit),
DIMENSION(nt,np) :: &
181 TYPE(t_vtp),
DIMENSION(nl,nt,np) :: &
184 zice_a, zemps_a, zsalt_a, zsalf_a, zsalt_a_0, zsalf_a_0
192 WRITE(noutlu,*)
' *** LEVEL 3 - SUBROUTINE THERMO_R'
202 tzldsit(:,:)%esi = .false.
203 tzldsit(:,:)%asn = albw
204 tzldsit(:,:)%fsi = 0.
205 tzldsit(:,:)%hsi = 0.
206 tzldsit(:,:)%hsn = 0.
207 tzldsit(:,:)%rsn = rhosnwmax
208 tzldsit(:,:)%tsf = spread(tpmxl(:)%tml,1,nt)
209 tzldsit(:,:)%age = 0.
210 tzldsit(:,:)%ssi = spread(tpmxl(:)%sml,1,nt)
211 tzldsit(:,:)%vmp = 0.
212 tzldsil(:,:,:)%ent = 0.
217 tpdia(:)%dsi = rhoice*sum( tpsit(:,:)%fsi*tpsit(:,:)%hsi, dim=1 )
221 tpdia(:)%dwi = rhoice*sum( tpsit(:,:)%fsi*tpsit(:,:)%hsi* &
222 ( 1.-1.e-3*tpsit(:,:)%ssi ), dim=1 )
226 tpdia(:)%dsn = sum( tpsit(:,:)%fsi*tpsit(:,:)%rsn*tpsit(:,:)%hsn, dim=1 )
230 tpdia(:)%dsa = sum( tpsit(:,:)%fsi*tpsit(:,:)%hsi*tpsit(:,:)%ssi, dim=1 )
245 IF ( nupdbud==1 )
THEN
247 tpdom,tpmxl,tptfl,tpatm,tpblkw,tpblki,tpsit,tpsil,tpbud )
249 tpdom, tpsit, zsalt_a, zice_a, tptfl, zemps_a, zsalf_a)
255 (tpdom,pustar,tpmxl,tpatm,tpblkw, &
256 tpdia,tptfl,tpsit,tpsil, &
281 IF ( nupdbud==1 )
THEN
282 CALL
glt_updbud_r( 0,
'After glt_thermo_lead_r / Before THERMO_ICE_R:', &
283 tpdom,tpmxl,tptfl,tpatm,tpblkw,tpblki,tpsit,tpsil,tpbud )
285 tpdom, tpsit, zsalt_a, zice_a, tptfl, zemps_a, zsalf_a)
293 ( tpdom,tpmxl,tpatm,tpblki,tpbud,tpdia,tptfl,tpsit,tpsil )
315 IF ( nupdbud==1 )
THEN
316 CALL
glt_updbud_r( 0,
'After glt_thermo_ice_r / Before THERMO_END_R:', &
317 tpdom,tpmxl,tptfl,tpatm,tpblkw,tpblki,tpsit,tpsil,tpbud )
319 tpdom, tpsit, zsalt_a, zice_a, tptfl, zemps_a, zsalf_a)
336 tpdom,tpmxl,tptfl,tpatm,tpblkw,tpblki,tpsit,tpsil,tpbud )
341 tpdia(:)%the = ( tpbud(:)%enn - tpbud(:)%eni ) / dtt
346 ( rhoice * sum( tpsit(:,:)%fsi*tpsit(:,:)%hsi, dim=1 )- &
352 ( rhoice * sum( tpsit(:,:)%fsi*tpsit(:,:)%hsi* &
353 ( 1.-1.e-3*tpsit(:,:)%ssi ), dim=1 )- &
359 ( sum( tpsit(:,:)%rsn*tpsit(:,:)%fsi*tpsit(:,:)%hsn, dim=1 )- &
364 tpdia(:)%dsa = rhoice*1.e-3* &
365 ( sum( tpsit(:,:)%fsi*tpsit(:,:)%hsi*tpsit(:,:)%ssi, dim=1 )- &
370 CALL
glt_aventh( tpsit,tpsil,tpdia%sie,tpdia%sne )
379 WRITE(noutlu,*)
' *** LEVEL 3 - END SUBROUTINE THERMO_R'
382 IF ( nupdbud==1 )
THEN
383 CALL
glt_updice_r(1,
' SALT BUDGET OVER ENTIRE glt_thermo_r ', &
384 tpdom, tpsit, zsalt_a_0, zice_a, tptfl, zemps_a, zsalf_a_0)
subroutine glt_thermo_ice_r(tpdom, tpmxl, tpatm, tpblki, tpbud, tpdia, tptfl, tpsit, tpsil)
subroutine glt_updice_r(kinit, omsg, tpdom, tpsit, psalt_a, pice_a, tptfl, pemps_a, psalf_a)
subroutine glt_thermo_lead_r(tpdom, pustar, tpmxl, tpatm, tpblkw, tpdia, tptfl, tpsit, tpsil, tpldsit, tpldsil)
subroutine glt_thermo_end_r(tpdom, tpml, tpldsit, tpldsil, tpsit, tpsil)
subroutine glt_thermo_r(tpdom, pustar, tpmxl, tpatm, tpblkw, tpblki, tpbud, tpdia, tptfl, tpsit, tpsil)
subroutine glt_updbud_r(kinit, omsg, tpdom, tpmxl, tptfl, tpatm, tpblkw, tpblki, tpsit, tpsil, tpbud)