105 (tpdom,pustar,tpmxl,tpatm,tpblkw, &
106 tpdia,tptfl,tpsit,tpsil, &
121 USE modi_gltools_chkglo_r
122 USE modi_glt_saltrap_r
123 USE modi_glt_updtfl_r
124 USE modi_glt_oceflx_r
135 TYPE(t_dom),
DIMENSION(np),
INTENT(in) :: &
137 REAL,
DIMENSION(np),
INTENT(in) :: &
139 TYPE(t_mxl),
DIMENSION(np),
INTENT(inout) :: &
141 TYPE(t_atm),
DIMENSION(np),
INTENT(in) :: &
146 TYPE(t_blk),
DIMENSION(np),
INTENT(inout) :: &
148 TYPE(t_dia),
DIMENSION(np),
INTENT(inout) :: &
150 TYPE(t_tfl),
DIMENSION(np),
INTENT(inout) :: &
152 TYPE(t_sit),
DIMENSION(nt,np),
INTENT(inout) :: &
154 TYPE(t_vtp),
DIMENSION(nl,nt,np),
INTENT(inout) :: &
159 TYPE(t_sit),
DIMENSION(nt,np),
INTENT(out) :: &
161 TYPE(t_vtp),
DIMENSION(nl,nt,np),
INTENT(out) :: &
170 LOGICAL,
DIMENSION(np) :: &
173 zibflx0,zlat0,zsst0,zfac0
174 REAL,
DIMENSION(np) :: &
175 zfld,zfldsi,zhldsi,ztldsi,zdhldsi,za,zdtml,zhef,zsnflx, &
176 zdmsi,zfsit,zent0,zsalt0,ztem0
177 REAL,
DIMENSION(nt,np) :: &
202 IF ( nextqoc==0 )
THEN
211 WHERE ( tpdom(:)%tmk==1 .AND. tpmxl(:)%tml<=tpmxl(:)%mlf+0.1 )
221 WRITE(noutlu,*)
'**** LEVEL 4 - SUBROUTINE THERMO_LEAD_R'
250 zfsit(:) = sum(tpsit(:,:)%fsi,dim=1)
255 zfld(:) = 1.-zfsit(:)
263 tptfl(:)%wlo = tptfl(:)%wlo + &
264 zfld(:)*( tpatm(:)%lip + tpatm(:)%sop + tpblkw(:)%eva )
265 tpdia(:)%l_pr = zfld(:) * tpatm(:)%lip
266 tpdia(:)%l_prsn = zfld(:) * tpatm(:)%sop
267 tpdia(:)%sul = zfld(:) * tpblkw(:)%eva
276 IF ( nsnwrad==1 )
THEN
277 zsnflx(:) = -xmhofusn0*tpatm(:)%sop
288 tptfl(:)%llo = tptfl(:)%llo + zfld(:)*tpblkw(:)%swa
297 zhef(:) = tpmxl(:)%qml + tpblkw(:)%nsf + zsnflx(:)
309 WHERE ( zhef(:) + tpmxl(:)%qoc > 0. )
312 zhef(:) = zhef(:) + tpmxl(:)%qoc
318 WHERE( .NOT. yfreeze(:) )
319 tptfl(:)%tlo = tptfl(:)%tlo + zfld(:) * zhef(:)
321 tptfl(:)%tlo = tptfl(:)%tlo - zfld(:) * tpmxl(:)%qoc
322 tpdia(:)%qoi = tpdia(:)%qoi + zfld(:) * tpmxl(:)%qoc
347 WHERE ( .NOT.yfreeze(:) )
348 ztldsi(:) = tpmxl(:)%mlf
393 CALL
glt_saltrap_r( yfreeze,zhef,ztem0,tpmxl,zsalt0,zent0,zhldsi )
398 ztldsi(:) = tpmxl(:)%mlf
405 WHERE ( zhldsi(:)<=xhsimin )
406 zfldsi(:) = zfld(:)*zhldsi(:)/xhsimin
419 zsalt(:,:) = spread( zsalt0(:),1,nt )
425 tpldsit(:,:)%esi = .false.
426 tpldsit(:,:)%asn = albw
427 tpldsit(:,:)%fsi = 0.
428 tpldsit(:,:)%hsi = 0.
429 tpldsit(:,:)%hsn = 0.
430 tpldsit(:,:)%rsn = rhosnwmin
431 tpldsit(:,:)%tsf = spread( tpmxl(:)%mlf,1,nt )
432 tpldsit(:,:)%ssi = zsalt(:,:)
433 tpldsit(:,:)%age = 0.
434 tpldsit(:,:)%vmp = 0.
437 WHERE ( thick(jk)<zhldsi(:) .AND. zhldsi(:)<=thick(jk+1) &
439 tpldsit(jk,:)%esi = .true.
443 tpldsit(jk,:)%asn = albi
444 tpldsit(jk,:)%fsi = zfldsi(:)
445 tpldsit(jk,:)%hsi = zhldsi(:)
446 tpldsit(jk,:)%tsf = ztldsi(:)
452 tpldsil(:,:,:)%ent = spread( spread( zent0(:),1,nt ),1,nl )
458 tpdia(:)%lsi = zfldsi(:)*zhldsi(:)*rhoice/dtt
477 zdmsi(:) = rhoice * zfldsi(:) * zhldsi(:)
479 zdmsi2(1,:) = zdmsi(:)
486 CALL
glt_updtfl_r(
'I2O',tpmxl,tptfl,zdmsi2,pent=zent,psalt=zsalt )
496 WRITE(noutlu,*)
'**** LEVEL 4 - END SUBROUTINE THERMO_LEAD_R'
subroutine glt_saltrap_r(gfreeze, phef, ptem, tpmxl, psalt, pent, phsi)
subroutine glt_updtfl_r(hflag, tpmxl, tptfl, pdmass, pent, psalt)
subroutine glt_thermo_lead_r(tpdom, pustar, tpmxl, tpatm, tpblkw, tpdia, tptfl, tpsit, tpsil, tpldsit, tpldsil)
subroutine glt_oceflx_r(tpdom, pustar, tpmxl)