104 USE modi_glt_saltrap_r
108 TYPE(t_mxl),
DIMENSION(np),
INTENT(in) :: &
110 TYPE(t_sit),
DIMENSION(nt,np),
INTENT(inout) :: &
112 REAL,
DIMENSION(nt,np),
INTENT(in) :: &
114 REAL,
DIMENSION(nt,np),
INTENT(inout) :: &
116 REAL,
DIMENSION(nt,np),
INTENT(out) :: &
118 TYPE(t_vtp),
DIMENSION(nl,nt,np),
INTENT(inout) :: &
123 LOGICAL,
DIMENSION(np) :: &
126 zavei,zavef,zdave,zhsinew
127 REAL,
DIMENSION(nilay) :: &
129 REAL,
DIMENSION(nilay+1) :: &
131 REAL,
DIMENSION(nilay+2) :: &
133 REAL,
DIMENSION(np) :: &
134 zssib,zentb,zdhsib,ztem
144 yfreeze(:) = ( pqfac(jk,:)<0. )
148 CALL
glt_saltrap_r( yfreeze,pqfac(jk,:),ztem(:),tpmxl,zssib,zentb,zdhsib )
151 IF ( pqfac(jk,jp)<0. )
THEN
157 zento(2:nilay+1)=tpsil(1:nilay,jk,jp)%ent
164 zsf3tinvo(1)=zdhsib(jp)
165 zsf3tinvo(2:nilay+1)=sf3tinv(:)*phsi(jk,jp)
166 zsf3tinvo(:)=zsf3tinvo/sum(zsf3tinvo)
169 zlevo(jl)=zlevo(jl-1)+zsf3tinvo(jl-1)
171 zlevo(:)=zlevo/zlevo(nilay+2)
175 tpsil(1:nilay,jk,jp)%ent = zentn(:)
178 zavei = sum( zsf3tinvo*zento )
181 zavef = sum( sf3tinv*tpsil(1:nilay,jk,jp)%ent )
184 zdave = abs( zavef-zavei )
188 IF ( zdave>1.e-5 )
THEN
189 WRITE(noutlu,*)
'jp= ',jp,
' jk= ',jk
191 ' Difference in av. vert. temp. =', &
197 zhsinew = phsi(jk,jp)+zdhsib(jp)
199 ( tpsit(jk,jp)%ssi*phsi(jk,jp)+zssib(jp)*zdhsib(jp) ) / zhsinew
200 phsi(jk,jp) = zhsinew
201 pssi(jk,jp) = zssib(jp)
206 pssi(jk,jp) = tpsit(jk,jp)%ssi
subroutine glt_saltrap_r(gfreeze, phef, ptem, tpmxl, psalt, pent, phsi)
subroutine glt_frzvtp_r(tpmxl, tpsit, pqfac, phsi, pssi, tpsil)