module lect_topo_hemin40 use module3D_phy character(len=50) :: FILE1 character(len=50) :: FILE2 character(len=80) :: filin real, dimension(nx,ny,5) :: bidon ! pour l'appel a courbure contains subroutine input_topo namelist/topo_file/file1,file2 rewind(num_param) ! pour revenir au debut du fichier param_list.dat read(num_param,topo_file) ! formats pour les ecritures dans 42 428 format(A) write(num_rep_42,428)'!___________________________________________________________' write(num_rep_42,428) '&topo_file ! nom du bloc ' write(num_rep_42,*) write(num_rep_42,*) 'file1 = ', file1 write(num_rep_42,*) 'file2 = ', file2 write(num_rep_42,*)'/' write(num_rep_42,428) '! file1 : topo de depart' write(num_rep_42,428) '! file2 : topo de reference' write(num_rep_42,*) !====================================== La reponse est 42 =========== ! write(42,*) ! write(42,*)' Fichiers en entree' ! write(42,*)'----------------------' !==================================================================== ! dans param : ! file1=TRIM(DIRNAMEINP)//'topo-21k.g40' ! topo LGM ICE_5G (1=topo de depart) ! file1=TRIM(DIRNAMEINP)//'hemin2.g40' ! file2=TRIM(DIRNAMEINP)//'hemin2.g40' ! topo actuelle ! write(42,*) 'topo de depart', file1 ! write(42,*) 'topo reference', file2 ! lecture adaptee aux fichiers intercomparaison EISMINT nxx=nx nyy=ny ! lecture de la topo actuelle ! --------------------------- open (20,file=TRIM(DIRNAMEINP)//file2,status='old') read(20,'(A80)') TITRE read(20,*) NI,NJ,NXX,NYY,STEP read(20,*) do J=1,ny do I=1,nx read (20,*) S0(I,J),H0(I,J),BSOC0(I,J) S0(i,j)=max(S0(i,j),0.) end do end do close(20) ! lecture de la topo de depart ! --------------------------- open (20,file=TRIM(DIRNAMEINP)//file1,status='old') ! open (20,file='../INPUT-DATA/hemin.g50') read(20,'(A80)') TITRE read(20,*) NI,NJ,NXX,NYY,STEP read(20,*) do J=1,ny do I=1,nx read (20,*) S(I,J),H(I,J),BSOC(I,J) end do end do close(20) ! calcul des courbures du socle call courbure(nx,ny,dx,Bsoc,bidon(:,:,1),bidon(:,:,2),bidon(:,:,3), & bidon(:,:,4),socle_cry,bidon(:,:,5)) socle_cry(:,:)=socle_cry(:,:)*dx*dx ! lecture des coordonnées geographiques filin=TRIM(DIRNAMEINP)//'coord-nord-40km.dat' ! les coordonnees sont calculees en °dec avec GMT, ! les longitudes sont comprises entre -180 et +180 (negative a l'Ouest de ! Greenwich et positive a l'Est) open(unit=2004,file=filin,iostat=ios) do k=1,nx*ny read(2004,*) i,j,XCC(i,j),YCC(i,j),XLONG(i,j),YLAT(i,j) enddo close(2004) write(42,*) 'fichier grille: ', filin xmin=xcc(1,1)/1000. ymin=ycc(1,1)/1000. xmax=xcc(nx,ny)/1000. ymax=ycc(nx,ny)/1000. ! lecture du flux geothermique de Shapiro open(88,file=TRIM(DIRNAMEINP)//'ijphi_hemin40.dat') write(42,*) 'flux geothermique Shapiro : ',TRIM(DIRNAMEINP)//'ijphi_hemin40.dat' do k=1,nx*ny read(88,*) i,j,ghf(i,j) ! print*, i,j,ghf(i,j) end do close(88) ! pour passer les flux des mW/m2 au J/m2/an ghf(:,:)=-SECYEAR/1000.*ghf(:,:) ! write(42,*) 'flux geothermique fixe : 55 mW/m2' ! ghf(:,:)=-SECYEAR/1000.*55. !B6norcg2 ! print*,'lect topo' ! print*,'shb',S(101,91),H(101,91),B(101,91) ! print*,'shb0',S0(101,91),H0(101,91),BSOC0(101,91) ! Initialisation du Masque !------------------------------------------------ ! pour l'Hemisphere Nord mko vrai partout (version 2006) MK0(:,:)=1 !------------------------------------------------ end subroutine input_topo end module lect_topo_hemin40