source: branches/iLoveclim/SOURCES/Hemin40_files/lect-hemin40_mod.f90 @ 52

Last change on this file since 52 was 52, checked in by dumas, 8 years ago

Merge branche iLOVECLIM sur rev 51

File size: 5.5 KB
Line 
1module lect_topo_hemin40
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! formats pour les ecritures dans 42
27428 format(A)
28  write(num_rep_42,428)'!___________________________________________________________' 
29  write(num_rep_42,428) '&topo_file                                  ! nom du bloc '
30  write(num_rep_42,*)
31  write(num_rep_42,'(A,A)') 'topo_ref = ', topo_ref
32  write(num_rep_42,'(A,A)') 'topo_dep = ', topo_dep
33  write(num_rep_42,'(A,A)') 'grid_topo =', grid_topo
34  write(num_rep_42,'(A,A)') 'ghf_fich = ', ghf_fich
35  write(num_rep_42,*)'/'                     
36  write(num_rep_42,428) '! topo_ref= topo ref isostasie'
37  write(num_rep_42,428) '! topo_dep= topo de depart'
38  write(num_rep_42,428) '! grid_topo : fichier i,j,x,y,lon,lat'
39  write(num_rep_42,428) '! 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!write(num_rep_42,*) 'file1 = ', file1
48!write(num_rep_42,*) 'file2 = ', file2
49!write(num_rep_42,*)'/'
50!write(num_rep_42,428) '! file1 : topo de depart'
51!write(num_rep_42,428) '! file2 : topo de reference'             
52!write(num_rep_42,*)
53
54!====================================== La reponse est 42 ===========
55! write(42,*)
56! write(42,*)' Fichiers en entree'
57! write(42,*)'----------------------'
58!====================================================================
59
60! dans param :
61!      file1=TRIM(DIRNAMEINP)//'topo-21k.g40'     ! topo LGM ICE_5G (1=topo de depart)
62!      file1=TRIM(DIRNAMEINP)//'hemin2.g40'
63!      file2=TRIM(DIRNAMEINP)//'hemin2.g40'       ! topo actuelle
64!      write(42,*) 'topo de depart', file1
65!      write(42,*) 'topo reference', file2
66
67     
68!!$! lecture adaptee aux fichiers intercomparaison EISMINT
69!!$       nxx=nx
70!!$       nyy=ny
71
72!!$!     lecture de la topo actuelle
73!!$!     ---------------------------
74!!$     open (20,file=TRIM(DIRNAMEINP)//file2,status='old')
75!!$       
76!!$     read(20,'(A80)') TITRE
77!!$     read(20,*) NI,NJ,NXX,NYY,STEP
78!!$     read(20,*)
79!!$         do J=1,ny
80!!$          do I=1,nx
81!!$             read (20,*)  S0(I,J),H0(I,J),BSOC0(I,J)
82!!$             S0(i,j)=max(S0(i,j),0.)
83!!$          end do
84!!$        end do
85!!$     close(20)
86!!$
87!!$     
88!!$!     lecture de la topo de depart
89!!$!     ---------------------------
90!!$     open (20,file=TRIM(DIRNAMEINP)//file1,status='old')
91!!$!         open (20,file='../INPUT-DATA/hemin.g50')
92!!$     read(20,'(A80)') TITRE
93!!$     read(20,*) NI,NJ,NXX,NYY,STEP
94!!$     read(20,*)
95!!$         do J=1,ny
96!!$          do I=1,nx
97!!$             read (20,*) S(I,J),H(I,J),BSOC(I,J)
98!!$          end do
99!!$        end do
100!!$     close(20)
101
102
103!     lecture de la topo de référence
104    call lect_input(1,'Bsoc',1,Bsoc0,topo_ref,file_ncdf)    ! socle
105    call lect_input(1,'S',1,S0,topo_ref,file_ncdf)          ! surface
106    call lect_input(1,'H',1,H0,topo_ref,file_ncdf)          ! epaisseur
107
108!     lecture de la topo de départ
109    call lect_input(1,'Bsoc',1,Bsoc,topo_dep,file_ncdf)    ! socle
110    call lect_input(1,'S',1,S,topo_dep,file_ncdf)          ! surface
111    call lect_input(1,'H',1,H,topo_dep,file_ncdf)          ! epaisseur
112
113
114! calcul des courbures du socle
115     call courbure(nx,ny,dx,Bsoc,bidon(:,:,1),bidon(:,:,2),bidon(:,:,3), &
116          bidon(:,:,4),socle_cry,bidon(:,:,5))
117     socle_cry(:,:)=socle_cry(:,:)*dx*dx
118
119! lecture des coordonnées geographiques
120
121!    filin=TRIM(DIRNAMEINP)//grid_topo
122
123! les coordonnees sont calculees en °dec avec GMT,
124! les longitudes sont comprises entre -180 et +180 (negative a l'Ouest de
125! Greenwich et positive a l'Est)
126    open(unit=2004,file=grid_topo,iostat=ios)
127    do k=1,nx*ny
128       read(2004,*) i,j,XCC(i,j),YCC(i,j),XLONG(i,j),YLAT(i,j)
129    enddo
130    close(2004)
131    write(42,*) 'fichier grille: ', filin
132             
133    xmin=xcc(1,1)/1000.
134    ymin=ycc(1,1)/1000.
135    xmax=xcc(nx,ny)/1000.
136    ymax=ycc(nx,ny)/1000.
137                         
138! lecture du flux geothermique de Shapiro
139!    open(88,file=TRIM(DIRNAMEINP)//'ijphi_hemin40.dat')
140!    open(88,file=ghf_fich)
141
142!!$    write(42,*) 'flux geothermique Shapiro : ',TRIM(DIRNAMEINP)//'ijphi_hemin40.dat'
143!!$    do k=1,nx*ny
144!!$       read(88,*) i,j,ghf(i,j)
145!!$    end do
146!!$    close(88)
147
148    call lect_input(1,'ghf',1,ghf,ghf_fich,file_ncdf)
149
150! pour passer les flux des mW/m2 au J/m2/an     
151    ghf(:,:)=-SECYEAR/1000.*ghf(:,:)
152!     write(42,*) 'flux geothermique fixe : 55 mW/m2'
153!     ghf(:,:)=-SECYEAR/1000.*55. !B6norcg2
154
155! print*,'lect topo'
156! print*,'shb',S(101,91),H(101,91),B(101,91)
157! print*,'shb0',S0(101,91),H0(101,91),BSOC0(101,91)
158!    Initialisation du Masque
159!------------------------------------------------
160! pour l'Hemisphere Nord mko vrai partout (version 2006)
161    MK0(:,:)=1
162
163!------------------------------------------------     
164end subroutine input_topo
165
166end module lect_topo_hemin40
Note: See TracBrowser for help on using the repository browser.