Changeset 12 for trunk


Ignore:
Timestamp:
04/02/15 11:44:24 (9 years ago)
Author:
dumas
Message:

module climat_Grice2sea_years_mod : massb_time : ajout de l'option sans interpolation verticale

Location:
trunk/SOURCES
Files:
7 edited

Legend:

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

    r4 r12  
    33!___________________________________________________________ 
    44&runpar                       ! nom du bloc parametres du run 
    5  runname      =  "GISCAM30"   ! 8 caracteres  
     5 runname      =  "DEBUG001"   ! 8 caracteres  
    66 icompteur    =    1    
    77 iout         =    2           
    8  reprcptr     =  "../Fichier-CPTR/GISCAM29_350ans.nc"  ! "../Fichier-CPTR/GI2S_003_100ans-relax.nc" 
     8 reprcptr     =  "../../Fichier-CPTR/GISCAM29_350ans.nc"  ! "../Fichier-CPTR/GI2S_003_100ans-relax.nc" 
    99 itracebug    = 0 
    1010 num_tracebug = 163      
    11  comment_run  = "idem 28 pour tester effet beta zones actuellement non englacees " 
     11 comment_run  = "Test sur base GISCAM36" 
    1212! runname    : nom de l experience (8 caracteres) 
    1313! icompteur  : reprise dans un fichier  0 -> non, 1 -> oui, 2 -> T et Hwat 
     
    2525&timesteps                ! bloc timestep 
    2626 
    27  tend      =   200. 
    28  tbegin    =   0         !1.e10      ! si tbegin > 1.e9 on prend le temps du fichier cptr 
     27 tend      =   2200. 
     28 tbegin    =   1995         !1.e10      ! si tbegin > 1.e9 on prend le temps du fichier cptr 
    2929 dtmin     =   1.e-3 
    3030 dtmax     =   1.   !20.         ! 1.        ! 10.   ! 0.1 
     
    192192/ 
    193193! remarques : l'epaisseur n'est pas lue mais calculee a partir du masque 
    194 !  
     194 
    195195!---------------------------------------------------------- 
    196196!  module lect_climref_Ice2sea     
    197197&clim_smb_T_gen 
    198  
    199198smb_file         = 'smb_ERAI_MAR_highres_1989-2008mean.grd' !'smb_data_from_CISM_to_ice2sea.grd'       ! smb (en kg/m2/an 
    200 coef_smb_unit    = 1.0989e-3                                 ! 1/910 
     199coef_smb_unit    = 1.0893e-3    ! 1.0989e-3          ! 1.0989e-3  pour1/910  1.0893e-3 pour 1/918 (valeur habituelle) 
    201200temp_annual_file ='Tann-cism.grd'                            ! annual surface temperature 
    202201/ 
     
    207206/ 
    208207!---------------------------------------------------------- 
     208!  module climat_Grice2sea_years_mod 
    209209&clim_snap 
    210210nb_snap           = 200 
     
    212212ecart_snap        = 1. 
    213213file_smb_snap     = 'smb_ECHAM5_A1B_MAR_highres_all_time.nc' 
    214 / 
    215 !---------------------------------------------------------- 
     214massb             = 1     ! 0=fixe, 1:interp snapshots, 2:snapshots+interp vert 
     215/ 
     216!---------------------------------------------------------- 
     217&grad_smb                        !routine init_grad_smb  
     218file_grad_smb     = 'GRISLI_gradients_MAR_00.txt' 
     219/ 
     220!--------------------------------------------------------- 
    216221&bmelt_seuil                     ! module  bmelt_seuil_prof 
    217222bm_grz           = 50.      !3 
     
    228233beta_c_file = 'beta-GISCAM23_20ans.grd'        ! 'beta_Fab_10avril12_bord.grd'    ! 'beta_fab_comb_alpha_v4.grd' 
    229234beta_limgz  = .5e6                             ! -1.e12 pour plastic ?    ! .5e6 en visqueux    
    230 beta_min    = 1 !10.                              ! for grounded ice (Pa) 
     235beta_min    = 1 !10.                           ! for grounded ice (Pa) 
    231236beta_mult   = 1.                               ! coefficient multiplicateur     
    232237/ 
  • trunk/SOURCES/Fichiers-parametres/LISTE-VAR-NETCDF.dat

    r4 r12  
    114114Bm               
    11511510 
    116 1       1       -1                               
     1161       1       1                                
    117117----------------------------------------------------------- 
    118118Acc              
    11911911       
    120 1       4       0                                
     1201       4       1                                
    121121----------------------------------------------------------- 
    122122Abl              
    12312312 
    124 1       1       -1               
     1241       1       1                
    125125----------------------------------------------------------- 
    126126Calv             
    12712713 
    128 0       1       -1                               
     1280       1       1                                
    129129----------------------------------------------------------- 
    130130dHdt             
  • trunk/SOURCES/Fichiers-parametres/TEMPS-HZ.dat

    r4 r12  
    17171.e10 
    1818------------------------------------------------------------------------------------------- 
    19 1       npredeft        lecture de predef_tsort 
    20 200000 
    21 5010 
    22 5020 
    23 5050 
    24 5100 
    25 5200 
    26 5300 
    27 5400 
    28 5500 
    29 5600 
    30 5700 
    31 5800 
    32 5900 
    33 6000 
    34 6500 
    35 7000 
    36 7500 
    37 8000 
    38 100 
    39 150 
    40 200 
    41 250 
    42 300 
    43 350 
    44 400 
    45 450 
    46 500 
    47 300 
    48 400 
    49 3000 
    50 4000 
     193       npredeft        lecture de predef_tsort 
     2010. 
     21100. 
     22500. 
    5123 
  • trunk/SOURCES/Fichiers-parametres/hemin40_LISTE-VAR-NETCDF.dat

    r9 r12  
    114114Bm               
    11511510 
    116 1       1       -1                               
     1161       1       1                                
    117117----------------------------------------------------------- 
    118118Acc              
    11911911       
    120 1       4       0                                
     1201       4       1                                
    121121----------------------------------------------------------- 
    122122Abl              
    12312312 
    124 1       1       -1               
     1241       1       1                
    125125----------------------------------------------------------- 
    126126Calv             
    12712713 
    128 0       1       -1                               
     1280       1       1                                
    129129----------------------------------------------------------- 
    130130dHdt             
  • trunk/SOURCES/GrIce2sea_files/climat_GrIce2sea_years_mod.f90

    r11 r12  
    6464integer                              :: status            !> pour la sortie test netcdf 
    6565 
    66 integer                              :: massb             !< pour selectionner le type de calcul de smb 
     66integer                              :: massb_time        !< pour selectionner le type de calcul de smb 
    6767! On a deux routines : celle avec un seul fichier (donnees observees) : massb_Ice2sea_fixe 
    6868! Celle avec le bilan de masse sur plusieurs snapshots (annuels par ex.) entre lesquels on interpole. 
     
    108108  bm(:,:)  = tab(:,:) * coef_smb_unit 
    109109 
    110   where ((H(:,:).lt.1.).and.(Bsoc(:,:).gt.0.)) 
    111      bm(:,:) = bm(:,:) - 5.                     ! pour faire un masque a l'exterieur du Groenland actuel 
    112   end where 
     110!  where ((H(:,:).lt.1.).and.(Bsoc(:,:).gt.0.)) 
     111!     bm(:,:) = bm(:,:) - 5.                     ! pour faire un masque a l'exterieur du Groenland actuel 
     112!  end where 
    113113 
    114114  acc(:,:) = 0. 
     
    137137!lecture namelist  
    138138 
    139   namelist/clim_snap/nb_snap,time_depart_snaps,ecart_snap,file_smb_snap,massb 
     139  namelist/clim_snap/nb_snap,time_depart_snaps,ecart_snap,file_smb_snap,massb_time 
    140140 
    141141  rewind(num_param)        ! pour revenir au debut du fichier param_list.dat 
     
    146146  read(num_param,clim_snap) 
    147147 
    148   write(num_rep_42,428)'!________________________________________________________________'  
    149   write(num_rep_42,428)'!  module climat_Grice2sea_years_mod                             ' 
     148  write(num_rep_42,428)'!_______________________________________________________________________'  
     149  write(num_rep_42,428)'!  module climat_Grice2sea_years_mod                                    ' 
    150150  write(num_rep_42,clim_snap) 
    151   write(num_rep_42,428)'! nb_snap           = nombre de snapshots                        ' 
    152   write(num_rep_42,428)'! time_depart_snaps = debut du forçage                           ' 
    153   write(num_rep_42,428)'! ecart_snap        = ecart entre les snapshots                  ' 
    154   write(num_rep_42,428)'! file_smb_snap     = fichier serie temp anomalie SMB de GCM     ' 
    155   write(num_rep_42,428)'! massb             = 0:fixe, 1:interp snapshots                 ' 
    156   write(num_rep_42,428)'!________________________________________________________________'  
    157  
    158  
     151  write(num_rep_42,428)'! nb_snap           = nombre de snapshots                               ' 
     152  write(num_rep_42,428)'! time_depart_snaps = debut du forçage                                  ' 
     153  write(num_rep_42,428)'! ecart_snap        = ecart entre les snapshots                         ' 
     154  write(num_rep_42,428)'! file_smb_snap     = fichier serie temp anomalie SMB de GCM            ' 
     155  write(num_rep_42,428)'! massb_time        = 0:fixe, 1:interp snapshots, 2:snapsh+interp vert  ' 
     156  write(num_rep_42,428)'!_______________________________________________________________________'  
     157 
     158  if (massb_time == 1) then ! lecture des snapshots 
    159159! allocation dynamique de time_snap 
    160  
    161 if (allocated(time_snap)) then  
    162    deallocate(time_snap,stat=err) 
     160     if (allocated(time_snap)) then  
     161        deallocate(time_snap,stat=err) 
     162        if (err/=0) then 
     163           print *,"Erreur à la desallocation de time_snap",err 
     164           stop  
     165        end if 
     166     end if 
     167 
     168     allocate(time_snap(nb_snap),stat=err) 
    163169     if (err/=0) then 
    164         print *,"Erreur à la desallocation de time_snap",err 
     170        print *,"erreur a l'allocation du tableau time_snap ",err 
     171        print *,"nb_snap = ",nb_snap 
    165172        stop  
    166173     end if 
    167 end if 
    168  
    169  
    170 allocate(time_snap(nb_snap),stat=err) 
    171 if (err/=0) then 
    172    print *,"erreur a l'allocation du tableau time_snap ",err 
    173    print *,"nb_snap = ",nb_snap 
    174    stop  
    175 end if 
    176174 
    177175! remplissage de time_snap 
    178176!write(6,*) 'time_snap' 
    179 do i=1,nb_snap 
    180    time_snap(i) = time_depart_snaps + ecart_snap * (i-1) 
     177     do i=1,nb_snap 
     178        time_snap(i) = time_depart_snaps + ecart_snap * (i-1) 
    181179!   write(6,*) i,time_snap(i) 
    182 end do 
    183  
     180     end do 
    184181 
    185182! allocation dynamique de smb_snap 
    186  
    187 if (allocated(smb_snap)) then  
    188    deallocate(smb_snap,stat=err) 
     183     if (allocated(smb_snap)) then  
     184        deallocate(smb_snap,stat=err) 
     185        if (err/=0) then 
     186           print *,"Erreur à la desallocation de smb_snap",err 
     187           stop  
     188        end if 
     189     end if 
     190 
     191     allocate(smb_snap(nx,ny,nb_snap),stat=err) 
    189192     if (err/=0) then 
    190         print *,"Erreur à la desallocation de smb_snap",err 
     193        print *,"erreur a l'allocation du tableau smb_snap ",err 
     194        print *,"nx,ny,nb_snap = ",nx,',',ny,',',nb_snap 
    191195        stop  
    192196     end if 
    193 end if 
    194  
    195  
    196 allocate(smb_snap(nx,ny,nb_snap),stat=err) 
    197 if (err/=0) then 
    198    print *,"erreur a l'allocation du tableau smb_snap ",err 
    199    print *,"nx,ny,nb_snap = ",nx,',',ny,',',nb_snap 
    200    stop  
    201 end if 
    202  
    203197 
    204198! lecture de smb_snap 
    205  
    206 file_smb_snap  = trim(dirnameinp)//trim(file_smb_snap) 
    207  
    208 call Read_Ncdf_var('z',file_smb_snap,tab3D) 
    209  
    210 smb_snap (:,:,:) = Tab3D(:,:,:) * coef_smb_unit 
     199     file_smb_snap  = trim(dirnameinp)//trim(file_smb_snap) 
     200     call Read_Ncdf_var('z',file_smb_snap,tab3D) 
     201     smb_snap (:,:,:) = Tab3D(:,:,:) * coef_smb_unit 
    211202 
    212203! ce sont des anomalies : ajoute les valeurs de reference 
    213  
    214 do k = 1,nb_snap 
    215    do j = 1,ny 
    216       do i = 1,nx 
    217          smb_snap (i,j,k) = smb_snap(i,j,k) + bm(i,j) 
    218       end do 
    219    end do 
    220 end do 
     204     do k = 1,nb_snap 
     205        do j = 1,ny 
     206           do i = 1,nx 
     207              smb_snap (i,j,k) = smb_snap(i,j,k) + bm(i,j) 
     208           end do 
     209        end do 
     210     end do 
    221211 
    222212! copie la valeur de reference dans bm_0 
    223 bm_0(:,:) = bm(:,:) 
     213     bm_0(:,:) = bm(:,:) 
     214  endif 
    224215 
    225216! ecriture de verification 
     
    279270! appelle la routine de lecture des smb annuels 
    280271  call input_clim 
    281   call init_grad_smb 
     272  if (massb_time == 1) then ! lecture gradients smb 
     273     call init_grad_smb 
     274  endif 
    282275 
    283276  return 
     
    297290  implicit none 
    298291 
    299   select case (massb) 
     292  select case (massb_time) 
    300293     case(0) 
    301294! surface temperature et accumulation massb_Ice2sea_fixe 
     
    303296        Tann (:,:) = Ta0 (:,:) + T_lapse_rate * (S(:,:)-S0(:,:))  
    304297        Ts(:,:)    = Tann(:,:) 
    305  
    306298     case(1) 
    307299        call massb_Ice2sea_RCM 
     
    368360  call  grad_smb              !-----------------------------> A faire 
    369361 
    370 ! ajuste bm en fonction du temps et du gradient 
    371   bm(:,:) = bm_time(:,:) + grad_bm(:,:) *(S(:,:) - S_ref(:,:)) 
    372  
    373   write(6,897) time, time_prec, icum, i_moy 
    374 897 format('test temps smb   ',2(f0.3,1x),2(i0,1x)) 
     362  if (massb_time == 1) then ! pas d'interpolation verticale 
     363     bm(:,:) = bm_time(:,:) 
     364  else if (massb_time == 2) then ! interpolation verticale 
     365     ! ajuste bm en fonction du temps et du gradient 
     366     bm(:,:) = bm_time(:,:) + grad_bm(:,:) *(S(:,:) - S_ref(:,:)) 
     367     write(6,897) time, time_prec, icum, i_moy 
     368897  format('test temps smb   ',2(f0.3,1x),2(i0,1x)) 
     369  endif 
    375370 
    376371! garde les 10 dernieres annees et calcule la moyenne 
  • trunk/SOURCES/Hemin40_files/module_choix-hemin40-0.4.f90

    r9 r12  
    5050!use climat_forcage_stat_mois_mod  ! climat constant mensuel GCMs 
    5151!use climat_forcage_mod ! pour cycle force GCM avec index 
    52 use climat_forcage_mois_mod ! forcage mensuel GCM 1 Snapshot 
     52!!!use climat_forcage_mois_mod ! forcage mensuel GCM 1 Snapshot Fev 2015 
    5353! use climat_forcage_insolation_mod ! methode JB multi-snapshots mensuelle mais pour un etat stationnaire avec correction topo GCM => GRISLI 
    5454!use climat_synthes_mod 
    5555!use climat_profil_mod 
    5656!use climat_regions_delta 
     57use climat_Grice2sea_years_mod  
    5758 
    58 use ablation_mod ! calcul de l'ablation (PDD ou autre methode) 
     59!use ablation_mod ! calcul de l'ablation (PDD ou autre methode) 
     60use no_ablation  ! pas de calcul de l'ablation => lecture fichier SMB (necessaire avec climat_Grice2sea_years_mod) 
    5961 
    6062! pas de lacs proglaciaires 
  • trunk/SOURCES/Makefile.grisli.inc

    r11 r12  
    197197       module_choix-hudson-0.4.o track_hudson_mod.o 
    198198 
    199 Liste_hemin40 = output_hemin40_mod-0.4.o \ 
     199Liste_hemin40 = output_hemin40_mod.o \ 
    200200        lect-hemin40_mod.o  \ 
    201201        bmelt-hemin40-regions_mod.o bmelt-hemin40-depth_mod.o \ 
     
    12191219        $(FT) Hemin40_files/geography-hemin40_mod.f90 
    12201220 
    1221 output_hemin40_mod-0.4.o : Hemin40_files/output_hemin40_mod-0.4.f90 
    1222         $(FT) Hemin40_files/output_hemin40_mod-0.4.f90 
     1221output_hemin40_mod.o : Hemin40_files/output_hemin40_mod.f90 
     1222        $(FT) Hemin40_files/output_hemin40_mod.f90 
    12231223 
    12241224lect-clim-act-hemin40_mod.o : Hemin40_files/lect-clim-act-hemin40_mod.f90 
     
    13601360 
    13611361proto_declar_3D_grisli_mod.o : Recul_force_grounding_line/proto_declar_3D_grisli_mod.f90 
    1362         $(FT)  Recul_force_grounding_line/proto_declar_3D_grisli_mod.f90 
     1362        $(FT) Recul_force_grounding_line/proto_declar_3D_grisli_mod.f90 
    13631363 
    13641364declar_proto_recul.o : Recul_force_grounding_line/declar_proto_recul.f90 
    13651365        $(FT) Recul_force_grounding_line/declar_proto_recul.f90 
    13661366 
    1367 proto_recul_mod.o :  Recul_force_grounding_line/proto_recul_mod.f90 
     1367proto_recul_mod.o : Recul_force_grounding_line/proto_recul_mod.f90 
    13681368        $(FT) Recul_force_grounding_line/proto_recul_mod.f90 
    13691369 
    1370 declar_io_ncdf_proto_mod.o :  Recul_force_grounding_line/declar_io_ncdf_proto_mod.f90 
     1370declar_io_ncdf_proto_mod.o : Recul_force_grounding_line/declar_io_ncdf_proto_mod.f90 
    13711371        $(FT) Recul_force_grounding_line/declar_io_ncdf_proto_mod.f90 
    13721372 
Note: See TracChangeset for help on using the changeset viewer.