source: trunk/SOURCES/Eurasie40_files/lect-eurasie_mod.f90 @ 111

Last change on this file since 111 was 4, checked in by dumas, 10 years ago

initial import GRISLI trunk

File size: 3.1 KB
Line 
1!> \file lect-eurasie_mod.f90
2!! Module pour la lecture de la topo
3!<
4
5!> \namespace  lect_topo_eurasie
6!! Lecture de la topo
7!! \author ...
8!! \date ...
9!! @note Used module
10!! @note   - use module3D_phy
11!<
12
13module lect_topo_eurasie
14
15  use module3D_phy
16 
17    character(len=100) :: topo_dep       !< Topo de départ
18    character(len=100) :: topo_ref       !< Topo de référence
19    character(len=100) :: filin
20real,dimension(nx,ny) ::  xcc , ycc      !< coordeonnes en m
21
22contains
23 
24subroutine input_topo
25
26namelist/topo/topo_ref,topo_dep
27
28428 format(A)
29
30rewind(num_param)        ! pour revenir au debut du fichier param_list.dat
31read(num_param,topo)
32
33write(num_rep_42,428)'!___________________________________________________________' 
34write(num_rep_42,428) '&topo                            ! module lect_topo_eurasie'
35write(num_rep_42,'(A,A)')   'topo_ref =', topo_ref
36write(num_rep_42,'(A,A)')   'topo_dep =', topo_dep         
37write(num_rep_42,*)'/'                     
38write(num_rep_42,428) '! topo_ref= topo actuelle'
39write(num_rep_42,*)
40
41
42topo_ref=trim(dirnameinp)//trim(topo_ref) 
43topo_dep=trim(dirnameinp)//trim(topo_dep) 
44
45!     lecture de la topo de référence
46!     -------------------------------
47! Cette topo sert a calculer le socle de reference pour l'isostasie
48! voir init_iso et a avoir une surface de reference pour les temperatures
49
50     open (20,file=topo_ref)
51       
52         do J=1,ny 
53          do I=1,nx
54            read (20,*) S0(I,J),H0(I,J),Bsoc0(I,J)
55
56             S0(i,j)=max(S0(i,j),0.)   ! pour être au niveau des mers
57
58          end do
59        end do
60     close(20)
61
62     
63!     lecture de la topo de depart
64!     ---------------------------
65     open (20,file=topo_dep)
66     
67         do J=1,ny 
68          do I=1,nx
69              read (20,*) S(I,J),H(I,J),BSOC(I,J)
70          end do
71        end do
72     close(20)
73
74
75!--Eurasie 40 --------------------------masque de glace pour enlever le Groenland
76! si mk0=-1 on ne change pas l'epaisseur, mk0=0 -> sans glace
77
78      do j=3,ny-2
79         do i=3,nx-2
80            mk0(i,j)=1
81            if ((i.lt.25).and.(j.gt.35)) mk0(i,j)=-1
82         end do
83      end do
84
85
86     
87! lecture des coordonnées geographiques
88
89    filin=TRIM(DIRNAMEINP)//'coord-'//geoplace//'.dat'
90
91! les coordonnees sont calculees en °dec avec GMT,
92! les longitudes sont comprises entre -180 et +180 (negative a l'Ouest de
93! Greenwich et positive a l'Est)
94
95open(unit=2004,file=filin,iostat=ios)
96do k=1,nx*ny
97   read(2004,*) i,j,xcc(i,j),ycc(i,j),xlong(i,j),ylat(i,j)
98enddo
99close(2004)
100write(42,*) 'fichier grille: ', filin
101                                       
102xmin=xcc(1,1)/1000.
103ymin=ycc(1,1)/1000.
104xmax=xcc(nx,ny)/1000.
105ymax=ycc(nx,ny)/1000.
106                       
107! lecture du flux geothermique de Shapiro
108      open(88,file=(TRIM(DIRNAMEINP)//'ijphi_'//geoplace//'.dat'))
109
110      write(42,*) 'flux geothermique Shapiro :', (TRIM(DIRNAMEINP)//'ijphi_'//geoplace//'.dat')
111
112      do k=1,nx*ny
113         read(88,*) i,j,ghf(i,j)
114      end do
115      close(88)
116! pour passer les flux des mW/m2 au J/m2/an     
117      ghf(:,:)=-SECYEAR/1000.*ghf(:,:)
118!------------------------------------------------     
119end subroutine input_topo
120
121
122end module lect_topo_eurasie
Note: See TracBrowser for help on using the repository browser.