!> \file ablation_bord.f90 !! Clacul de l'ablation sur le bord !< !> SUBROUTINE: Ablation_bord !! Calcule l'ablation pour les points du bord !! \author ... !! \date .... !! @note cas des bords de calotte : un point du bord peut perdre en plus la glace !! amenée par l'écoulement. !! @note Calcule l'ablation pour les points du bord avec H=0 mais apport par l'amont !! diagnostic pour la fermeture du bilan d'eau !! par convention ablation negative dans la zone d'ablation !! @note Used modules: !! @note - use module3D_phy !> subroutine ablation_bord use module3D_phy implicit none integer :: ip1,im1,jp1,jm1 ! pour chercher les voisins integer :: somm ! Dans les zones ou le calcul icethick a donne un H negatif : ablbord=H ! pour être au bord, il suffit que la somme des ice voisins soit > 0 do j=1,ny do i=1,nx if (ice(i,j).eq.0) then ! seulment pour les noeuds sans glace im1=max(i-1,1) jm1=max(j-1,1) ip1=min(i+1,nx) jp1=min(j+1,ny) somm=ice(ip1,j)+ice(im1,j)+ice(i,jp1)+ice(i,jm1) if (somm.gt.0.and.(ablbord(i,j).LT.0.)) then ! voisins englaces !~ ! if (somm.gt.0.and.((ablbord(i,j).LT.0.).OR.(flot(ip1,j).OR.flot(im1,j).OR.flot(i,jp1).OR.flot(i,jm1)))) then ! voisins englaces !~ ! ablbord(i,j)= ablbord(i,j) - (Acc(i,j) * dt) ! Ablvrai=bmpdd-Acc-Hcalc/dt !~ if (ablbord(i,j).LT.0..and.front(i,j).LE.4.and.front(i,j).GE.0) then ablbord(i,j)= max(0.,ablbord(i,j) + ((Bmelt(i,j) - Bm(i,j)) * dt)) ! version Tof : ablbord = Hcons_mass - Bm - Bmelt else !~ ! version cat ablbord(i,j)=hdot(i,j)-acc(i,j) ! on ne fond que ce qui est tombe + existant ablbord(i,j)=0. endif else ablbord(i,j)=0. end if end do end do ablbord_dtt(:,:) = ablbord_dtt(:,:) + ablbord(:,:) !cdc deplace dans bilan_flux_output_mod ablbord(:,:)=0. end subroutine ablation_bord