Index: branches/GRISLIv3/TRASH-SOURCES/GrIce2sea_files/fake-routines_Grice2sea_mod.f90
===================================================================
--- branches/GRISLIv3/TRASH-SOURCES/GrIce2sea_files/fake-routines_Grice2sea_mod.f90	(revision 455)
+++ branches/GRISLIv3/TRASH-SOURCES/GrIce2sea_files/fake-routines_Grice2sea_mod.f90	(revision 455)
@@ -0,0 +1,54 @@
+!> \file fake-routines-ant_mod.f90
+!! Module qui contient des routines vides
+!<
+
+!> \namespace fake_ant
+!! Module qui contient des routines vides
+!! \author ...
+!! \date ...
+!! @note Used module
+!! @note   - use module3D_phy
+!<
+! contient des routines vides 
+
+module fake_grice2sea
+
+implicit none
+
+integer :: fake
+
+contains
+!____________________________________________________
+subroutine initial_heino
+
+!if (itracebug.eq.1)  call tracebug(' Entree dans routine fake initial_heino')
+fake=1
+
+return
+end subroutine initial_heino
+
+!____________________________________________________
+subroutine track_change_T
+
+use runparam, only: itracebug
+if (itracebug.eq.1)  call tracebug(' Entree dans routine fake track_change_T')
+fake=1
+return
+end subroutine track_change_T
+
+!____________________________________________________
+subroutine  massb_perturb_Tparam
+
+use runparam, only: itracebug
+if (itracebug.eq.1)  call tracebug(' Entree dans routine fake massb_perturb_Tparam  ')
+fake=1
+end subroutine massb_perturb_Tparam
+
+!____________________________________________________
+subroutine time_step_recul
+
+! quand on n'utilise pas le recul
+end subroutine time_step_recul
+
+end module fake_grice2sea
+!
Index: branches/GRISLIv3/TRASH-SOURCES/GrIce2sea_files/geography-GrIce2sea.f90
===================================================================
--- branches/GRISLIv3/TRASH-SOURCES/GrIce2sea_files/geography-GrIce2sea.f90	(revision 455)
+++ branches/GRISLIv3/TRASH-SOURCES/GrIce2sea_files/geography-GrIce2sea.f90	(revision 455)
@@ -0,0 +1,40 @@
+!> \file geography-Ant15_LBq.f90
+!! Ce module permet de choisir le domaine geographique qu'on veut utiliser
+!<
+
+!> \namespace geography
+!! Module pour choisir le domaine geographique qu'on veut utiliser
+!! \author ...
+!! \date ...
+!! @note Used module
+!! @note   - use module_ant15_LBq
+!<
+
+module geography
+
+! quand on veut choisir l eurasie
+! avec plusieurs resolutions
+! use module_euras40 
+! use module_euras20 
+! use module_euras10 
+
+! quand on veut choisir le nord
+!  use module_nord  
+
+! L'antarctique en 40 km
+! use  module_ant40
+
+! L'antarctique en 15 km sur grille CISM
+!use module_ant15_CISM
+
+! L'antarctique en 15 km sur grille Le Brocq
+! use module_ant15_LBq
+
+! l'expérience Heino d'ISMIP
+!  use module_Heino
+
+
+! les experiences Ice2sea sur le Groenland
+use  grIce2sea_cutT     ! 5 km en 378x591 (intersection cartes Quiquet-Bamber)
+
+end module geography
Index: branches/GRISLIv3/TRASH-SOURCES/GrIce2sea_files/lect_GrIce2sea_gen_nc.f90
===================================================================
--- branches/GRISLIv3/TRASH-SOURCES/GrIce2sea_files/lect_GrIce2sea_gen_nc.f90	(revision 455)
+++ branches/GRISLIv3/TRASH-SOURCES/GrIce2sea_files/lect_GrIce2sea_gen_nc.f90	(revision 455)
@@ -0,0 +1,229 @@
+!> \file lect_GrIce2sa_gen_nc.f90
+!!Module pour la lecture de la topographie
+!<
+
+!> \namespace lect_topo_green_gen
+!! Module pour la lecture de la topographie
+!! \author Cat
+!! \date 31 oct 2011
+!! @note Used module
+!! @note   - use module3D_phy
+!! @note   - use param_phy_mod
+!<
+
+module lect_topo_green_gen
+
+  use geography, only: nx,ny
+
+  character(len=100) :: topo_surf      !< surface file name
+  character(len=100) :: correc_surf    !< ice-real correction file name
+! character(len=100) :: topo_thick    !< thickness file name
+  character(len=100) :: topo_bed       !< bedrock file name
+  character(len=100) :: mask_grounded  !< mask file name
+  character(len=100) :: longitude      !< longitude file name
+  character(len=100) :: latitude       !< latitude file name
+  character(len=100) :: heatflux       !< geothermal heat flux
+  logical            :: corr_firn      !< eventuellement correction firn (pour l'instant surface dejà corrigee)
+
+
+  real,dimension(nx,ny) :: work_tab 
+
+  character(len=100) :: file_ncdf      !< fichier netcdf issue des fichiers .dat
+
+contains
+
+  subroutine input_topo
+
+    use geography, only: dirnameinp
+    use runparam, only: runname
+    use module3D_phy, only: b,bsoc,bsoc0,h,h0,s,s0,mk_init,mk0,flot,ghf,ghf0
+
+    namelist/topo_groen_gen/topo_surf,correc_surf,topo_bed,mask_grounded,longitude,latitude,heatflux
+
+
+    if (itracebug.eq.1)  call tracebug(' Entree dans routine input_topo')
+
+428 format(A)
+
+    rewind(num_param)                     ! pour revenir au debut du fichier param_list.dat
+    read(num_param,topo_groen_gen)
+
+    write(num_rep_42,428)'!___________________________________________________________' 
+    write(num_rep_42,428)'!  module  lect_topo_ant_gen                                '
+    write(num_rep_42,topo_groen_gen)
+    write(num_rep_42,428)'!___________________________________________________________' 
+
+
+    if ((trim(correc_surf).eq.'no').or.(trim(correc_surf).eq.'NO')) then 
+       corr_firn=.false.
+    else
+       corr_firn=.true.
+    end if
+
+
+    topo_surf     = trim(dirnameinp)//trim(topo_surf)
+    correc_surf   = trim(dirnameinp)//trim(correc_surf)
+!   topo_thick    = trim(dirnameinp)//trim(topo_thick)
+    topo_bed      = trim(dirnameinp)//trim(topo_bed)
+    mask_grounded = trim(dirnameinp)//trim(mask_grounded)
+    longitude     = trim(dirnameinp)//trim(longitude)
+    latitude      = trim(dirnameinp)//trim(latitude)
+    heatflux      = trim(dirnameinp)//trim(heatflux)
+
+
+! Transformation des fichiers .dat en .nc
+
+    file_ncdf= trim(dirnameinp)//trim(runname)//'.nc'
+
+! lecture adaptee aux fichiers ZBL.dat ou netcdf ou grd
+
+    call lect_input(1,'Bsoc',1,Bsoc,topo_bed,file_ncdf)    ! socle
+    Bsoc0(:,:) = Bsoc(:,:)
+
+    call lect_input(1,'S',1,S,topo_surf,file_ncdf)         ! surface
+    
+!    call lect_input(1,'H',1,H,topo_thick,file_ncdf)       ! epaisseur calculee ensuite
+
+    if (itracebug.eq.1)  call tracebug(' avant corr firn')
+
+    if (corr_firn) then                                    ! density correction     
+       call lect_input(1,'work_tab1',1,work_tab,correc_surf,file_ncdf)
+
+       where (H(:,:).gt.0.)
+          work_tab(:,:)=min(H(:,:),work_tab(:,:))   
+          S(:,:) = S(:,:) - work_tab(:,:)                  ! corrected surface
+          H(:,:) = H(:,:) - work_tab(:,:)                  ! corrected thickness
+       end where
+    end if
+
+    if (itracebug.eq.1)  call tracebug(' apres corr firn')
+    H(:,:)=max(0.,H(:,:))
+    H0(:,:)= H(:,:)
+    S0(:,:)= S(:,:)
+
+
+    mk0(:,:)=0.
+    mk_init(:,:)=0.
+
+    call lect_input(1,'work_tab2',2,work_tab,mask_grounded,file_ncdf)  ! masque
+
+
+! definition du Mk_init dans ice2sea
+!__________________________________________
+!  outcrops         ->  eventuellement lu dans un autre fichier
+!  ocean libre      ->  0
+!  toundra          ->  1
+!  pose avec glace  ->  2
+!  epaisseur fixe   ->  3  masque pour ne pas traiter ces points
+!  ice shelves      ->  4
+
+    mk_init(:,:) = nint(work_tab(:,:))
+
+    if (itracebug.eq.1)  call tracebug(' avant worktab')
+
+
+! make consistency of input data files (flotation, thickness ...)
+! Rappel : dans param_phy_mod
+! coef_Sflot = (Row-Ro)/Row    S = coef_Sflot * H + sealevel pour les shelves
+! coef_Bflot = -Ro/Row   B = coef_Bflot * H + sealevel pour les shelves
+
+
+    do j=1,ny
+       do i=1,nx
+          if (mk_init(i,j).eq.0) then                     ! ocean
+             H(i,j)    = 1.                               ! valeur bidon pour l'ocean
+             S(i,j)    = coef_Sflot * H(i,j)
+             B(i,j)    = coef_Bflot * H(i,j)
+             Bsoc(i,j) = -100.                            ! on surcreuse le socle
+
+             flot(i,j) = .true.
+
+          else if  (mk_init(i,j).eq.1) then               ! toundra
+             S(i,j)    = max(Bsoc(i,j),0.)
+             H(i,j)    = S(i,j) - Bsoc(i,j) 
+             B(i,j)    = Bsoc(i,j)
+
+             flot(i,j) = .false.
+
+          else if  (mk_init(i,j).eq.2) then               ! glace
+             H(i,j)    = S(i,j) - Bsoc(i,j) 
+             B(i,j)    = Bsoc(i,j)
+             flot(i,j) = .false.   
+
+          else if  (mk_init(i,j).eq.3) then               ! zones a ne pas toucher
+             ! le traitement "fixe" se fait dans prescribe_mod 
+             H(i,j)    = S(i,j) - Bsoc(i,j) 
+             B(i,j)    = Bsoc(i,j)
+             flot(i,j) = .false.   
+
+          else if (mk_init(i,j).eq.4) then                ! ice shelf
+             H(i,j)    = S(i,j) / coef_Sflot
+             B(i,j)    = S(i,j) - H(i,j)
+             Bsoc(i,j) = min (B(i,j)-20.,Bsoc(i,j))       ! on surcreuse le socle si besoin
+             flot(i,j)=.true.
+          end if
+
+       end do
+    end do
+
+! garder les cartes debut de run
+    Bsoc0(:,:) = Bsoc(:,:)
+    H0(:,:)= H(:,:)
+    S(:,:) = B(:,:) +H(:,:)
+    S0(:,:)= S(:,:)
+
+
+    if (itracebug.eq.1)  call tracebug(' apres consistency')
+
+
+    ! pour l'Antarctique masque mko vrai partout (version 2006)
+    MK0(:,:)=1  ! mis apres la lecture cptr
+
+
+    call lect_input(1,'Xlong',1,Xlong,longitude,file_ncdf)
+    !call lect_datfile(nx,ny,Xlong,1,longitude)      ! lecture des coordonnées geographiques
+    
+    call lect_input(1,'Ylat',1,Ylat,latitude,file_ncdf)
+    !call lect_datfile(nx,ny,Ylat,1,latitude)        ! 
+
+    if (itracebug.eq.1)  call tracebug(' apres lect lon/lat')
+
+
+! pour recuperer le xmin xmax ymin ymax, on s'inspire de ce que Cat a fait pour l'antarc :
+!   write(6,*) 'topo_surf',topo_surf
+!   call Read_Ncdf_var('x',trim(topo_surf),Tab1D)    ! lit le tableau x
+!   xmin = minval(Tab1D(:))
+!   xmax = maxval(Tab1d(:))
+!   call Read_Ncdf_var('y',trim(topo_surf),Tab1D)    ! lit le tableau y
+!   ymin = minval(Tab1D(:))
+!   ymax = maxval(Tab1d(:))
+
+    open(22,file=trim(dirnameinp)//'long_ZBL_CISM_5km.dat')                         ! juste pour avoir l'en tete
+    read(22,*) i,i,xmin,xmax,ymin,ymax
+    xmin=xmin/1000.
+    ymin=ymin/1000.
+    xmax=xmax/1000.
+    ymax=ymax/1000.
+    close(22)
+
+
+    if (itracebug.eq.1)  call tracebug(' apres lect entete')
+  
+    call lect_input(1,'ghf',1,ghf,heatflux,file_ncdf)               ! flux geothermique
+
+
+    ! for the purposes of SeaRISE, GTHF should be capped at a value of -0.07 w/m^2,
+    ! and the field provided in the netCDF file does not include these updated values
+    ! ghf(:,:)=min(ghf(:,:),70.)           ! pour sea rise
+
+    ! pour passer les flux des W/m2 au J/m2/an      
+    ghf(:,:)=-SECYEAR*ghf(:,:)     !  les flux sont donnes en W/m2, correction pour passer a l'annee
+    ghf0(:,:)=ghf(:,:)
+
+    if (itracebug.eq.1)  call tracebug(' a la fin d input_topo')
+
+  end subroutine input_topo
+
+
+end module lect_topo_green_gen
+
Index: branches/GRISLIv3/TRASH-SOURCES/GrIce2sea_files/module_choix_GrIce2sea.f90
===================================================================
--- branches/GRISLIv3/TRASH-SOURCES/GrIce2sea_files/module_choix_GrIce2sea.f90	(revision 455)
+++ branches/GRISLIv3/TRASH-SOURCES/GrIce2sea_files/module_choix_GrIce2sea.f90	(revision 455)
@@ -0,0 +1,157 @@
+!> \file module_choix_antar15_LBq.f90
+!! Ce module permet de choisir quels package on veut utiliser
+!! 
+!<
+
+!> \namespace MODULE_CHOIX
+!! Ce module permet de choisir quels package on veut utiliser
+!! \author CatRitz
+!! \date ...
+!! @note Used modules
+!! @note   - use lect_topo_ant_CISM_gen
+!! @note   - use lect_clim_act_ant_gen
+!! @note   - use climat_perturb_mod
+!! @note   - use no_rsl
+!! @note   - use isostasie_mod  
+!! @note   - use deformation_mod_2lois  
+!! @note   - use  prop_thermiques_ice
+!! @note   - use eau_basale
+!! @note   - use sliding_Bindschadler
+!! @note   - use dragging_vit_bil_CISM_gen
+!! @note   - use eq_ellip_sgbsv_mod 
+!! @note   - use calving_frange
+!! @note   - use equat_adv_diff_2D_vect     
+!! @note   - use bmelt_seuil_prof
+!! @note   - use fake_ant
+!! @note   - use out_profile  
+!! @note   - use out_cptr     
+!! @note   - use out_hz       
+!! @note   - use output_antarcti_mod
+!! @note   - use printtable
+!<
+MODULE MODULE_CHOIX
+
+!--------------Lecture topo ------------------------
+! use lect_topo_heino      ! pour Heino
+! use lect_topo_anteis    ! pour l'antarctique 40 km
+
+!use lect_topo_ant_gen    ! read antarctic topo with .dat files
+!use lect_topo_ant_CISM_gen
+!use lect_topo_nord40    ! pour l'hemisphere nord 40 km
+!use lect_topo_eurasie   ! pour l'eurasie  (toute resolutions)
+
+use lect_topo_green_gen  ! lecture generale pour le groenland
+
+!--------------Lecture climat ref ------------------
+
+! use lect_clim_act_ant_gen
+! use lect_clim_acc_T_ant_gen
+
+! use lect_climref_Ice2sea ! pour les experiences avec le climat de reference
+
+! use lect_clim_act_nord40 ! pour l'hemisphere nord et l'eurasie
+! use  climat_heino
+
+!--------------Lecture climat forcage---------------
+!use climat_perturb_mod
+!use climat_forcage_mod
+!use climat_synthes_mod
+!use climat_profil_mod
+!use climat_regions_delta
+!use climat_Grice2sea_mod    ! pour les experiences ice2sea
+
+use climat_smb_perturb_mod
+
+! calcul de l'ablation
+use no_ablation ! pas de calcul de l'ablation => lecture fichier SMB
+
+! pas de differences locales de niveau marin
+use no_rsl
+
+! suivi des traceurs ou pas ?
+!use tracer_mod
+! attention tracer fait appel a un modele climat qui doit etre compatible avec celui choisi 
+! dans modile choix.
+
+use notracer_mod
+
+!--------------Choix isostasie----------------------
+use isostasie_mod  ! module permettant de calculer la deflexion isostasique
+!use noisostasie_mod ! module pour ne pas avoir d'isostasie
+
+
+!--------------Module Physique---------------------
+!use deformation_mod  ! module concernant les lois de deformation
+use deformation_mod_2lois   ! module concernant les lois de deformation
+
+!--------------Module propriete thermique de la glace
+! use prop_therm_ice_heino
+
+! eau basale
+use eau_basale
+
+! sliding- dragging
+! use module sliding_vitbal
+! use sliding_Bindschadler
+use no_sliding
+! use sliding_dragging_heino    ! loi de glissement heino : mis dans diffusiv : 
+
+! use dragging_vit_bil_LBq_gen
+!use dragging_vitbil
+! use dragging_hwatstream
+
+!use dragging_hwat_cont
+
+!use dragging_hwat_contmaj
+
+! use dragging_vit_bil_CISM_gen
+! use dragging_calc_beta           ! tourne en "no_spinup" qui contient les fake
+!use dragging_prescr_beta
+!use beta_iter_vitbil_mod
+use dragging_beta_iter_vitbil_mod
+!use dragging_LGM
+!use dragging_plastic_LGM
+!------------ spinup -----------------------------------
+use no_spinup             ! spinup=0 ou spinup=1 
+!use spinup_vitbil        ! plusieurs variantes de spinup : inclue le dragging
+                          ! enlever le use dragging dans ce cas là
+
+use furst_schoof_mod  ! module pour calcul flux gr line
+
+! module concernant l'eq. elliptique (pour les streams et shelves)
+! use eq_elliptique_mod ! ancienne version (remplimat-5)
+use eq_ellip_sgbsv_mod ! nouvelle version juillet 2008
+
+! calving
+use calving_frange
+
+! choix resolution de la conservation de la masse
+!-----------------------------------------------
+!use equat_adv_diff_2D          ! conservation masse avec advection-diffusion
+use equat_adv_diff_2D_vect      ! le vecteur est maintenant dans l'appel
+
+!--------------Fusion basale------------------------
+!use bmelt_ant_regions ! pour l'Antarctique avec régions
+
+use bmelt_seuil_prof
+
+! USE BMELT_NOR_REGIONS ! pour le nord avec régions
+! use BMELT_NOR_DEPTH   ! pour le nord avec profondeur d'eau
+
+
+! fake -------fausses routines pour compatibilités
+! use fake_heino
+! use fake_ant
+use fake_grice2sea
+! use fake_nord
+!-------------- Outputs-----------------------------
+!
+use out_profile  !profils
+
+!-----Suivi temporel
+! use output_heminord_mod
+! use output_antarcti_mod
+use output_grice2sea_mod
+! use output_heino
+
+end module module_choix
Index: branches/GRISLIv3/TRASH-SOURCES/GrIce2sea_files/output_Grice2sea_mod.f90
===================================================================
--- branches/GRISLIv3/TRASH-SOURCES/GrIce2sea_files/output_Grice2sea_mod.f90	(revision 455)
+++ branches/GRISLIv3/TRASH-SOURCES/GrIce2sea_files/output_Grice2sea_mod.f90	(revision 455)
@@ -0,0 +1,369 @@
+!> \file GrIce2sea_files/output_Grice2sea-regions_mod.f90
+!> \namespace output_grice2sea_mod
+
+!! Module de sortie temporelle Grice2sea avec regions 
+!! \author Cat
+!! \date ...
+!! @note Used module
+!! @note   - use module3D_phy
+!! @note   - use param_phy_mod
+!<
+
+
+module output_grice2sea_mod
+
+  use geography, only: nx,ny
+
+  implicit none
+      
+!real ::  vol ; !integer :: np
+  real ::  bmean                        !<
+  real ::  accmean                      !< accumulation moyenne
+  real ::  ablmean                      !< ablation moyenne
+  real ::  calvmean                     !< moyenne calving
+  real ::  ablbordmean                  !<
+  real ::  bmeltmean                    !< moyenne fusion basale
+  real ::  tbmean                       !< temperature basale moyenne
+  real ::  tbdotmean                    !< moyenne variation / temps temperature basale
+  real ::  vsmean                       !< vitesse de surface moyenne
+  real ::  uzsdotmean                   !< moyenne variation / temps vitesse verticale de surface
+  real ::  uzkmean                      !< moyenne vitesse verticale de surface
+  real ::  hdotmean                     !< moyenne derivee / temps de h
+  real ::  bdotmean                     !< moyenne bedrock derive / temps
+  real ::  volf                         !< volume au dessus de la flottaison
+  
+  
+! dimensionnement pour les bassins ou regions
+  
+  integer,parameter              :: nbreg_max=20      !< nombre maxi de regions
+  integer                        :: nbregions         !< nombre de region
+  integer                        :: i_region          !< index des regions
+  integer                        :: scal_np           !< nombre de points grounded par region
+  integer, dimension(nbreg_max)  :: np_reg            !< nombre de points grounded par region
+  integer, dimension(nx,ny)      :: mask_region       !< carte des region
+  integer, dimension(nbreg_max)  :: nbpoint_reg       !< nb de points par region
+  
+  real, dimension(nbreg_max)     :: vol_reg           !< volumes par region (points grounded)
+  real, dimension(nbreg_max)     :: volbuoy_reg       !< volumes au dessus flottaison par region
+  real, dimension(nbreg_max)     :: meanhdot_reg      !< hdot moyens par region 
+  real, dimension(nbreg_max)     :: sigma_hdot_reg    !< sigma hdot  par region 
+  real, dimension(nbreg_max)     :: smb_reg           !< bilan de masse en surface
+  
+  real                           :: scal_vol           !< volumes par region (points grounded)
+  real                           :: scal_volbuoy       !< volumes au dessus flottaison par region
+  real                           :: scal_meanhdot      !< hdot moyens par region 
+  real                           :: scal_sigma_hdot    !< sigma hdot  par region 
+  real                           :: scal_smb           ! bilan de mass en surface par region
+  
+  
+  integer                        :: nvol        = 250 !< numero du fichier volume     
+  integer                        :: nvolbuoy    = 251 !< numero du fichier volume au dessus flottaison   
+  integer                        :: nhdot       = 252 !< numero du fichier hdot mean  
+  integer                        :: nsigma_hdot = 253 !< numero du fichier hdot sigma
+  integer                        :: npoints     = 254 !< numero du fichier nb de points
+  integer                        :: nsmb        = 255 !< numero du fichier smb
+  
+  
+contains
+  
+!_______________________________________________________________________________
+!< initialise les sorties
+  
+  subroutine init_outshort
+   
+    use runparam, only: runname,dirnameout,itracebug
+    use geography, only: dirnameinp,nx,ny
+    use module3d_phy, only: num_param,ndisp,num_rep_42
+    use io_netcdf_grisli, only: read_ncdf_var
+
+    implicit none
+    
+    real*8, dimension(:,:),   pointer  :: work_tab    !< tableau 2d real ecrit dans le fichier   
+    character(len=100)    :: file_ncdf      !< fichier netcdf issue des fichiers .dat
+    
+    
+    
+    
+    character(len=100) :: region_file                  !  Fichier dans lequel sont les regions
+    character(len=100) :: filout                       !  Pour fichier ecriture
+    namelist/output_regions/nbregions,region_file
+    
+    if (itracebug.eq.1)  call tracebug('output_grice2sea_mod   subroutine init_out_short')
+    
+    
+    ndisp = 1                                          ! ndisp sortie courte tous les ndisp
+    
+    
+!    lecture des regions     -----------------------------------------------------
+    
+    rewind(num_param)        ! pour revenir au debut du fichier param_list.dat
+428 format(A)
+    read(num_param,output_regions)
+    
+    write(num_rep_42,428) '!___________________________________________________________' 
+    write(num_rep_42,428) '!  sorties temporelles par regions'
+    write(num_rep_42,output_regions)                    
+    write(num_rep_42,428) '! nbregions = nombre de regions'
+    write(num_rep_42,428) '! region_file = carte des regions '
+    write(num_rep_42,428) '!___________________________________________________________' 
+    
+    
+! lecture du masque region
+    file_ncdf   = trim(dirnameinp)//'test_map_region'//'.nc'
+    region_file = trim(dirnameinp)//region_file
+    write(6,*) file_ncdf
+    write(6,*) region_file
+!    call lect_input(1,'mask_region',1,work_tab,region_file,file_ncdf)
+    call Read_Ncdf_var('z',region_file,work_tab)
+
+
+    mask_region(:,:) = work_tab(:,:)
+    if (mask_region((nx-1)/2,(ny-1)/2).eq.0) then
+       write(6,*) 'mauvaise lecture du fichier region'
+       STOP
+    end if
+    
+    
+! ouverture des fichiers par type de variable, toutes les regions dans le meme fichier
+    
+    filout   = runname//'_vol_regions.dat'
+    filout    = TRIM(DIRNAMEOUT)//TRIM(filout)
+    open(nvol,file=filout)
+    
+    filout   = runname// '_volbuoy_regions.dat'
+    filout    = TRIM(DIRNAMEOUT)//TRIM(filout)
+    open(nvolbuoy,file=filout)
+    
+    filout   = runname//'_meanhdot_regions.dat'
+    filout    = TRIM(DIRNAMEOUT)//TRIM(filout)
+    open(nhdot,file=filout)
+    
+    filout   = runname//'_sigmahdot_regions.dat'
+    filout    = TRIM(DIRNAMEOUT)//TRIM(filout)
+    open(nsigma_hdot,file=filout)
+    
+    filout   = runname//'_nbpoints_regions.dat'
+    filout    = TRIM(DIRNAMEOUT)//TRIM(filout)
+    open(npoints,file=filout)
+    
+    filout   = runname//'_smb_regions.dat'
+    filout    = TRIM(DIRNAMEOUT)//TRIM(filout)
+    open(nsmb,file=filout)
+    
+  end subroutine init_outshort
+  
+  
+  
+!_________________________________________________________________________
+  subroutine shortoutput
+
+    use runparam, only: itracebug,nt
+    use geography, only: nx,ny,nz,dx,dy
+    use param_phy_mod, only: ro,row
+    use module3D_phy, only: flot,h,b,sealevel_2d,vol,np,hmax,s,bm,acc,t,tbdot,ux,uy   &
+                          ,uzsdot,uzk,hdot,bdot,bmelt,calv,ablbord,hmean,time,num_ritz &
+                          ,tafor,sealevel,dt
+
+    implicit none
+
+    real ::  smax
+    integer :: i,j
+
+    if (itracebug.eq.1)  call tracebug('output_grice2sea_mod   subroutine shortoutput')
+
+    
+! Sorties pour toute la calotte (ancienne version)
+    
+! 1_initialization
+!------------------
+
+    vol=0. 
+    np=0
+    hmax=0. 
+    smax=0.
+    bmean=0. 
+    accmean=0. 
+    ablmean=0. 
+    calvmean=0.  
+    ablbordmean=0.
+    bmeltmean=0.
+    tbmean=0.
+    tbdotmean=0.
+    vsmean=0.
+    uzsdotmean=0.
+    uzkmean=0.
+    hdotmean=0.
+    bdotmean=0.
+    volf=0.
+    
+! 2_preparing outputs
+!--------------------      
+    do i=1,nx 
+       do j=1,ny
+          if (.not.flot(i,j)) then 
+             !       if (h(i,j).gt.1.) then 
+             np=np+1
+             vol=vol+h(i,j) 
+             
+             !        calcul de la hauteur au dessus de la flottaison
+             if (sealevel_2d(i,j)-B(i,j).le.0.) then    ! socle au dessus du niveau des mers
+                volf=volf+h(i,j)
+             else
+                volf=volf+h(i,j)-row/ro*(sealevel_2d(i,j)-b(i,j))
+             endif
+             
+             
+             if (h(i,j).gt.hmax) hmax=h(i,j) 
+             if (s(i,j).gt.smax) smax=s(i,j) 
+             bmean=bm(i,j)+bmean 
+             accmean=acc(i,j)+accmean
+             tbmean=tbmean+t(i,j,nz)
+             tbdotmean=tbdotmean+tbdot(i,j)
+             vsmean=vsmean+sqrt(ux(i,j,1)**2+uy(i,j,1)**2)
+             uzsdotmean=uzsdotmean+uzsdot(i,j)
+             uzkmean=uzkmean+uzk(i,j)
+             hdotmean=hdotmean+abs(hdot(i,j)) 
+             bdotmean=bdotmean+abs(bdot(i,j)) 
+             bmeltmean=bmeltmean+bmelt(i,j)
+          endif
+          calvmean=calvmean+calv(i,j)  
+          ablbordmean=ablbordmean+ablbord(i,j)
+       end do
+    end do
+    
+    
+    if (np.ne.0) then 
+       hmean=vol/np 
+       vol=vol*dx*dy 
+       volf=volf*dx*dy
+       bmean=bmean/np 
+       accmean=accmean/np 
+       ablmean=bmean-accmean 
+       calvmean=calvmean/np 
+       bmeltmean=bmeltmean/np
+       ablbordmean=ablbordmean/np
+       tbmean=tbmean/np
+       tbdotmean=tbdotmean/np
+       vsmean=vsmean/np
+       !        vsdotmean=vsdotmean/np
+       !        uzsmean=uzsmean/np
+       uzsdotmean=uzsdotmean/np
+       uzkmean=uzkmean/np
+       hdotmean=hdotmean/np 
+    endif
+    
+    bdotmean=bdotmean/nx/ny  
+    
+    
+! 2_writing outputs
+!------------------    
+!     **** short display **** 
+    
+    write(num_ritz,903) nt,time,tafor,sealevel,vol,volf,np, &
+         nint(hmean),nint(smax),                    &
+         bmean,tbmean,nint(vsmean),                 &
+         !         tbdotmean,vsdotmean,hdotmean,bdotmean,    &
+         !          tbdotmean,hdotmean,dt,bmeltmean,accmean 
+         
+         tbdotmean,hdotmean,dt,bmelt(3,3),accmean 
+    
+    
+903 format(i8,1x,f0.2,1x,f0.4,1x,f0.2,1x,2(e15.8,1x),i0,1x,i0,1x,i0,1x, &
+         f0.4,1x,f0.3,1x,i0,4(1x,e11.4),1x,f0.4,1x,f0.4) 
+    !940   format('%%%% ',a,'   time=',f8.0,' %%%%')
+    
+    
+    call output_regions
+    
+    
+  end subroutine shortoutput
+  
+!----------------------------------------------------------------------------
+  subroutine output_regions
+    
+    use runparam, only: itracebug
+    use param_phy_mod, only: ro,row
+    use geography, only: dx
+    use module3D_phy, only: time,h,b,flot,hdot,bm,sealevel_2d
+
+    implicit none
+
+    character(len=100)    :: fmt1,fmt2,fmt3
+    character(len=2)      :: string_region
+
+    integer :: i,j
+
+    if (itracebug.eq.1)  call tracebug('output_grice2sea_mod   subroutine output_regions')
+
+
+    region:  do  i_region = 1, nbregions
+       
+! initialisation
+       scal_vol        = 0.
+       scal_volbuoy    = 0.
+       scal_meanhdot   = 0.
+       scal_sigma_hdot = 0.
+       scal_np         = 0
+       scal_smb        = 0.
+       
+       do i=1,nx 
+          do j=1,ny
+!             write(165,*) i_region,i,j,mask_region(i,j),flot(i,j)
+
+! Attention, pour le Groenland le test porte aussi sur l'epaisseur
+! pour le smb, on perd sans doute la demi maille des points ou H=0
+
+             if ((mask_region(i,j).eq.i_region).and.(.not.flot(i,j)).and.H(i,j).gt.1.) then 
+ 
+                scal_np         =  scal_np + 1
+                scal_vol        =  scal_vol + H(i,j)
+                scal_volbuoy    =  scal_volbuoy + H(i,j) - row/ro * max(0.,sealevel_2d(i,j)-b(i,j))
+                scal_meanhdot   =  scal_meanhdot + Hdot(i,j)
+                scal_sigma_hdot =  scal_sigma_hdot + Hdot(i,j)**2
+                scal_smb        =  scal_smb + bm(i,j)
+             end if
+          end do
+       end do
+       
+       np_reg (i_region)         = scal_np
+       vol_reg(i_region)         = scal_vol*dx*dx
+       volbuoy_reg(i_region)     = scal_volbuoy*dx*dx
+       smb_reg(i_region)         = scal_smb*dx*dx
+
+       if (scal_np.ne.0) then
+          meanhdot_reg(i_region)    = scal_meanhdot/scal_np
+          sigma_hdot_reg(i_region)  = (scal_sigma_hdot/scal_np)**0.5
+       else
+          write(6,*) 'region',i_region,'  n a aucun point grounded'
+       end if
+    end do region
+    
+    
+! ecriture dans les fichiers
+    write(string_region,"(i0)")  nbregions+1
+    fmt1   = '(f10.1,4x,'//string_region//'(es15.8,1x))'
+    fmt2   = '(f10.1,4x,'//string_region//'(i8,1x))'
+
+    write(string_region,"(i0)")  nbregions
+    fmt3   = '(f10.1,4x,'//string_region//'(es15.8,1x))'
+!    write(6,*) fmt1
+!    write(6,*) fmt2
+
+
+    write(nvol,fmt1)        time, sum(vol_reg(1:nbregions)),         &
+                                     (vol_reg(i_region)       ,  i_region = 1,nbregions) 
+    write(nvolbuoy,fmt1)    time, sum(volbuoy_reg(1:nbregions)),     &
+                                     (volbuoy_reg(i_region)   ,  i_region = 1,nbregions) 
+    write(nsmb,fmt1)        time, sum(smb_reg(1:nbregions)),     &
+                                     (smb_reg(i_region)   ,  i_region = 1,nbregions) 
+    write(nhdot,fmt1)       time, sum(meanhdot_reg(1:nbregions)),    &
+                                     (meanhdot_reg(i_region)  ,  i_region = 1,nbregions) 
+    write(npoints,fmt2)     time, sum(np_reg(1:nbregions)),          &
+                                     (np_reg(i_region)        ,  i_region = 1,nbregions) 
+
+    write(nsigma_hdot,fmt3) time, (sigma_hdot_reg(i_region),  i_region = 1,nbregions) 
+    
+    
+  end subroutine output_regions
+  
+end module output_grice2sea_mod
Index: branches/GRISLIv3/TRASH-SOURCES/GrIce2sea_files/paradim-GrIce2sea-cut_Tamsin.f90
===================================================================
--- branches/GRISLIv3/TRASH-SOURCES/GrIce2sea_files/paradim-GrIce2sea-cut_Tamsin.f90	(revision 455)
+++ branches/GRISLIv3/TRASH-SOURCES/GrIce2sea_files/paradim-GrIce2sea-cut_Tamsin.f90	(revision 455)
@@ -0,0 +1,39 @@
+!> \file paradim-GrIce2sea-378-591.f90
+!! Def des dimensions de la grille Groenland intersection Bamber-Aurelien
+!<
+
+!> \namespace grIce2sea_cut1
+!! Def des dimensions de la grille Groenland intersection Bamber-Aurelien
+!! \author Cat
+!! \date 11 oct 2011
+!! @note prescribe nx,ny,  dimension of most arrays
+!! for Groenland Ice2sea in 5 km
+!<
+
+module grIce2sea_cutT    
+
+implicit none
+
+! character
+character(len=7),  parameter  :: geoplace='GI2S_5T'
+character(len=53), parameter  :: dirnameinp='../../INPUT/GrIce2sea-5km-cut-Tamsin/' !< input directory
+character(len=17), parameter  :: dirforcage='../../INPUT/Forcage/'           !< input directory
+
+! dimensionnement grilles
+!-------------------------
+integer, parameter :: nx=301           !< dimension selon x (indice i)
+integer, parameter :: ny=561           !< dimension selon y (indice j)
+
+integer, parameter :: nlmin=561        !< min(nx,ny), pour matrice elliptique  
+integer, parameter :: nz=21            !< dimension selon z (indice k) 
+integer, parameter :: nzm=4            !< nb de points verticaux dans le socle
+integer, parameter :: nn=199           !< pour les sorties
+
+
+! pas horizontal
+!-----------------
+real, parameter    :: dx=5000.0        !< pas en X en m
+real, parameter    :: dy=5000.0        !< pas en Y en m
+
+
+end module grIce2sea_cutT
