source: branches/GRISLIv3/SOURCES/ablation_bord.f90 @ 467

Last change on this file since 467 was 446, checked in by aquiquet, 9 months ago

Cleaning branch: use only statement in module3D

File size: 2.1 KB
Line 
1!> \file ablation_bord.f90
2!! Clacul de l'ablation sur le bord
3!<
4     
5
6!> SUBROUTINE: Ablation_bord
7!! Calcule l'ablation pour les points du bord
8!! \author ...
9!! \date ....
10!! @note cas des bords de calotte : un point du bord peut perdre en plus la glace
11!! amenée par l'écoulement.
12!! @note Calcule l'ablation pour les points du bord avec H=0 mais apport par l'amont
13!! diagnostic pour la fermeture du bilan d'eau
14!! par convention ablation negative dans la zone d'ablation
15!! @note Used modules:
16!! @note  - use module3D_phy
17!>
18
19subroutine ablation_bord
20
21
22  use module3D_phy, only: ice,ablbord,bmelt,bm,dt,ablbord_dtt
23  use geography, only: nx,ny
24  implicit none
25  integer :: ip1,im1,jp1,jm1   ! pour chercher les voisins
26  integer :: somm
27  integer :: i,j
28
29  ! Dans les zones ou le calcul icethick a donne un H negatif : ablbord=H
30
31  ! pour être au bord, il suffit que la somme des ice voisins soit > 0
32  do j=1,ny
33     do i=1,nx
34        if (ice(i,j).eq.0) then   ! seulment pour les noeuds sans glace
35           im1=max(i-1,1)
36           jm1=max(j-1,1)
37           ip1=min(i+1,nx)
38           jp1=min(j+1,ny)
39
40           somm=ice(ip1,j)+ice(im1,j)+ice(i,jp1)+ice(i,jm1)
41           if (somm.gt.0.and.(ablbord(i,j).LT.0.)) then                               ! voisins englaces
42              !~ !         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
43              !~ !            ablbord(i,j)= ablbord(i,j) - (Acc(i,j) * dt)     !  Ablvrai=bmpdd-Acc-Hcalc/dt
44              !~             if (ablbord(i,j).LT.0..and.front(i,j).LE.4.and.front(i,j).GE.0) then
45              ablbord(i,j)= max(0.,ablbord(i,j) + ((Bmelt(i,j) - Bm(i,j)) * dt))  ! version Tof : ablbord = Hcons_mass - Bm - Bmelt
46
47           else
48              !~ ! version cat            ablbord(i,j)=hdot(i,j)-acc(i,j)   ! on ne fond que ce qui est tombe + existant
49              ablbord(i,j)=0.
50           endif
51        else
52           ablbord(i,j)=0.
53        end if
54     end do
55  end do
56
57  ablbord_dtt(:,:) = ablbord_dtt(:,:) + ablbord(:,:)
58
59  !cdc deplace dans bilan_flux_output_mod ablbord(:,:)=0.
60
61end subroutine ablation_bord
Note: See TracBrowser for help on using the repository browser.