Changeset 100


Ignore:
Timestamp:
04/12/17 13:57:18 (7 years ago)
Author:
aquiquet
Message:

Calving_frange: hcoup as a function of bathymetry. Updated hemin40_param_list.dat commited as an example for other geometries.

Location:
trunk/SOURCES
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/SOURCES/Fichiers-parametres/hemin40_param_list.dat

    r82 r100  
    2020 
    2121 igrdline     =            0 
     22 Schoof       =            0 
    2223 / 
    2324! igrdline :  1 ligne d echouage fixée, sinon 0 
     
    167168&calving                        !   nom du bloc calving méthode Vincent  
    168169  
    169 Hcoup           =       200     !   tres petit quand shelves fixes sinon 250 
    170 ifrange         =       4  
    171 meth_Hcoup      =       0  
    172 / 
    173  
    174 ! Hcoup epaisseur de coupure  
    175 ! ifrange=0 -> pas de traitement particulier sur les bords' 
    176 ! ifrange=1 -> traitement de Vincent avec ice shelves frangeants' 
     170Hcoup_plateau   =       50     !   tres petit quand shelves fixes sinon 250 
     171Hcoup_abysses   =       300     !   tres petit quand shelves fixes sinon 250 
     172prof_plateau   =       50     !   tres petit quand shelves fixes sinon 250 
     173prof_abysses   =       1000     !   tres petit quand shelves fixes sinon 250 
     174ifrange         =       4 
     175meth_Hcoup      =       0 
     176/ 
     177 
     178! Hcoup epaisseurs de coupure pour les zones peu prodondes et profondes 
     179! Hcoup_plateau<Hcoup_abysses && prof_plateau<prof_abysse 
     180! prof profondeur delimitant les zones peu prodondes et profondes 
     181! ifrange=0 -> pas de traitement particulier sur les bords 
     182! ifrange=1 -> traitement de Vincent avec ice shelves frangeants 
    177183! ifrange=2 -> ice shelves frangeant seulement si bm-bmelt positif 
     184! meth_hcoup pour faire eventuellement varier Hcoup avec le climat 
    178185!____________________________________________________________ 
    179186! loi de deformation 1          module deformation_mod_2lois 
     
    226233! tres petit par rapport aux valeurs standards ~ 1.e10 
    227234!___________________________________________________________  
     235 
     236! furst_schoof 
     237&furst_schoof 
     238 
     239frot_coef = 0.6   !0.035 
     240gr_select = 1 
     241/ 
     242! frot_coef  = ',frot_coef 
     243! gr_select  = ',gr_select 
     244! gr_select = 1 : Tsai , 2 : Schoof' 
     245!___________________________________________________________ 
    228246 
    229247! glissement                   module  sliding_Bindschadler  
     
    407425! 
    408426!___________________________________________________________ 
     427&drag_param_beta                              ! drag_beta_param_mod 
     428 
     429beta_intercept = -2. !-0.08898 
     430beta_slope     = 0.95     !0.57570 
     431betamax    = 5.e5     ! maximum value of beta 
     432betamin    = 1 !10.   ! minimum value of beta 
     433coef_ile   = 0.1 
     434/ 
     435! 
     436!___________________________________________________________ 
    409437&spinup                                ! warning : 2 different modules 
    410438ispinup = 0 
  • trunk/SOURCES/calving_frange.f90

    r99 r100  
    2121real, dimension (nx,ny) :: hmhc  ! hauteur au dessus de la coupure 
    2222real, dimension (nx,ny) :: bil_tot ! bilan surface et fond (bm-bmelt) 
    23 real :: hcoup ! epaiseur de coupure au temps time 
    24 real :: hcoup_max  ! epaisseur max 
    25 real :: hcoup_min=100.  ! epaisseur min 
     23real, dimension (nx,ny) :: hcoup ! epaiseur de coupure au temps time 
     24real :: hcoup_plateau  ! coupure points peu profonds 
     25real :: hcoup_abysses  ! coupure points ocean profond 
     26real :: prof_plateau  ! profondeur max des points peu profonds 
     27real :: prof_abysses  ! profondeur min des points ocean profond 
    2628integer :: meth_hcoup  ! pour avoir hcoup dépendant du coefbmshelf 
    2729integer :: ifrange        !  0 pas de traitement particulier pres du bord, 1 -> franges 
     
    3638subroutine init_calving 
    3739 
    38 namelist/calving/Hcoup,ifrange,meth_hcoup 
     40namelist/calving/Hcoup_plateau,Hcoup_abysses,prof_plateau,prof_abysses,ifrange,meth_hcoup 
    3941 
    4042 
     
    5557write(num_rep_42,428) '&calving              ! nom du bloc calving méthode Vincent ' 
    5658write(num_rep_42,*) 
    57 write(num_rep_42,*)   'Hcoup      = ', Hcoup 
    58 write(num_rep_42,*)   'ifrange    = ',ifrange 
     59write(num_rep_42,*)   'Hcoup_plateau  = ', Hcoup_plateau 
     60write(num_rep_42,*)   'Hcoup_abysses  = ', Hcoup_abysses 
     61write(num_rep_42,*)   'prof_plateau  = ', prof_plateau 
     62write(num_rep_42,*)   'prof_abysses  = ', prof_abysses 
     63write(num_rep_42,*)   'ifrange    = ', ifrange 
    5964write(num_rep_42,*)   'meth_hcoup = ', meth_hcoup 
    6065write(num_rep_42,*)'/' 
    6166                             
    62 write(num_rep_42,428) '! Hcoup epaisseur de coupure, le max si attache a coefbmshelf ' 
     67write(num_rep_42,428) '! Hcoup epaisseurs de coupure pour les zones peu prodondes et profondes' 
     68write(num_rep_42,428) '! Hcoup_plateau<Hcoup_abysses && prof_plateau<prof_abysses' 
     69write(num_rep_42,428) '! prof profondeur delimitant les zones peu prodondes et profondes' 
    6370write(num_rep_42,428) '! ifrange=0 -> pas de traitement particulier sur les bords' 
    6471write(num_rep_42,428) '! ifrange=1 -> traitement de Vincent avec ice shelves frangeants partout' 
    6572write(num_rep_42,428) '! ifrange=2 -> ice shelves frangeants seulement si bm-bmelt positif' 
    6673write(num_rep_42,*)   '! meth_hcoup pour faire eventuellement varier Hcoup avec le climat' 
    67 write(num_rep_42,*)   '! Hcoup_min=',Hcoup_min 
     74write(num_rep_42,*)   '! Hcoup_plateau=',Hcoup_plateau 
     75write(num_rep_42,*)   '! Hcoup_abysses=',Hcoup_abysses 
     76write(num_rep_42,*)   '! prof_plateau=',prof_plateau 
     77write(num_rep_42,*)   '! prof_abysses=',prof_abysses 
    6878write(num_rep_42,*) 
    6979 
    70 Hcoup_max=Hcoup 
     80 
     81! afq -- coupure depend de la profondeur: 
     82! 
     83!  hcoup                       prof_abysses 
     84!   ^                               v  
     85!   |                                _______ hcoup_abysses 
     86!   |                               / 
     87!   |                              / 
     88!   |                             / 
     89!   |                            / 
     90!   |      hcoup_plateau _______/ 
     91!                               ^ 
     92!                          prof_plateau      
     93 
     94Hcoup(:,:) = min ( max(                                         & 
     95     (-(Bsoc0(:,:)-sealevel) - prof_plateau)/(prof_abysses-prof_plateau)    & 
     96     *(hcoup_abysses-hcoup_plateau)+hcoup_plateau               & 
     97     , hcoup_plateau), hcoup_abysses ) 
     98 
     99if (meth_hcoup.eq.1) then 
     100   Hcoup(:,:)=coefbmshelf*Hcoup(:,:) 
     101   Hcoup(:,:)=min( max(Hcoup (:,:),Hcoup_plateau),Hcoup_abysses) 
     102else if (meth_hcoup.eq.2) then 
     103   Hcoup(:,:)=coefbmshelf*Hcoup(:,:) 
     104   Hcoup(:,:)=max(Hcoup(:,:),Hcoup_plateau) 
     105endif 
     106 
    71107 
    72108end subroutine init_calving 
     
    83119bil_tot(:,:)=0.5*(bm(:,:)-bmelt(:,:)) 
    84120 
    85 ! coupure 
    86 if (meth_hcoup.eq.0) then 
    87    Hcoup=Hcoup_max 
    88 else if (meth_hcoup.eq.1) then 
    89    Hcoup=coefbmshelf*Hcoup_max 
    90    Hcoup=min(Hcoup,Hcoup_max) 
    91    Hcoup=max(Hcoup,Hcoup_min) 
    92  
     121Hcoup(:,:) = min ( max(                                         & 
     122     (-(Bsoc(:,:)-sealevel) - prof_plateau)/(prof_abysses-prof_plateau)    & 
     123     *(hcoup_abysses-hcoup_plateau)+hcoup_plateau               & 
     124     , hcoup_plateau), hcoup_abysses ) 
     125 
     126if (meth_hcoup.eq.1) then 
     127   Hcoup(:,:)=coefbmshelf*Hcoup(:,:) 
     128   Hcoup(:,:)=min( max(Hcoup (:,:),Hcoup_plateau),Hcoup_abysses) 
    93129else if (meth_hcoup.eq.2) then 
    94    Hcoup=coefbmshelf*Hcoup_max 
    95    Hcoup=max(Hcoup,Hcoup_min) 
     130   Hcoup(:,:)=coefbmshelf*Hcoup(:,:) 
     131   Hcoup(:,:)=max(Hcoup(:,:),Hcoup_plateau) 
    96132endif 
    97133 
    98134! hauteur au dessus de la coupure 
    99 hmhc(:,:)=H(:,:)-Hcoup 
     135hmhc(:,:)=H(:,:)-Hcoup(:,:) 
    100136 
    101137! coupure de l'ice shelf 
     
    108144 
    109145 
    110 ifext:  if((flot(i,j)).and.(h(i,j).le.hcoup))  then 
     146ifext:  if((flot(i,j)).and.(h(i,j).le.hcoup(i,j)))  then 
    111147! ifext: pour les noeuds flottants avec h < hcoup  
    112148 
Note: See TracChangeset for help on using the changeset viewer.