Changeset 9 for trunk/SOURCES
- Timestamp:
- 02/12/15 11:42:12 (9 years ago)
- Location:
- trunk/SOURCES
- Files:
-
- 8 added
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SOURCES/3D-physique-gen_mod.f90
r4 r9 47 47 !integer :: NYEAR !< number of months in 1 year, st. dev. for temp *) 48 48 integer :: NTMAX !< 49 integer :: NDAY !<49 ! integer :: NDAY !< 50 50 integer :: NP !< 51 51 real :: NDISP !< sortie courte (temps) … … 122 122 ! real :: PY ! ct for PDD calculation 123 123 real :: PYY !< 124 real :: PSOLID !< temp limit between liquid and solid precip124 ! real :: PSOLID !< temp limit between liquid and solid precip 125 125 ! real :: PDDCT ! ct for PDD calculation 126 126 real :: PDSI !< … … 141 141 real :: SURF !< 142 142 real :: STEP !< 143 real :: SIF !<144 real :: SUMM !<143 ! real :: SIF !< 144 ! real :: SUMM !< 145 145 real :: SIMAX !< 146 146 real :: SPHI !< 147 real :: TEMPGRAD !< atmospheric temperature gradient (annual)148 real :: TEMPGRJUL !< atmospheric temperature gradient (july)147 ! real :: TEMPGRAD !< atmospheric temperature gradient (annual) 148 ! real :: TEMPGRJUL !< atmospheric temperature gradient (july) 149 149 real (kind=kind(0.d0)) :: TIME !< temps : en double precision 150 150 real :: TAFOR !< temperature forcing : annual 151 151 real :: TJFOR !< temperature forcing : july 152 real :: TEMP !<152 ! real :: TEMP !< 153 153 real :: TESTDIAG !< for time step calculation (icethick) 154 154 real :: V_limit !< vitesse maxi (limitateur de flux pour conserv masse) … … 210 210 real,dimension(NZ) :: UZCOMPLETE !< pour sorties eismint (vitesse vert. non reduite) 211 211 212 real,dimension(365) :: TT !< air temperature yearly cycle, for PDD212 ! real,dimension(365) :: TT !< air temperature yearly cycle, for PDD 213 213 214 214 real,dimension(NX) :: FLUX !< … … 338 338 real,dimension(nx,ny) :: TJULY !< Ground air temperature July 339 339 real,dimension(nx,ny) :: TANN !< Ground air temperature annual 340 real,dimension(nx,ny,12) :: Tmois !< Ground air temperature monthly 340 341 real,dimension(nx,ny) :: TSHELF !< temperature des shelfs pour viscosite 341 342 real,dimension(nx,ny) :: TJ0 !< initial air temperature at sea level July … … 366 367 real,dimension(nx,ny) :: XLONG !< longitude 367 368 real,dimension(nx,ny) :: YLAT !< latitude 368 real,dimension(nx,ny) :: ZS !< surface topography above sea level 369 real,dimension(nx,ny) :: xcc ! grille Xkm 370 real,dimension(nx,ny) :: ycc ! grille Ykm 371 ! real,dimension(nx,ny) :: ZS !< surface topography above sea level 369 372 real,dimension(nx,ny) :: ETABAR !< 370 373 real,dimension(nx,ny) :: BSOC !< altitude (ou bathymetrie) du socle 'o' -
trunk/SOURCES/Fichiers-parametres/Makefile.tof-lsce3130.inc
r5 r9 36 36 IFORT= ifort 37 37 38 ARITHM = -O2 -fp-model precise -heap-arrays -traceback # -traceback -CB -g # options pour une meilleure arithmetique38 ARITHM = -O2 -fp-model precise -heap-arrays -traceback -diag-disable warn # -traceback -CB -g # options pour une meilleure arithmetique 39 39 # (normalement reproductible) 40 40 #ARITHM = -fp-model precise -warn all -CU -CA # options pour une meilleure arithmetique (normalement reproductible) -
trunk/SOURCES/Hemin40_files/fake-routines-hemin40_mod.f90
r4 r9 16 16 17 17 use module3d_phy 18 use deform_declar19 18 implicit none 20 19 … … 39 38 end subroutine track_change_T 40 39 40 !____________________________________________________ 41 subroutine time_step_recul 42 43 if (itracebug.eq.1) call tracebug(' Entree dans routine fake time_step_recul') 44 ! quand on n'utilise pas le recul 45 end subroutine time_step_recul 46 41 47 end module fake_nor 42 48 ! -
trunk/SOURCES/Hemin40_files/lect-hemin40_mod.f90
r4 r9 1 !> \file lect-hemin40_mod.f902 !! Module de lecture de la topography a 40 km3 !<4 5 !> \namespace dragging_calc_beta6 !! Module de lecture de la topography a 40 km7 !! \author ...8 !! \date ...9 !! @note Used module10 !! @note - use module3D_phy11 !<12 13 1 module lect_topo_hemin40 14 2 15 3 use module3D_phy 16 4 17 character(len= 35) :: FILE1 ! CHARACTER(LEN=30) :: FILE1, FILE2, FILE318 character(len= 35) :: FILE25 character(len=50) :: FILE1 ! CHARACTER(LEN=30) :: FILE1, FILE2, FILE3 6 character(len=50) :: FILE2 19 7 character(len=80) :: filin 20 real,dimension(nx,ny) :: xcc , ycc !< coordeonnes en m 21 real, dimension(nx,ny,5) :: bidon !< pour l'appel a courbure 8 real, dimension(nx,ny,5) :: bidon ! pour l'appel a courbure 22 9 23 10 contains … … 25 12 subroutine input_topo 26 13 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) 17 ! formats pour les ecritures dans 42 18 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 27 29 !====================================== La reponse est 42 =========== 28 write(42,*)29 write(42,*)' Fichiers en entree'30 write(42,*)'----------------------'30 ! write(42,*) 31 ! write(42,*)' Fichiers en entree' 32 ! write(42,*)'----------------------' 31 33 !==================================================================== 32 34 33 34 file1=TRIM(DIRNAMEINP)//'topo-21k.g40' ! topo LGM ICE_5G (1=topo de depart)35 ! dans param : 36 ! file1=TRIM(DIRNAMEINP)//'topo-21k.g40' ! topo LGM ICE_5G (1=topo de depart) 35 37 ! file1=TRIM(DIRNAMEINP)//'hemin2.g40' 36 file2=TRIM(DIRNAMEINP)//'hemin2.g40' ! topo actuelle37 write(42,*) 'topo de depart', file138 write(42,*) 'topo reference', file238 ! file2=TRIM(DIRNAMEINP)//'hemin2.g40' ! topo actuelle 39 ! write(42,*) 'topo de depart', file1 40 ! write(42,*) 'topo reference', file2 39 41 40 42 … … 45 47 ! lecture de la topo actuelle 46 48 ! --------------------------- 47 open (20,file= file2)49 open (20,file=TRIM(DIRNAMEINP)//file2,status='old') 48 50 49 51 read(20,'(A80)') TITRE … … 52 54 do J=1,ny 53 55 do I=1,nx 54 read (20,*) S0(I,J),H0(I,J),B soc0(I,J)56 read (20,*) S0(I,J),H0(I,J),BSOC0(I,J) 55 57 S0(i,j)=max(S0(i,j),0.) 56 58 end do … … 61 63 ! lecture de la topo de depart 62 64 ! --------------------------- 63 open (20,file= file1)65 open (20,file=TRIM(DIRNAMEINP)//file1,status='old') 64 66 ! open (20,file='../INPUT-DATA/hemin.g50') 65 67 read(20,'(A80)') TITRE … … 72 74 end do 73 75 close(20) 74 76 77 ! calcul des courbures du socle 78 79 call courbure(nx,ny,dx,Bsoc,bidon(:,:,1),bidon(:,:,2),bidon(:,:,3), & 80 bidon(:,:,4),socle_cry,bidon(:,:,5)) 81 socle_cry(:,:)=socle_cry(:,:)*dx*dx 82 75 83 ! lecture des coordonnées geographiques 76 84 … … 80 88 ! les longitudes sont comprises entre -180 et +180 (negative a l'Ouest de 81 89 ! Greenwich et positive a l'Est) 82 83 84 85 86 87 write(42,*) 'fichier grille: ', filin90 open(unit=2004,file=filin,iostat=ios) 91 do k=1,nx*ny 92 read(2004,*) i,j,XCC(i,j),YCC(i,j),XLONG(i,j),YLAT(i,j) 93 enddo 94 close(2004) 95 write(42,*) 'fichier grille: ', filin 88 96 89 xmin=xcc(1,1)/1000. 90 ymin=ycc(1,1)/1000. 91 xmax=xcc(nx,ny)/1000. 92 ymax=ycc(nx,ny)/1000. 97 xmin=xcc(1,1)/1000. 98 ymin=ycc(1,1)/1000. 99 xmax=xcc(nx,ny)/1000. 100 ymax=ycc(nx,ny)/1000. 101 102 ! lecture du flux geothermique de Shapiro 103 open(88,file=TRIM(DIRNAMEINP)//'ijphi_hemin40.dat') 93 104 94 ! appel a la routine de calcul de courbure 95 call courbure(nx,ny,dx,Bsoc,bidon(:,:,1),bidon(:,:,2),bidon(:,:,3), & 96 bidon(:,:,4),socle_cry,bidon(:,:,5)) 105 write(42,*) 'flux geothermique Shapiro : ',TRIM(DIRNAMEINP)//'ijphi_hemin40.dat' 97 106 98 socle_cry(:,:)=socle_cry(:,:)*dx*dx 99 100 101 102 ! lecture du flux geothermique de Shapiro 103 open(88,file=TRIM(DIRNAMEINP)//'ijphi_hemin40.dat') 104 105 write(42,*) 'flux geothermique Shapiro : ',TRIM(DIRNAMEINP)//'ijphi_hemin40.dat' 106 107 do k=1,nx*ny 108 read(88,*) i,j,ghf(i,j) 107 do k=1,nx*ny 108 read(88,*) i,j,ghf(i,j) 109 109 ! print*, i,j,ghf(i,j) 110 111 110 end do 111 close(88) 112 112 ! pour passer les flux des mW/m2 au J/m2/an 113 113 ghf(:,:)=-SECYEAR/1000.*ghf(:,:) 114 114 ! write(42,*) 'flux geothermique fixe : 55 mW/m2' 115 115 ! ghf(:,:)=-SECYEAR/1000.*55. !B6norcg2 116 116 117 print*,'lect topo'118 print*,'shb',S(101,91),H(101,91),B(101,91)119 print*,'shb0',S0(101,91),H0(101,91),Bsoc0(101,91)117 ! print*,'lect topo' 118 ! print*,'shb',S(101,91),H(101,91),B(101,91) 119 ! print*,'shb0',S0(101,91),H0(101,91),BSOC0(101,91) 120 120 ! Initialisation du Masque 121 121 !------------------------------------------------ -
trunk/SOURCES/Hemin40_files/module_choix-hemin40-0.4.f90
r4 r9 40 40 41 41 !--------------Lecture climat ref ------------------ 42 ! Le climat de ref si necessaire est maintenant lu par le module de climat directement 42 43 !use lect_clim_act_anteis 43 44 !use lect_clim_act_hemin40 ! pour l'hemisphere nord et l'eurasie 44 45 ! use climat_heino 45 46 46 47 !--------------Lecture climat forcage--------------- 47 48 48 !use climat_perturb_mod 49 use climat_forcage_mod 49 !use climat_perturb_mod ! pour simule climat equilibre type Loveclim 50 !use climat_forcage_stat_mois_mod ! climat constant mensuel GCMs 51 !use climat_forcage_mod ! pour cycle force GCM avec index 52 use climat_forcage_mois_mod ! forcage mensuel GCM 1 Snapshot 53 ! use climat_forcage_insolation_mod ! methode JB multi-snapshots mensuelle mais pour un etat stationnaire avec correction topo GCM => GRISLI 50 54 !use climat_synthes_mod 51 55 !use climat_profil_mod 52 56 !use climat_regions_delta 53 57 58 use ablation_mod ! calcul de l'ablation (PDD ou autre methode) 59 54 60 ! pas de lacs proglaciaires 55 61 use no_lakes 56 62 63 ! suivi des traceurs ou pas ? 64 !use tracer_mod ! probablement pas compatible avec Hemin-40 actuellement 65 use notracer_mod 66 57 67 !--------------Choix isostasie---------------------- 58 use isostasie_mod! module permettant de calculer la deflexion isostasique59 ! USE NOISOSTASIE_MOD! module pour ne pas avoir d'isostasie68 use isostasie_mod ! module permettant de calculer la deflexion isostasique 69 !use noisostasie_mod ! module pour ne pas avoir d'isostasie 60 70 61 71 62 72 !--------------Module Physique--------------------- 63 use deformation_mod ! module concernant les lois de deformation 73 !use deformation_mod ! module concernant les lois de deformation 74 use deformation_mod_2lois ! module concernant les lois de deformation 64 75 65 76 !--------------Module propritete thermique de la glace 66 use 77 use prop_thermiques_ice 67 78 ! use prop_therm_ice_heino 68 79 … … 71 82 72 83 ! sliding- dragging 73 ! 84 !use module sliding_vitbal 74 85 use sliding_Bindschadler 75 ! 86 !use sliding_dragging_heino ! loi de glissement heino : mis dans diffusiv : 76 87 77 88 78 89 !use dragging_vitbil 79 ! 90 !use dragging_hwatstream 80 91 use dragging_hwat_contmaj 81 82 92 !use dragging_hwat_cont 83 93 84 !use dragging_hwat_contmaj 94 !------------ spinup ----------------------------------- 95 use no_spinup ! spinup=0 96 !use spinup_vitbil ! plusieurs variantes de spinup : inclue le dragging 97 ! enlever le use dragging dans ce cas là 85 98 86 99 ! use eq_elliptique_mod ! ancienne version (remplimat-5) … … 93 106 ! choix resolution de la conservation de la masse 94 107 !----------------------------------------------- 95 use equat_adv_diff_2D ! conservation masse avec advection-diffusion 108 !use equat_adv_diff_2D ! conservation masse avec advection-diffusion 109 use equat_adv_diff_2D_vect ! le vecteur est maintenant dans l'appel 96 110 97 111 98 112 !--------------Fusion basale------------------------ 99 113 !use bmelt_ant_regions ! pour l'Antarctique avec régions 100 114 use bmelt_nor_regions ! pour le nord avec régions 101 115 !use bmelt_nor_depth ! pour le nord avec profondeur d'eau 102 116 … … 105 119 ! use fake_heino 106 120 ! use fake_ant 107 121 use fake_nor 108 122 !-------------- Outputs----------------------------- 109 123 ! … … 113 127 114 128 !-----Suivi temporel 115 129 use output_hemin40_mod 116 130 ! use output_antarcti_mod 117 131 ! use output_heino -
trunk/SOURCES/Makefile.grisli.inc
r7 r9 37 37 # modules climats : doivent etre compatibles avec les modules choix 38 38 # il faut choisir un des deux ou un specifique a une geometrie. 39 40 # module de forcage climatique C. Dumas 41 mod_clim_tof = climat_forcage_mois_mod.o pdd_declar_mod.o ablation_mod.o 39 42 40 43 # methode forcage basee sur des snapshots climats … … 69 72 out_profile_mod.o printtable_mod.o mix-SIA-L1_mod.o \ 70 73 relaxation_mod-0.3.o relaxation_water_mod-0.4.o relaxation_water_diffusion.o \ 71 prescribe-H _mod.o\74 prescribe-H-i2s_mod.o \ 72 75 resol_adv_diff_2D-sept2009.o \ 73 76 conserv-mass-adv-diff_sept2009_mod.o \ … … 105 108 mod_tracers = tracer_vars_mod.o tracer_mod.o notracer_mod.o \ 106 109 interpolate_tracer.o celltest_tracer.o 110 # no_tracer a part pour eviter pb avec climat_perturb => voir avec Cat 111 mod_no_tracers = tracer_vars_mod.o notracer_mod.o 112 107 113 108 114 Proto_recul = proto_declar_3D_grisli_mod.o \ … … 190 196 191 197 Liste_hemin40 = output_hemin40_mod-0.4.o \ 192 lect-clim-act-hemin40_mod.o lect-hemin40_mod.o \ 193 climat-forcage_mod-0.4.o climat-perturb_mod-0.4.o \ 198 lect-hemin40_mod.o \ 194 199 bmelt-hemin40-regions_mod.o bmelt-hemin40-depth_mod.o \ 195 200 fake-routines-hemin40_mod.o module_choix-hemin40-0.4.o \ … … 595 600 # modules de climat 596 601 # --------------------------- 602 # nouveaux modules climat C. Dumas Fev 2015 603 climat_forcage_mois_mod.o : climat_forcage_mois_mod.f90 604 $(FT) climat_forcage_mois_mod.f90 605 606 pdd_declar_mod.o : pdd_declar_mod.f90 607 $(FT) pdd_declar_mod.f90 608 609 ablation_mod.o : ablation_mod.f90 610 $(FT) ablation_mod.f90 611 612 613 ##### anciens modules 597 614 climat-forcage_mod-0.4.o : climat-forcage_mod-0.4.f90 598 615 $(FT) climat-forcage_mod-0.4.f90 … … 1336 1353 readinput.o: readinput.f90 1337 1354 $(F_NETCDF) readinput.f90 1355 1338 1356 interface_input.o: interface_input.f90 1339 1357 $(FT) interface_input.f90 … … 1486 1504 $(routine_elliptiques) $(NCDF_LIB) $(MKL_LIB) 1487 1505 1488 1506 Hemin-40 : $(Dim_hemin40) $(mod_dim_communs) \ 1507 $(toy_recul) \ 1508 $(mod_communs) \ 1509 $(mod_clim_tof) \ 1510 $(mod_no_tracers) \ 1511 $(mod_ell) $(Liste_hemin40) \ 1512 $(mod_post_geo) \ 1513 $(diagnoshelf) \ 1514 $(Liste_Netcdf) \ 1515 $(routines_communes) steps_time_loop.o \ 1516 $(routine_elliptiques) 1517 1518 $(LK) -o ../bin/Hemin-40 \ 1519 $(Dim_hemin40) $(mod_dim_communs) \ 1520 $(toy_recul) \ 1521 $(mod_communs) \ 1522 $(mod_clim_tof) \ 1523 $(mod_no_tracers) \ 1524 $(mod_ell) $(Liste_hemin40) \ 1525 $(mod_post_geo) \ 1526 $(diagnoshelf) \ 1527 $(Liste_Netcdf) \ 1528 $(routines_communes) steps_time_loop.o \ 1529 $(routine_elliptiques) $(NCDF_LIB) $(MKL_LIB) 1489 1530 1490 1531 … … 1498 1539 $(routines_communes) $(routine_elliptiques) $(NCDF_LIB) $(MKL_LIB) 1499 1540 1500 Hemin-40 : $(Dim_hemin40) $(mod_dim_communs) $(mod_communs) $(mod_ell) $(Liste_hemin40) \1501 $(diagnoshelf) $(Liste_Netcdf) \1502 $(routines_communes) $(routine_elliptiques)1503 1504 $(LK) -o ../bin/Hemin-40 $(Dim_hemin40) $(mod_dim_communs) $(mod_communs) \1505 $(mod_ell) $(Liste_hemin40) \1506 $(diagnoshelf) $(Liste_Netcdf) \1507 $(routines_communes) $(routine_elliptiques) $(NCDF_LIB) $(MKL_LIB)1541 #Hemin-40 : $(Dim_hemin40) $(mod_dim_communs) $(mod_communs) $(mod_ell) $(Liste_hemin40) \ 1542 # $(diagnoshelf) $(Liste_Netcdf) \ 1543 # $(routines_communes) $(routine_elliptiques) 1544 1545 # $(LK) -o ../bin/Hemin-40 $(Dim_hemin40) $(mod_dim_communs) $(mod_communs) \ 1546 # $(mod_ell) $(Liste_hemin40) \ 1547 # $(diagnoshelf) $(Liste_Netcdf) \ 1548 # $(routines_communes) $(routine_elliptiques) $(NCDF_LIB) $(MKL_LIB) 1508 1549 1509 1550 Heminord : $(Liste_heminord) $(Liste_commune) $(Liste_BLAS) -
trunk/SOURCES/dragging_hwat_contmaj_mod.f90
r4 r9 43 43 real :: tob_ile ! pour les iles 44 44 real :: cry_lim=50. ! courbure limite pour le suivi des fleuves 45 46 47 real, dimension(nx,ny) :: Vcol_x !< uniquement pour compatibilite avec spinup cat 48 real, dimension(nx,ny) :: Vcol_y !< uniquement pour compatibilite avec spinup cat 49 real, dimension(nx,ny) :: Vsl_x !< uniquement pour compatibilite avec spinup cat 50 real, dimension(nx,ny) :: Vsl_y !< uniquement pour compatibilite avec spinup cat 51 logical :: corr_def = .false. !< for deformation correction, pour compatibilite beta 52 45 53 contains 46 54 !------------------------------------------------------------------------------- -
trunk/SOURCES/initial-0.3.f90
r4 r9 43 43 !------------------------------------------------------ 44 44 ! initialisation du climat (reference et forcage) 45 call input_climat_ref() ! Le climat de reference 46 call init_forclim ! les parametres du forcage 47 call input_clim() ! Les fichiers de forcage 48 call init_ablation 45 !cdc call input_climat_ref() ! Le climat de reference 46 call init_forclim ! parametres du forcage 47 call input_clim ! lecture fichiers de forcage 48 call init_ablation ! parametres du calcul de l'ablation 49 call init_ablation 49 50 !------------------------------------------------------------------------------------- 50 51 -
trunk/SOURCES/initial-phy-2-job.f90
r4 r9 190 190 SEALEVEL=0.0 191 191 192 193 ! temp limit between liquid and solid precip194 PSOLID=2.195 196 197 192 SECYEAR=365.*24.*3600. 198 193 secyear= 31556926 ! s /an pour Heino -
trunk/SOURCES/initial-phy-2.f90
r4 r9 184 184 SEALEVEL=0.0 185 185 186 187 ! temp limit between liquid and solid precip188 PSOLID=2.189 190 191 186 SECYEAR=365.*24.*3600. 192 187 secyear= 31556926 ! s /an pour Heino -
trunk/SOURCES/main3D-0.4-40km.f90
r4 r9 240 240 ! call firstoutput() ! ouverture fichier temporel et premieres ecritures 241 241 242 call forclim ()! initialisation BM et TS242 call forclim ! initialisation BM et TS 243 243 call ablation 244 244 -
trunk/SOURCES/steps_time_loop.f90
r4 r9 260 260 ! climatic forcing 261 261 !===================== 262 call forclim ()262 call forclim 263 263 call ablation 264 264 -
trunk/SOURCES/steps_time_loop_avec_iterbeta.f90
r4 r9 266 266 ! climatic forcing 267 267 !===================== 268 call forclim ()268 call forclim 269 269 call ablation 270 270
Note: See TracChangeset
for help on using the changeset viewer.