1 | !> \file lakes-prescribed_mod-0.1.f90 |
---|
2 | !! Module pour determiner les lacs proglaciaires |
---|
3 | !< |
---|
4 | |
---|
5 | !> \namespace lakes_prescribed_mod |
---|
6 | !! Calcule le beta a partir de vitesses de bilan |
---|
7 | !! @note Les lacs sont imposes au cours du temps |
---|
8 | !! \author ... |
---|
9 | !! \date ... |
---|
10 | !! @note Used module |
---|
11 | !! @note - use module3D_phy |
---|
12 | !< |
---|
13 | |
---|
14 | module lakes_prescribed_mod |
---|
15 | |
---|
16 | |
---|
17 | ! les lacs proglaciaires sont imposes au cours du temps |
---|
18 | |
---|
19 | USE module3D_phy |
---|
20 | implicit none |
---|
21 | |
---|
22 | integer,parameter :: nb_lakes=5 !< nombre de lacs maxi |
---|
23 | integer :: i_lake !< index des lacs |
---|
24 | integer, dimension(nx,ny) :: lake !< les lacs sont tagges |
---|
25 | real,dimension(5) :: level_lakes !< les niveaux des lacs |
---|
26 | character (len=20) :: fil_lakes !< nom du fichier lacs |
---|
27 | |
---|
28 | contains |
---|
29 | |
---|
30 | subroutine input_lakes |
---|
31 | |
---|
32 | namelist/lakes/fil_lakes,level_lakes |
---|
33 | |
---|
34 | ! lecture par namelist |
---|
35 | !--------------------- |
---|
36 | |
---|
37 | ! formats pour les ecritures dans 42 |
---|
38 | 428 format(A) |
---|
39 | |
---|
40 | rewind(num_param) ! pour revenir au debut du fichier param_list.dat |
---|
41 | read(num_param,lakes) |
---|
42 | |
---|
43 | write(num_rep_42,428)'!___________________________________________________________' |
---|
44 | write(num_rep_42,428) '&lakes ! module lakes_prescribed_mod' |
---|
45 | write(num_rep_42,'(A,A)') 'fil_lakes =', fil_lakes |
---|
46 | write(num_rep_42,'(A,5(f0.1,","))') 'level_lakes =', level_lakes |
---|
47 | write(num_rep_42,*)'/' |
---|
48 | write(num_rep_42,428) '! lac 2 -> Komi, lac 3-> Siberian, on ignore qui est le lac 1' |
---|
49 | write(num_rep_42,428) '! 0 pas de lac . Faire attention au nombre de lacs et nb_lakes' |
---|
50 | write(num_rep_42,*) |
---|
51 | |
---|
52 | end subroutine input_lakes |
---|
53 | |
---|
54 | subroutine lake_to_slv |
---|
55 | |
---|
56 | ! inclut les lacs dans le tableau sealevel_2d des niveaux de flottaison |
---|
57 | |
---|
58 | sealevel_2d(:,:)=sealevel |
---|
59 | |
---|
60 | ! VOIR COMMENT ACTIVER-DESACTIVER LES LACS EN FONCTION DU TEMPS |
---|
61 | |
---|
62 | do j=1,ny |
---|
63 | do i=1,nx |
---|
64 | do i_lake=1,nb_lakes |
---|
65 | if (lake(i,j).eq.i_lake) then |
---|
66 | sealevel_2d(i,j)=max(level_lakes(i_lake),Bsoc(i,j)) |
---|
67 | end if |
---|
68 | end do |
---|
69 | end do |
---|
70 | end do |
---|
71 | |
---|
72 | end subroutine lake_to_slv |
---|
73 | |
---|
74 | end module lakes_prescribed_mod |
---|