[4] | 1 | !> \file lect-Ant_clim_CISM_45_dat.f90 |
---|
| 2 | !!Module pour la lecture du climat |
---|
| 3 | !< |
---|
| 4 | |
---|
| 5 | !> \namespace lect_clim_act_ant_45 |
---|
| 6 | !! Module pour la lecture du climat |
---|
| 7 | !! \author ... |
---|
| 8 | !! \date ... |
---|
| 9 | !! @note Used module |
---|
| 10 | !! @note - use module3D_phy |
---|
| 11 | !! @note - use ablation_ann |
---|
| 12 | !< |
---|
| 13 | |
---|
| 14 | module lect_clim_act_ant_45 |
---|
| 15 | |
---|
| 16 | use module3D_phy |
---|
| 17 | use ablation_ann ! le module pdd base sur Tann et Tjuly |
---|
| 18 | use interface_input |
---|
| 19 | character(len=100) :: precip_file ! precipitations |
---|
| 20 | |
---|
| 21 | contains |
---|
| 22 | |
---|
| 23 | subroutine input_climat_ref() |
---|
| 24 | |
---|
| 25 | namelist/climat_CISM_45/precip_file |
---|
| 26 | |
---|
| 27 | 428 format(A) |
---|
| 28 | rewind(num_param) ! pour revenir au debut du fichier param_list.dat |
---|
| 29 | read(num_param,climat_CISM_45) |
---|
| 30 | |
---|
| 31 | write(num_rep_42,428)'!___________________________________________________________' |
---|
| 32 | write(num_rep_42,428)'! module lect_topo_ant_CISM ' |
---|
| 33 | write(num_rep_42,climat_CISM_45) |
---|
| 34 | write(num_rep_42,428)'!___________________________________________________________' |
---|
| 35 | |
---|
| 36 | |
---|
| 37 | precip_file = trim(dirnameinp)//trim(precip_file) |
---|
| 38 | |
---|
| 39 | |
---|
| 40 | call lect_input(3,'precip',1,precip,precip_file,trim(dirnameinp)//trim(runname)//'.nc') |
---|
| 41 | !call lect_datfile(nx,ny,precip,1,precip_file) ! precipitation |
---|
| 42 | |
---|
| 43 | precip(:,:)=precip(:,:)/0.91 |
---|
| 44 | acc(:,:)=precip(:,:) |
---|
| 45 | |
---|
| 46 | |
---|
| 47 | ! temperature en surface : |
---|
| 48 | ! parametrisation de Fortuin pour la temperature annuelle. |
---|
| 49 | do j=1,ny |
---|
| 50 | do i=1,nx |
---|
| 51 | |
---|
| 52 | 7 if (s0(i,j).le.200.) then ! shelfs |
---|
| 53 | tann(i,j)=49.642-0.943*abs(ylat(i,j)) |
---|
| 54 | else if ((s0(i,j).gt.200.).and.(s0(i,j).lt.1500.)) then ! pente |
---|
| 55 | tann(i,j)=36.689-0.005102*s0(i,j)-0.725*abs(ylat(i,j)) |
---|
| 56 | else if (s0(i,j).ge.1500.) then ! plateau |
---|
| 57 | tann(i,j)=7.405-0.014285*s0(i,j)-0.180*abs(ylat(i,j)) |
---|
| 58 | endif |
---|
| 59 | |
---|
| 60 | ta0(i,j)=tann(i,j) |
---|
| 61 | |
---|
| 62 | ! pour la temperature d'ete, idem parametrisation huybrechts |
---|
| 63 | tjuly(i,j)=tann(i,j)-17.65+0.00222*s0(i,j)& |
---|
| 64 | +0.40802*abs(ylat(i,j)) |
---|
| 65 | end do |
---|
| 66 | end do |
---|
| 67 | |
---|
| 68 | end subroutine input_climat_ref |
---|
| 69 | |
---|
| 70 | end module lect_clim_act_ant_45 |
---|