source: trunk/SOURCES/Alps_files/lect-alps_mod.f90 @ 356

Last change on this file since 356 was 356, checked in by aquiquet, 2 years ago

Adding new geometries: the Alps at 1 and 2km

File size: 3.2 KB
Line 
1module lect_topo_alps
2
3  use module3D_phy
4  use interface_input
5  use io_netcdf_grisli
6
7  implicit none
8 
9  character(len=100) :: topo_dep       ! Topo de départ
10  character(len=100) :: topo_ref       ! Topo de référence
11  character(len=100) :: grid_topo      ! fichier grille
12  character(len=100) :: ghf_fich       ! fichier grille
13  character(len=80) :: filin
14  real, dimension(nx,ny,5) :: bidon          ! pour l'appel a courbure
15  character(len=100) :: file_ncdf      !< fichier netcdf issue des fichiers .dat
16
17contains
18 
19subroutine input_topo
20
21  integer :: ios
22  real, dimension(nx,ny) :: varloc
23 
24  namelist/topo_file/topo_ref,topo_dep,grid_topo !,ghf_fich
25  rewind(num_param)        ! pour revenir au debut du fichier param_list.dat
26  read(num_param,topo_file)
27
28  write(num_rep_42,'(A)')'!___________________________________________________________' 
29  write(num_rep_42,'(A)') '&topo_file                                  ! nom du bloc '
30  write(num_rep_42,*)
31  write(num_rep_42,'(A,A,A)') 'topo_ref = "',trim(topo_ref),'"'
32  write(num_rep_42,'(A,A,A)') 'topo_dep = "',trim(topo_dep),'"'
33  write(num_rep_42,'(A,A,A)') 'grid_topo = "',trim(grid_topo),'"'
34  !write(num_rep_42,'(A,A,A)') 'ghf_fich = "',trim(ghf_fich),'"'
35  write(num_rep_42,*)'/'                     
36  write(num_rep_42,'(A)') '! topo_ref= topo ref isostasie'
37  write(num_rep_42,'(A)') '! topo_dep= topo de depart'
38  write(num_rep_42,'(A)') '! grid_topo : fichier i,j,x,y,lon,lat'
39  write(num_rep_42,'(A)') '! ghf_fich  : fichier flux geothermique' 
40  write(num_rep_42,*)
41
42  topo_ref=trim(dirnameinp)//trim(topo_ref) 
43  topo_dep=trim(dirnameinp)//trim(topo_dep) 
44  grid_topo=trim(dirnameinp)//trim(grid_topo)
45  !ghf_fich=trim(dirnameinp)//trim(ghf_fich)
46
47
48
49!     lecture de la topo de référence
50  call lect_input(1,'Bsoc',1,varloc,topo_ref,file_ncdf)    ! socle
51  Bsoc0(:,:)=varloc(:,:)
52  call lect_input(1,'S',1,varloc,topo_ref,file_ncdf)          ! surface
53  S0(:,:)=varloc(:,:)
54  call lect_input(1,'H',1,varloc,topo_ref,file_ncdf)          ! epaisseur
55  H0(:,:)=varloc(:,:)
56 
57!     lecture de la topo de départ
58  call lect_input(1,'Bsoc',1,varloc,topo_dep,file_ncdf)    ! socle
59  Bsoc(:,:)=varloc(:,:)
60  call lect_input(1,'S',1,varloc,topo_dep,file_ncdf)          ! surface
61  S(:,:)=varloc(:,:)
62  call lect_input(1,'H',1,varloc,topo_dep,file_ncdf)          ! epaisseur
63  H(:,:)=varloc(:,:)
64
65
66! les coordonnees sont calculees en °dec avec GMT,
67! les longitudes sont comprises entre -180 et +180 (negative a l'Ouest de
68! Greenwich et positive a l'Est)
69  open(unit=2004,file=grid_topo,iostat=ios)
70  do k=1,nx*ny
71     read(2004,*) i,j,XCC(i,j),YCC(i,j),XLONG(i,j),YLAT(i,j)
72  enddo
73  close(2004)
74
75  where(xlong(:,:).lt.0.) xlong(:,:)=xlong(:,:)+360
76
77  xmin=xcc(1,1)/1000.
78  ymin=ycc(1,1)/1000.
79  xmax=xcc(nx,ny)/1000.
80  ymax=ycc(nx,ny)/1000.
81
82  !!call lect_input(1,'ghf',1,ghf,ghf_fich,file_ncdf)
83
84! pour passer les flux des mW/m2 au J/m2/an     
85  ghf(:,:)=-SECYEAR/1000.* 55 !ghf(:,:)
86!     write(42,*) 'flux geothermique fixe : 55 mW/m2'
87!     ghf(:,:)=-SECYEAR/1000.*55. !B6norcg2
88
89
90
91
92!    Initialisation du Masque
93!------------------------------------------------
94! pour l'Hemisphere Nord mko vrai partout (version 2006)
95  MK0(:,:)=1
96
97!------------------------------------------------     
98end subroutine input_topo
99
100end module lect_topo_alps
Note: See TracBrowser for help on using the repository browser.