1 | module lect_clim_acc_T_ant_gen |
---|
2 | |
---|
3 | use module3D_phy |
---|
4 | use ablation_ann ! le module pdd base sur Tann et Tjuly |
---|
5 | use interface_input |
---|
6 | character(len=100) :: precip_file ! precipitations |
---|
7 | character(len=100) :: temp_annual_file ! temperature annuelles |
---|
8 | real :: coef_dens ! pour corriger si donnees en eq. eau |
---|
9 | logical :: temp_param ! si utilisation de temperature parametree |
---|
10 | |
---|
11 | contains |
---|
12 | |
---|
13 | subroutine input_climat_ref() |
---|
14 | |
---|
15 | namelist/climat_acc_T_gen/precip_file,coef_dens,temp_annual_file |
---|
16 | |
---|
17 | 428 format(A) |
---|
18 | rewind(num_param) ! pour revenir au debut du fichier param_list.dat |
---|
19 | read(num_param,climat_acc_T_gen) |
---|
20 | |
---|
21 | write(num_rep_42,428)'!___________________________________________________________' |
---|
22 | write(num_rep_42,428)'! module lect_clim_acc_T_ant_gen ' |
---|
23 | write(num_rep_42,climat_acc_T_gen) |
---|
24 | write(num_rep_42,428)'!___________________________________________________________' |
---|
25 | |
---|
26 | |
---|
27 | ! precipitation |
---|
28 | precip_file = trim(dirnameinp)//trim(precip_file) |
---|
29 | |
---|
30 | call lect_input(3,'precip',1,precip,precip_file,trim(dirnameinp)//trim(runname)//'.nc') |
---|
31 | !call lect_datfile(nx,ny,precip,1,precip_file) |
---|
32 | |
---|
33 | precip(:,:)=precip(:,:)*coef_dens |
---|
34 | acc(:,:)=precip(:,:) |
---|
35 | |
---|
36 | if ((trim(temp_annual_file).eq.'no').or.(trim(temp_annual_file).eq.'NO')) then |
---|
37 | temp_param=.true. |
---|
38 | else |
---|
39 | temp_param=.false. |
---|
40 | end if |
---|
41 | |
---|
42 | ! temperature en surface |
---|
43 | |
---|
44 | test_param: if (.not.temp_param) then |
---|
45 | temp_annual_file = trim(dirnameinp)//trim(temp_annual_file) |
---|
46 | |
---|
47 | |
---|
48 | call lect_input(3,'Tann',1,Tann,temp_annual_file,trim(dirnameinp)//trim(runname)//'.nc') |
---|
49 | !call lect_datfile(nx,ny,Tann,1,temp_annual_file) ! temperature annuelle |
---|
50 | |
---|
51 | else ! parametrisation de Fortuin pour la temperature annuelle. |
---|
52 | |
---|
53 | do j=1,ny |
---|
54 | do i=1,nx |
---|
55 | |
---|
56 | 7 if (s0(i,j).le.200.) then ! shelfs |
---|
57 | tann(i,j)=49.642-0.943*abs(ylat(i,j)) |
---|
58 | else if ((s0(i,j).gt.200.).and.(s0(i,j).lt.1500.)) then ! pente |
---|
59 | tann(i,j)=36.689-0.005102*s0(i,j)-0.725*abs(ylat(i,j)) |
---|
60 | else if (s0(i,j).ge.1500.) then ! plateau |
---|
61 | tann(i,j)=7.405-0.014285*s0(i,j)-0.180*abs(ylat(i,j)) |
---|
62 | endif |
---|
63 | end do |
---|
64 | end do |
---|
65 | end if test_param |
---|
66 | |
---|
67 | ta0(:,:)=tann(:,:) |
---|
68 | |
---|
69 | |
---|
70 | ! pour la temperature d'ete, idem parametrisation huybrechts |
---|
71 | do j=1,ny |
---|
72 | do i=1,nx |
---|
73 | |
---|
74 | tjuly(i,j)=tann(i,j)-17.65+0.00222*s0(i,j)& |
---|
75 | +0.40802*abs(ylat(i,j)) |
---|
76 | end do |
---|
77 | end do |
---|
78 | |
---|
79 | end subroutine input_climat_ref |
---|
80 | |
---|
81 | end module lect_clim_acc_T_ant_gen |
---|