- Timestamp:
- 02/23/16 15:30:13 (8 years ago)
- Location:
- branches/iLoveclim
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/iLoveclim
-
branches/iLoveclim/SOURCES/Hemin40_files/lect-hemin40_mod.f90
r27 r52 2 2 3 3 use module3D_phy 4 use interface_input 5 use io_netcdf_grisli 6 7 implicit none 4 8 5 character(len=50) :: FILE1 6 character(len=50) :: FILE2 7 character(len=80) :: filin 8 real, dimension(nx,ny,5) :: bidon ! pour l'appel a courbure 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 9 16 10 17 contains … … 12 19 subroutine input_topo 13 20 14 namelist/topo_file/file1,file2 15 rewind(num_param) ! pour revenir au debut du fichier param_list.dat 16 read(num_param,topo_file) 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) 17 26 ! formats pour les ecritures dans 42 18 27 428 format(A) 19 write(num_rep_42,428)'!___________________________________________________________' 20 write(num_rep_42,428) '&topo_file ! nom du bloc ' 21 write(num_rep_42,*) 22 write(num_rep_42,*) 'file1 = ', file1 23 write(num_rep_42,*) 'file2 = ', file2 24 write(num_rep_42,*)'/' 25 write(num_rep_42,428) '! file1 : topo de depart' 26 write(num_rep_42,428) '! file2 : topo de reference' 27 write(num_rep_42,*) 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,*) 28 53 29 54 !====================================== La reponse est 42 =========== … … 41 66 42 67 43 ! lecture adaptee aux fichiers intercomparaison EISMINT44 nxx=nx45 nyy=ny68 !!$! lecture adaptee aux fichiers intercomparaison EISMINT 69 !!$ nxx=nx 70 !!$ nyy=ny 46 71 47 ! lecture de la topo actuelle 48 ! --------------------------- 49 open (20,file=TRIM(DIRNAMEINP)//file2,status='old') 50 51 read(20,'(A80)') TITRE 52 read(20,*) NI,NJ,NXX,NYY,STEP 53 read(20,*) 54 do J=1,ny 55 do I=1,nx 56 read (20,*) S0(I,J),H0(I,J),BSOC0(I,J) 57 S0(i,j)=max(S0(i,j),0.) 58 end do 59 end do 60 close(20) 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) 61 101 62 63 ! lecture de la topo de depart 64 ! --------------------------- 65 open (20,file=TRIM(DIRNAMEINP)//file1,status='old') 66 ! open (20,file='../INPUT-DATA/hemin.g50') 67 read(20,'(A80)') TITRE 68 read(20,*) NI,NJ,NXX,NYY,STEP 69 read(20,*) 70 do J=1,ny 71 do I=1,nx 72 read (20,*) S(I,J),H(I,J),BSOC(I,J) 73 end do 74 end do 75 close(20) 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 76 113 77 114 ! calcul des courbures du socle 78 79 115 call courbure(nx,ny,dx,Bsoc,bidon(:,:,1),bidon(:,:,2),bidon(:,:,3), & 80 116 bidon(:,:,4),socle_cry,bidon(:,:,5)) … … 83 119 ! lecture des coordonnées geographiques 84 120 85 filin=TRIM(DIRNAMEINP)//'coord-nord-40km.dat' 121 ! filin=TRIM(DIRNAMEINP)//grid_topo 86 122 87 123 ! les coordonnees sont calculees en °dec avec GMT, 88 124 ! les longitudes sont comprises entre -180 et +180 (negative a l'Ouest de 89 125 ! Greenwich et positive a l'Est) 90 open(unit=2004,file= filin,iostat=ios)126 open(unit=2004,file=grid_topo,iostat=ios) 91 127 do k=1,nx*ny 92 128 read(2004,*) i,j,XCC(i,j),YCC(i,j),XLONG(i,j),YLAT(i,j) … … 101 137 102 138 ! lecture du flux geothermique de Shapiro 103 open(88,file=TRIM(DIRNAMEINP)//'ijphi_hemin40.dat') 139 ! open(88,file=TRIM(DIRNAMEINP)//'ijphi_hemin40.dat') 140 ! open(88,file=ghf_fich) 104 141 105 write(42,*) 'flux geothermique Shapiro : ',TRIM(DIRNAMEINP)//'ijphi_hemin40.dat' 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) 106 147 107 do k=1,nx*ny 108 read(88,*) i,j,ghf(i,j) 109 ! print*, i,j,ghf(i,j) 110 end do 111 close(88) 148 call lect_input(1,'ghf',1,ghf,ghf_fich,file_ncdf) 149 112 150 ! pour passer les flux des mW/m2 au J/m2/an 113 151 ghf(:,:)=-SECYEAR/1000.*ghf(:,:)
Note: See TracChangeset
for help on using the changeset viewer.