source: trunk/SOURCES/Hemin15_files/lect-hemin15_mod.f90 @ 243

Last change on this file since 243 was 224, checked in by dumas, 6 years ago

format of the parameter file created by the code, possibility to use it in reading

File size: 3.1 KB
Line 
1module lect_topo_hemin15
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
23  namelist/topo_file/topo_ref,topo_dep,grid_topo,ghf_fich
24  rewind(num_param)        ! pour revenir au debut du fichier param_list.dat
25  read(num_param,topo_file)
26
27  write(num_rep_42,'(A)')'!___________________________________________________________' 
28  write(num_rep_42,'(A)') '&topo_file                                  ! nom du bloc '
29  write(num_rep_42,*)
30  write(num_rep_42,'(A,A,A)') 'topo_ref = "',trim(topo_ref),'"'
31  write(num_rep_42,'(A,A,A)') 'topo_dep = "',trim(topo_dep),'"'
32  write(num_rep_42,'(A,A,A)') 'grid_topo = "',trim(grid_topo),'"'
33  write(num_rep_42,'(A,A,A)') 'ghf_fich = "',trim(ghf_fich),'"'
34  write(num_rep_42,*)'/'                     
35  write(num_rep_42,'(A)') '! topo_ref= topo ref isostasie'
36  write(num_rep_42,'(A)') '! topo_dep= topo de depart'
37  write(num_rep_42,'(A)') '! grid_topo : fichier i,j,x,y,lon,lat'
38  write(num_rep_42,'(A)') '! ghf_fich  : fichier flux geothermique' 
39  write(num_rep_42,*)
40
41  topo_ref=trim(dirnameinp)//trim(topo_ref) 
42  topo_dep=trim(dirnameinp)//trim(topo_dep) 
43  grid_topo=trim(dirnameinp)//trim(grid_topo)
44  ghf_fich=trim(dirnameinp)//trim(ghf_fich)
45
46! lecture de la topo de référence
47  call lect_input(1,'Bsoc',1,Bsoc0,topo_ref,file_ncdf)    ! socle
48  call lect_input(1,'S',1,S0,topo_ref,file_ncdf)          ! surface
49  call lect_input(1,'H',1,H0,topo_ref,file_ncdf)          ! epaisseur
50
51! lecture de la topo de départ
52  call lect_input(1,'Bsoc',1,Bsoc,topo_dep,file_ncdf)    ! socle
53  call lect_input(1,'S',1,S,topo_dep,file_ncdf)          ! surface
54  call lect_input(1,'H',1,H,topo_dep,file_ncdf)          ! epaisseur
55
56
57! calcul des courbures du socle
58!  call courbure(nx,ny,dx,Bsoc,bidon(:,:,1),bidon(:,:,2),bidon(:,:,3), &
59!          bidon(:,:,4),socle_cry,bidon(:,:,5))
60!  socle_cry(:,:)=socle_cry(:,:)*dx*dx
61
62! lecture des coordonnées geographiques
63! les coordonnees sont calculees en °dec avec GMT,
64! les longitudes sont comprises entre -180 et +180 (negative a l'Ouest de
65! Greenwich et positive a l'Est)
66  open(unit=2004,file=grid_topo,iostat=ios)
67  do k=1,nx*ny
68    read(2004,*) i,j,XCC(i,j),YCC(i,j),XLONG(i,j),YLAT(i,j)
69  enddo
70  close(2004)
71             
72  xmin=xcc(1,1)/1000.
73  ymin=ycc(1,1)/1000.
74  xmax=xcc(nx,ny)/1000.
75  ymax=ycc(nx,ny)/1000.
76                 
77  call lect_input(1,'ghf',1,ghf,ghf_fich,file_ncdf)
78
79! pour passer les flux des mW/m2 au J/m2/an     
80  ghf(:,:)=-SECYEAR/1000.*ghf(:,:)
81
82!    Initialisation du Masque
83!------------------------------------------------
84! pour l'Hemisphere Nord mko vrai partout (version 2006)
85  MK0(:,:)=1
86
87!------------------------------------------------
88end subroutine input_topo
89
90end module lect_topo_hemin15
Note: See TracBrowser for help on using the repository browser.