93 ( pcondb,pqtopmelt,pdhmelt,tpmxl,tpdia,tptfl,tpsit,tpsil )
99 USE modi_glt_saltrap_r
100 USE modi_glt_frzvtp_r
101 USE modi_glt_mltvtp_r
109 REAL,
DIMENSION(nt,np),
INTENT(in) :: &
111 REAL,
DIMENSION(nl,nt,np),
INTENT(in) :: &
113 TYPE(t_mxl),
DIMENSION(np),
INTENT(in) :: &
115 TYPE(t_dia),
DIMENSION(np),
INTENT(inout) :: &
117 TYPE(t_tfl),
DIMENSION(np),
INTENT(inout) :: &
119 TYPE(t_sit),
DIMENSION(nt,np),
INTENT(inout) :: &
121 TYPE(t_vtp),
DIMENSION(nl,nt,np),
INTENT(inout) :: &
130 LOGICAL,
DIMENSION(np) :: &
132 REAL,
DIMENSION(np) :: &
133 zfsit,zqtio,zwork,zssib,zentb,zdhsib,ztem
134 REAL,
DIMENSION(nt,np) :: &
135 zlf,zhsi,zhsn,zssi,zdmsi,zdmsn,zqfac,zqres,zwork2,zent0,zqtio2,zhsi_m
136 REAL,
DIMENSION(nilay,nt,np) :: &
151 zfsit(:) = sum( tpsit(:,:)%fsi,dim=1 )
152 zqfac(:,:) = pcondb(:,:) + &
153 spread( tpmxl(:)%qoc + tpmxl(:)%qml,1,nt )
162 tpdia(:)%qoi = tpdia(:)%qoi + tpmxl(:)%qoc*zfsit(:)
166 zqtio(:) = - tpmxl(:)%qoc*zfsit(:) - tpmxl(:)%qml
170 zhsn(:,:)=tpsit(:,:)%hsn
171 zhsi(:,:)=tpsit(:,:)%hsi
175 zent0(:,:) = -cpsw * mu * tpsit(:,:)%ssi
193 zdhi(jl,:,:) = zhsi(:,:) * sf3tinv(jl)
203 WHERE( pdhmelt(jl,:,:)>0. )
204 zqtio2(:,:) = zqtio2(:,:) + &
205 ( rhoice * zdhi(jl,:,:) * tpsil(jl,:,:)%ent + pdhmelt(jl,:,:) ) / dtt
216 WHERE( tpsil(jl,:,:)%ent>=zent0(:,:) .AND. zhsi(:,:)>0. )
217 zqtio2(:,:) = zqtio2(:,:) + &
218 rhoice*( tpsil(jl,:,:)%ent-zent0(:,:) )* zdhi(jl,:,:)/dtt
222 tpsil(jl,:,:)%ent = zent0(:,:)
237 tpsit(:,:)%fsi*( sum( zdhi(:,:,:),dim=1 )-tpsit(:,:)%hsi ), dim=1 )/dtt
256 WHERE ( zqfac(:,:)>0. .AND. zdhi(jl,:,:)>0. )
257 zdhi(jl,:,:) = zdhi(jl,:,:) + dtt*zqfac(:,:)/ &
258 ( tpsil(jl,:,:)%ent*rhoice )
261 WHERE ( zdhi(jl,:,:)>=0. )
267 zqfac(:,:) = rhoice*tpsil(jl,:,:)%ent*zdhi(jl,:,:) / dtt
287 WHERE ( zqfac(:,:)>0. )
288 zqfac(:,:) = zqfac(:,:) + &
289 tpsit(:,:)%hsn*tpsit(:,:)%rsn/dtt * &
290 sum( tpsil(nilay+1:nl,:,:)%ent,dim=1 )/float(nslay)
292 WHERE ( zqfac(:,:)<0. )
293 zqres(:,:) = zqfac(:,:)
318 zdmsi(:,:) = rhoice * &
319 ( zhsi(:,:)-tpsit(:,:)%hsi ) * tpsit(:,:)%fsi
320 zhsi_m(:,:) = zhsi(:,:)
322 CALL
glt_updtfl_r(
'I2O',tpmxl,tptfl,zdmsi,pent=zwork2,psalt=tpsit(:,:)%ssi )
336 yfreeze(:) = ( pcondb(jk,:)<0. )
337 CALL
glt_saltrap_r( yfreeze,pcondb(jk,:),ztem(:),tpmxl,zssib,zentb,zdhsib )
338 tpdia(:)%cgl = tpdia(:)%cgl + tpsit(jk,:)%fsi*zdhsib(:)
340 tpdia(:)%cgl = rhoice*tpdia(:)%cgl/dtt
347 WHERE( zqfac(:,:)<0. )
352 zdmsi(:,:) = rhoice * &
353 ( zhsi(:,:)-zhsi_m(:,:) ) * tpsit(:,:)%fsi
354 CALL
glt_updtfl_r(
'I2O',tpmxl,tptfl,zdmsi,pent=zent0,psalt=zssi )
367 tptfl(:)%tio = tptfl(:)%tio + &
368 sum( ( zqfac(:,:)+zqtio2(:,:)+zqres(:,:) )*tpsit(:,:)%fsi,dim=1 ) + &
387 WHERE ( tpsit(:,:)%hsi<epsil1 .AND. tpsit(:,:)%fsi>=epsil1 )
390 zdmsn(:,:) = tpsit(:,:)%rsn * &
391 ( zhsn(:,:)-tpsit(:,:)%hsn ) * tpsit(:,:)%fsi
420 tpdia(:)%mrb = sum( zdmsi(:,:),dim=1 )/dtt - tpdia(:)%cgl - tpdia(:)%mrt
422 WHERE( tpdia(:)%mrb>0. )
423 tpdia(:)%cgl = tpdia(:)%cgl + tpdia(:)%mrb
433 tpsit(:,:)%hsi = zhsi(:,:)
437 tpsit(:,:)%hsn = zhsn(:,:)
447 WHERE ( tpsit(:,:)%hsi<epsil1 .AND. tpsit(:,:)%fsi>=epsil1 )
448 tpsit(:,:)%esi = .false.
451 tpsit(:,:)%asn = albw
453 tpsit(:,:)%rsn = rhosnwmin
456 IF ( niceage==1 )
THEN
457 WHERE ( tpsit(:,:)%hsi<epsil1 .AND. tpsit(:,:)%fsi>=epsil1 )
462 IF ( nicesal==1 )
THEN
463 WHERE ( tpsit(:,:)%hsi<epsil1 .AND. tpsit(:,:)%fsi>=epsil1 )
468 IF ( nmponds==1 )
THEN
469 WHERE ( tpsit(:,:)%hsi<epsil1 .AND. tpsit(:,:)%fsi>=epsil1 )
subroutine glt_saltrap_r(gfreeze, phef, ptem, tpmxl, psalt, pent, phsi)
subroutine glt_updtfl_r(hflag, tpmxl, tptfl, pdmass, pent, psalt)
subroutine glt_mltvtp_r(pdhi, phsi, tpsil)
subroutine glt_updhsi_r(pcondb, pqtopmelt, pdhmelt, tpmxl, tpdia, tptfl, tpsit, tpsil)
subroutine glt_frzvtp_r(tpmxl, tpsit, pqfac, phsi, pssi, tpsil)