Changeset 15
- Timestamp:
- 06/10/15 15:39:11 (9 years ago)
- Location:
- trunk
- Files:
-
- 8 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SOURCES/Fichiers-parametres/LISTE-VAR-NETCDF.dat
r12 r15 288 288 Nefmx 289 289 68 290 1 1 1 290 1 1 1.e-5 291 291 ----------------------------------------------------------- 292 292 Nefmy 293 293 69 294 1 2 1 294 1 2 1.e-5 295 295 ----------------------------------------------------------- 296 296 posx -
trunk/SOURCES/Fichiers-parametres/TEMPS-CPTR-NC.dat
r4 r15 4 4 5 5 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fin des commentaires~~~~~~~~~~~ 6 100 . Dtcpt6 1000. Dtcpt 7 7 ------------------------------------------------------------------------------------------- 8 0 Nbr des temps de sortie cptr ou nc 9 20. 10 100. 11 200 8 15 Nbr des temps de sortie cptr ou nc 9 -126000. 12 10 -20000. 11 -10000. 12 10000. 13 13 20000. 14 23000.15 22000.16 14 30000. 17 15 40000. … … 19 17 60000. 20 18 70000. 19 80000. 20 90000. 21 21 100000. 22 -126000.23 140000.24 22 150000. 25 180000. 26 -297000. 27 -380000. 28 -350000. 29 -390000. 30 -400000. 31 -410000. 32 -420000. 33 -430000. 34 -435000. 35 -440000. 36 -450000. 37 -470000. 38 -490000. 23 200000. 39 24 ------------------------------------------------------------------------------------------- -
trunk/SOURCES/GrIce2sea_files/climat_GrIce2sea_years_mod.f90
r14 r15 112 112 ! end where 113 113 114 !cdc test debug Hemin15 115 ! where (bm(:,:).lt.- 20) bm(:,:)=-10.114 !cdc test debug Hemin15 et Greeneem15 115 ! where (bm(:,:).lt.-1000) bm(:,:)=0. 116 116 117 117 -
trunk/SOURCES/Greeneem_files/lect-greeneem_mod.f90
r13 r15 3 3 use module3D_phy 4 4 use param_phy_mod 5 !cdc 6 use interface_input 7 use io_netcdf_grisli 5 8 6 9 character(len=100) :: topo_dep ! Topo de départ … … 12 15 !real :: ghf0 ! flux geothermique constant en mW/m2 13 16 17 real, dimension(nx,ny) :: Bsoc_bamber, S_bamber, Bsoc_new 18 character(len=100) :: topo_surf !< surface file name 19 character(len=100) :: topo_bed !< bedrock file name 20 character(len=100) :: file_ncdf !< fichier netcdf issue des fichiers .dat 21 14 22 integer :: n1,n2,ndx 15 23 16 24 contains 17 25 18 subroutine input_topo26 subroutine input_topo 19 27 20 namelist/toponeem/topo_ref,topo_dep,grid_topo,ghf_fich28 namelist/toponeem/topo_ref,topo_dep,grid_topo,ghf_fich 21 29 22 30 428 format(A) 23 31 24 rewind(num_param) ! pour revenir au debut du fichier param_list.dat32 rewind(num_param) ! pour revenir au debut du fichier param_list.dat 25 33 26 read(num_param,toponeem)34 read(num_param,toponeem) 27 35 28 write(num_rep_42,428)'!___________________________________________________________'29 write(num_rep_42,428) '&toponeen ! module lect_topo_greeneem'30 write(num_rep_42,'(A,A)') 'topo_ref =', topo_ref31 write(num_rep_42,'(A,A)') 'topo_dep =', topo_dep32 write(num_rep_42,'(A,A)') 'grid_topo =', grid_topo33 write(num_rep_42,*) 'ghf_fich =', ghf_fich34 write(num_rep_42,*)'/'35 write(num_rep_42,428) '! topo_ref= topo actuelle'36 write(num_rep_42,428) '! ghf0 flux geothermique en mW/m2'37 write(num_rep_42,428) '! grid_topo : fichier i,j,x,y,lon,lat'38 write(num_rep_42,428) '! ghf_fich : fichier flux geothermique'39 write(num_rep_42,*)36 write(num_rep_42,428)'!___________________________________________________________' 37 write(num_rep_42,428) '&toponeen ! module lect_topo_greeneem' 38 write(num_rep_42,'(A,A)') 'topo_ref =', topo_ref 39 write(num_rep_42,'(A,A)') 'topo_dep =', topo_dep 40 write(num_rep_42,'(A,A)') 'grid_topo =', grid_topo 41 write(num_rep_42,*) 'ghf_fich =', ghf_fich 42 write(num_rep_42,*)'/' 43 write(num_rep_42,428) '! topo_ref= topo actuelle' 44 write(num_rep_42,428) '! ghf0 flux geothermique en mW/m2' 45 write(num_rep_42,428) '! grid_topo : fichier i,j,x,y,lon,lat' 46 write(num_rep_42,428) '! ghf_fich : fichier flux geothermique' 47 write(num_rep_42,*) 40 48 41 49 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)!trim(ghf0)50 topo_ref=trim(dirnameinp)//trim(topo_ref) 51 topo_dep=trim(dirnameinp)//trim(topo_dep) 52 grid_topo=trim(dirnameinp)//trim(grid_topo) 53 ghf_fich=trim(dirnameinp)//trim(ghf_fich)!trim(ghf0) 46 54 47 sealevel0=0. ! voir a passer dans le fichier parametre55 sealevel0=0. ! voir a passer dans le fichier parametre 48 56 49 ! lecture de la topo de référence 50 ! ------------------------------- 51 ! Cette topo sert a calculer le socle de reference pour l'isostasie 52 ! voir init_iso et a avoir une surface de reference pour les temperatures 57 ! lecture de la topo de référence 58 ! ------------------------------- 59 ! Cette topo sert a calculer le socle de reference pour l'isostasie 60 ! voir init_iso et a avoir une surface de reference pour les temperatures 61 ! lecture adaptee aux fichiers ZBL.dat ou netcdf ou grd 62 call lect_input(1,'Bsoc',1,Bsoc0,topo_ref,file_ncdf) ! socle 63 call lect_input(1,'S',1,S0,topo_ref,file_ncdf) ! surface 64 call lect_input(1,'H',1,H0,topo_ref,file_ncdf) ! epaisseur 53 65 54 open (20,file=topo_ref) 66 S0(:,:)=max(S0(:,:),sealevel0) ! pour etre au niveau des mers : ATTENTION si SEALEV <0 67 mk0(:,:) = 1 ! mk0=0 pour les zones interdites 55 68 56 read(20,*) 57 read(20,*) 58 read(20,*) n1,n2,ndx 59 read(20,*) 69 ! lecture de la topo de depart 70 ! --------------------------- 71 ! lecture adaptee aux fichiers ZBL.dat ou netcdf ou grd 72 call lect_input(1,'Bsoc',1,Bsoc,topo_dep,file_ncdf) ! socle 73 call lect_input(1,'S',1,S,topo_dep,file_ncdf) ! surface 74 call lect_input(1,'H',1,H,topo_dep,file_ncdf) ! epaisseur 75 S(:,:)=max(S(:,:),0.) ! pour etre au niveau des mers : ATTENTION si SEALEV <0 76 H(:,:)=max(H(:,:),1.) ! pour avoir au moins 1 m 60 77 61 if ((n1.eq.nx).and.(n2.eq.ny).and.(ndx.eq.nint(dx/1000.))) then 62 ! le fichier correspond bien a 63 ! la grille definie dans paradim 64 do J=1,ny 65 do I=1,nx 66 read (20,*) S0(I,J),H0(I,J),BSOC0(I,J) 67 S0(i,j)=max(S0(i,j),sealevel0) ! pour etre au niveau des mers : ATTENTION si SEALEV <0 68 end do 69 end do 70 71 else 72 write(6,*) 'le fichier ne correspond pas a la grille definie' 73 STOP 74 end if 75 close(20) 78 79 ! calcul de flottaison 80 do j=1,ny 81 do i=1,nx 76 82 77 mk0(:,:) = 1 ! mk0=0 pour les zones interdites 78 79 ! lecture de la topo de depart 80 ! --------------------------- 81 open (20,file=topo_dep) 83 archim = Bsoc(i,j)+H(i,j)*ro/row -sealevel 82 84 83 read(20,*) 84 read(20,*) 85 read(20,*) n1,n2,ndx 86 read(20,*) 85 if ((ARCHIM.LT.0.).and.(H(I,J).gt.1.E-3)) then ! le point flotte 86 flot(i,j)=.true. 87 else 88 flot(i,j)=.false. 89 end if 90 91 end do 92 end do 93 94 ! lecture des coordonnées geographiques 87 95 88 96 89 if ((n1.eq.nx).and.(n2.eq.ny).and.(ndx.eq.nint(dx/1000.))) then 90 ! le fichier correspond bien a 91 ! la grille definie dans paradim 92 93 do J=1,ny 94 do I=1,nx 95 read (20,*) S(I,J),H(I,J),BSOC(I,J) 96 S(i,j)=max(S(i,j),0.) ! pour etre au niveau des mers : ATTENTION si SEALEV <0 97 H(i,j)=max(H(i,j),1.) ! pour avoir au moins 1 m 97 ! les fichiers EISMINT etaient ranges i,j,lat,lon 98 ! je n'arrive pas a retrouver la projection exacte. 99 ! le x est donc calcule en partant de 0, 0 100 101 open(unit=20,file=grid_topo,iostat=ios) 102 read(20,*) 103 read(20,*) 104 read(20,*) n1,n2,ndx 105 read(20,*) 106 107 if ((n1.eq.nx).and.(n2.eq.ny).and.(ndx.eq.nint(dx/1000.))) then 108 ! le fichier correspond bien a 109 ! la grille definie dans paradim 110 111 do k=1,nx*ny 112 read(20,*) i,j,xcc(i,j),ycc(i,j),xlong(i,j),ylat(i,j) 113 enddo 114 ! pour assurer la continuite des temperatures parametrees : 115 where(xlong(:,:).lt.100.) 116 xlong(:,:)=xlong(:,:)+360. 117 end where 118 119 else 120 write(6,*) 'le fichier ne correspond pas a la grille definie' 121 STOP 122 end if 123 close(20) 124 125 ! xcc est en m 126 xmin=xcc(1,1) 127 ymin=ycc(1,1) 128 do j=1,ny 129 do i=1,nx 130 xcc(i,j)=xcc(i,j)*1000. 131 ycc(i,j)=ycc(i,j)*1000. 132 end do 133 end do 134 xmax=xcc(nx,ny)/1000 135 ymax=ycc(nx,ny)/1000 136 137 ! lecture de la carte de flux geothermique 138 open (20,file=ghf_fich) 139 read(20,*) n1,n2,ndx 140 if ((n1.eq.nx).and.(n2.eq.ny).and.(ndx.eq.nint(dx/1000.))) then 141 ! le fichier correspond bien a 142 ! la grille definie dans paradim 143 do j=1,ny 144 do i=1,nx 145 read(20,*) ghf(i,j) 98 146 end do 99 end do 100 101 else 102 write(6,*) 'le fichier ne correspond pas a la grille definie' 103 STOP 104 end if 105 close(20) 106 107 ! calcul de flottaison 108 do j=1,ny 109 do i=1,nx 110 111 archim = Bsoc(i,j)+H(i,j)*ro/row -sealevel 112 113 if ((ARCHIM.LT.0.).and.(H(I,J).gt.1.E-3)) then ! le point flotte 114 flot(i,j)=.true. 115 else 116 flot(i,j)=.false. 117 end if 118 119 end do 120 end do 121 122 ! lecture des coordonnées geographiques 147 end do 148 close(20) 149 else 150 write(6,*) 'le fichier ne correspond pas a la grille definie' 151 STOP 152 end if 123 153 124 154 125 ! les fichiers EISMINT etaient ranges i,j,lat,lon 126 ! je n'arrive pas a retrouver la projection exacte. 127 ! le x est donc calcule en partant de 0, 0 128 129 open(unit=20,file=grid_topo,iostat=ios) 130 read(20,*) 131 read(20,*) 132 read(20,*) n1,n2,ndx 133 read(20,*) 134 135 if ((n1.eq.nx).and.(n2.eq.ny).and.(ndx.eq.nint(dx/1000.))) then 136 ! le fichier correspond bien a 137 ! la grille definie dans paradim 138 139 do k=1,nx*ny 140 read(20,*) i,j,xcc(i,j),ycc(i,j),xlong(i,j),ylat(i,j) 141 enddo 142 ! pour assurer la continuite des temperatures parametrees : 143 where(xlong(:,:).lt.100.) 144 xlong(:,:)=xlong(:,:)+360. 145 end where 146 147 else 148 write(6,*) 'le fichier ne correspond pas a la grille definie' 149 STOP 150 end if 151 close(20) 152 153 ! xcc est en m 154 xmin=xcc(1,1) 155 ymin=ycc(1,1) 156 do j=1,ny 157 do i=1,nx 158 xcc(i,j)=xcc(i,j)*1000. 159 ycc(i,j)=ycc(i,j)*1000. 160 end do 161 end do 162 xmax=xcc(nx,ny)/1000 163 ymax=ycc(nx,ny)/1000 164 165 ! lecture de la carte de flux geothermique 166 open (20,file=ghf_fich) 167 read(20,*) n1,n2,ndx 168 if ((n1.eq.nx).and.(n2.eq.ny).and.(ndx.eq.nint(dx/1000.))) then 169 ! le fichier correspond bien a 170 ! la grille definie dans paradim 171 do j=1,ny 172 do i=1,nx 173 read(20,*) ghf(i,j) 174 end do 175 end do 176 close(20) 177 else 178 write(6,*) 'le fichier ne correspond pas a la grille definie' 179 STOP 180 end if 181 182 183 ! flux geothermique : pour passer les flux des mW/m2 aux J/m2/an 184 ghf(:,:)=-secyear*ghf(:,:) 185 !ghf(:,:)=-secyear*50.0/1000. !ghf0 ! pour flux constant 155 ! flux geothermique : pour passer les flux des mW/m2 aux J/m2/an 156 ghf(:,:)=-secyear*ghf(:,:) 157 !ghf(:,:)=-secyear*50.0/1000. !ghf0 ! pour flux constant 186 158 187 159 188 160 189 ! calcul des courbures du socle190 call courbure(nx,ny,dx,Bsoc,bidon(:,:,1),bidon(:,:,2),bidon(:,:,3), &191 bidon(:,:,4),socle_cry,bidon(:,:,5))192 socle_cry(:,:)=socle_cry(:,:)*dx*dx193 194 !------------------------------------------------195 end subroutine input_topo161 ! calcul des courbures du socle 162 call courbure(nx,ny,dx,Bsoc,bidon(:,:,1),bidon(:,:,2),bidon(:,:,3), & 163 bidon(:,:,4),socle_cry,bidon(:,:,5)) 164 socle_cry(:,:)=socle_cry(:,:)*dx*dx 165 166 !------------------------------------------------ 167 end subroutine input_topo 196 168 197 169 -
trunk/SOURCES/Greeneem_files/module_choix-greeneem.f90
r14 r15 26 26 !--------------Module climat --------------- 27 27 !use climat_forcage_mois_mod ! forcage mensuel GCM 1 Snapshot Fev 2015 28 use climat_Grice2sea_years_mod ! forcage avec SMB type MAR Fev2015 28 !use climat_Grice2sea_years_mod ! forcage avec SMB type MAR Fev2015 29 !use climat_forcage_mois_mod ! climat mensuel GCM, possibilite d'utiliser plusieurs snapshots avec fichier d'evolution (Pas de correction topo) 30 use climat_forcage_insolation_mod ! Methode JB plusieurs snaphots, chacun avec topo + courbe insolation et CO2 29 31 30 32 ! Anciens modules pas encore valides … … 37 39 !!!!!!use climat_regions_delta 38 40 39 !use ablation_mod ! calcul de l'ablation (PDD ou autre methode)40 use no_ablation ! pas de calcul de l'ablation => lecture fichier SMB (necessaire avec climat_Grice2sea_years_mod)41 use ablation_mod ! calcul de l'ablation (PDD ou autre methode) 42 !use no_ablation ! pas de calcul de l'ablation => lecture fichier SMB (necessaire avec climat_Grice2sea_years_mod) 41 43 42 44 ! pas de lacs proglaciaires -
trunk/SOURCES/Makefile.grisli.inc
r14 r15 41 41 42 42 # module de forcage climatique C. Dumas 43 mod_clim_tof = climat_forcage_mois_mod.o climat_GrIce2sea_years_mod.o \ 43 mod_clim_tof = climat_forcage_mois_mod.o climat-forcage-insolation_mod_oneway.o \ 44 climat_GrIce2sea_years_mod.o \ 44 45 ablation_mod.o no_ablation_mod.o 45 46 … … 612 613 $(FT) climat_forcage_mois_mod.f90 613 614 615 climat-forcage-insolation_mod_oneway.o : climat-forcage-insolation_mod_oneway.f90 616 $(FT) climat-forcage-insolation_mod_oneway.f90 617 614 618 ablation_mod.o : ablation_mod.f90 615 619 $(FT) ablation_mod.f90 -
trunk/SOURCES/main3D-0.4-40km.f90
r10 r15 370 370 call testsort_time(tbegin) 371 371 call sortie_hz_multi ! pour les variables declarees dans 3D 372 call hz_output(tbegin)372 ! call hz_output(tbegin) 373 373 374 374 ! call limit_file(1,real(time),dt,tend,dtsortie,dtcpt,testdiag,dtt,runname) -
trunk/SOURCES/steps_time_loop.f90
r10 r15 24 24 25 25 use module_choix ! module de choix du type de run 26 27 26 ! module_choix donne acces a tous les modules 27 ! de declaration des packages 28 28 29 29 use sorties_ncdf_grisli … … 31 31 use interface_icetempmod 32 32 use diagno_mod 33 ! use track_debug33 ! use track_debug 34 34 35 35 implicit none … … 161 161 ! sortie compteur tous les dtcpt ans 162 162 !------------------------------------------------------------------ 163 164 165 166 167 163 !iout == 1 sortie cptr 164 !iout == 2 sortie nc 165 if (itracebug.eq.1) call tracebug('dans steps_time_loop avant call out_recovery ') 166 167 call out_recovery(iout) 168 168 169 169 ! end of outputs
Note: See TracChangeset
for help on using the changeset viewer.