source: branches/iLoveclim/SOURCES/bmelt-grounded.f90 @ 244

Last change on this file since 244 was 244, checked in by aquiquet, 5 years ago

Grisli-iloveclim branch merged to trunk at revision 243

File size: 2.3 KB
Line 
1!> \file bmelt-grounded.f90
2!! Calcule de la fusion basale et le type de base pour la partie posee
3!<
4
5!> SUBROUTINE: bmelt_grounded
6!! Calcule la fusion basale et le type de base pour la partie posee.
7!! \author ...
8!! \date ...
9!! @note cette routine est appelee quelle que soit le type de fusion sous les ice shelves
10!! c'est pour cela qu'elle n'est pas dans bmelt-ant-regions_mod.f90
11!! @note Used modules:
12!! @note   - use module3D_phy
13!! @note   - use param_phy_mod
14!! @note   - use Icetemp_declar
15!<
16
17subroutine bmelt_grounded
18
19  use module3d_phy
20  use param_phy_mod
21  use icetemp_declar
22
23if (itracebug.eq.1)  call tracebug('entree dans  bmelt-grounded')
24
25  do j=2,ny-1
26     do i=2,nx-1
27
28        noflot :   if (.not.flot(i,j)) then    ! partie posée
29
30           temper_gen:   if ((H(i,j).gt.10.).and.(ibase(i,j).ne.1)) then
31
32              if (ncond.eq.1) then   !  avec socle
33                 bmelt(i,j)=(ct(i,j,nz)*(T(i,j,nz-1)-T(i,j,nz))/dee/H(i,j) &
34                      -cm*(T(i,j,nz)-T(i,j,nz+1))/dzm+phid(i,j))/ro/cl 
35              else                   ! sans socle
36                 bmelt(i,j)=(ct(i,j,nz)*(T(i,j,nz-1)-T(i,j,nz))/dee/H(i,j) &
37                      +(phid(i,j)-ghf(i,j)))/ro/cl
38              endif
39
40
41              if (bmelt(i,j).ge.0.) then    !  fusion base 2
42                 ibase(i,j)=2
43
44              else                          !   regel 
45
46                 !              il reste de l'eau -> regel et on reste en base 2
47                 if (hwater(i,j).gt.-bmelt(i,j)*dtt) then
48                    ibase(i,j)=2
49
50                    !                 passage a base froide
51                 else if (ibase(i,j).eq.3) then
52                    ibase(i,j)=4
53                    bmelt(i,j)=0.
54                    hwater(i,j)=0.
55
56                    !                 regel mais il ne reste pas assez d'eau
57                 else if (hwater(i,j).le.-bmelt(i,j)*dtt) then
58                    ibase(i,j)=3
59                 endif           !          fin du test si regel 
60
61              endif              !          fin du test fusion ou regel glace posee
62
63           else                 ! glace tres fine ou ibase=1 
64              bmelt(i,j)=0.
65           endif temper_gen
66
67           bmelt(i,j)=min(bmelt(i,j),15.0)
68
69        endif noflot
70
71     end do
72  end do
73
74  return
75end subroutine bmelt_grounded
76
77   
Note: See TracBrowser for help on using the repository browser.