Changeset 124


Ignore:
Timestamp:
07/06/17 11:55:54 (7 years ago)
Author:
dumas
Message:

New flag ibmelt_inv in param_list.dat : 0 standard case, 1 bmelt inversion (with igrdline=1) | bmelt-seuil-profondeur has been updated for bmelt inversion.

Location:
trunk/SOURCES
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/SOURCES/3D-physique-gen_mod.f90

    r112 r124  
    3636  integer ::  err                       !< pour l'allocation des tableaux 
    3737  integer ::  igrdline                  !< si 1 fixe la position en jouant sur la fusion shelf 
     38  integer ::  ibmelt_inv                !< si 1 inversion du bmelt (avec igrdline=1) 
    3839  integer ::  i_resolmeca               !< defini le type d'association SIA-L1 
    3940  integer ::  iter_beta                 !< pour la determination du frottement 
  • trunk/SOURCES/Ant40_files/lect-anteis_mod.f90

    r113 r124  
    228228    do J=1,NY 
    229229       do I=1,NX 
    230           if (((BSOC(I,J)+H(I,J)*RO/ROW -SEALEVEL).LT.0.).and.(H(I,J).gt.1.E-3)) then 
     230          if ((BSOC(I,J)+H(I,J)*RO/ROW -SEALEVEL).LT.0.) then 
    231231             FLOT(I,J)=.TRUE. 
    232232          else 
  • trunk/SOURCES/bmelt-seuil-profondeur_mod.f90

    r67 r124  
    1616module  bmelt_seuil_prof          
    1717 
    18 ! prametrise la fusion basale (ice shelves) 
    19 ! Pour l'actuel : 2 valeurs  pour 2 domaines de profondeur 
    20 ! + une valeur pour bmgrz 
    21 ! A choisir dans le module_choix 
     18  ! prametrise la fusion basale (ice shelves) 
     19  ! Pour l'actuel : 2 valeurs  pour 2 domaines de profondeur 
     20  ! + une valeur pour bmgrz 
     21  ! A choisir dans le module_choix 
    2222 
    23 use module3d_phy 
     23  use module3d_phy 
    2424 
    2525 
    26 implicit none 
     26  implicit none 
    2727 
    28 real :: bm_grz                        !< valeur prescrite a la grounding zone 
    29 real,dimension(nx,ny) ::  bmgrz       !< tabelau fusion basale a la grounding zone 
     28  real :: bm_grz                        !< valeur prescrite a la grounding zone 
     29  real,dimension(nx,ny) ::  bmgrz       !< tabelau fusion basale a la grounding zone 
    3030 
    31 real :: bmshelf_plateau               !< valeur prescrite sur le plateau cont. 
    32 real :: bmshelf_abysses               !< valeur prescrite au dessus de l'ocean profond 
    33 real :: depth_talus                   !< profondeur de transition  
    34 real,dimension(nx,ny) ::  bmshelf     !< tableau fusion basale sous shelf 
     31  real :: bmshelf_plateau               !< valeur prescrite sur le plateau cont. 
     32  real :: bmshelf_abysses               !< valeur prescrite au dessus de l'ocean profond 
     33  real :: depth_talus                   !< profondeur de transition  
     34  real,dimension(nx,ny) ::  bmshelf     !< tableau fusion basale sous shelf 
    3535 
    3636 
    3737contains 
    38 !------------------------------------------------------------------------------- 
    39 !> SUBROUTINE: init_bmelt 
    40 !! Cette routine fait l'initialisation pour la fusion basale. 
    41 !! @note Elle est appelée par inputfile-vec-0.5.f90 
    42 !! 
    43 !> 
    44 subroutine init_bmelt 
     38  !------------------------------------------------------------------------------- 
     39  !> SUBROUTINE: init_bmelt 
     40  !! Cette routine fait l'initialisation pour la fusion basale. 
     41  !! @note Elle est appelée par inputfile-vec-0.5.f90 
     42  !! 
     43  !> 
     44  subroutine init_bmelt 
    4545 
    4646 
    4747 
    48 ! Cette routine fait l'initialisation pour la fusion basale. 
    49 ! Elle est appelée par inputfile-vec-0.5.f90 
     48    ! Cette routine fait l'initialisation pour la fusion basale. 
     49    ! Elle est appelée par inputfile-vec-0.5.f90 
    5050 
    5151 
    52 namelist/bmelt_seuil/bm_grz,bmshelf_plateau,bmshelf_abysses,depth_talus 
     52    namelist/bmelt_seuil/bm_grz,bmshelf_plateau,bmshelf_abysses,depth_talus 
    5353 
    54 if (itracebug.eq.1)  call tracebug('entree dans init_bmelt de bmelt_seuil_prof') 
     54    if (itracebug.eq.1)  call tracebug('entree dans init_bmelt de bmelt_seuil_prof') 
    5555 
    56 rewind(num_param)        ! pour revenir au debut du fichier param_list.dat 
    57 read(num_param,bmelt_seuil) 
    58 write(num_rep_42,bmelt_seuil) 
     56    rewind(num_param)        ! pour revenir au debut du fichier param_list.dat 
     57    read(num_param,bmelt_seuil) 
     58    write(num_rep_42,bmelt_seuil) 
    5959 
    60 !    ecriture dans le fichier parametres 
     60    !    ecriture dans le fichier parametres 
    6161 
    6262428 format(A) 
    6363 
    64 write(num_rep_42,428)'!___________________________________________________________'  
    65 write(num_rep_42,428) '&bmelt_seuil                     ! module  bmelt_seuil_prof' 
    66 write(num_rep_42,*)   'bm_grz           =',bm_grz 
    67 write(num_rep_42,*)   'bmshelf_plateau  =',bmshelf_plateau 
    68 write(num_rep_42,*)   'bmshelf_abysses  =',bmshelf_abysses 
    69 write(num_rep_42,*)   'depth_talus      =',depth_talus 
    70 write(num_rep_42,*)'/'                       
    71 write(num_rep_42,428) '! Pour l actuel : bm_grz a la grounding line' 
    72 write(num_rep_42,428) '!                 bmshelf_plateau sur le plateau continental' 
    73 write(num_rep_42,428) '!                 bmshelf_abysses pour les grandes profondeurs' 
    74 write(num_rep_42,428) '!       depth_talus, negative, separation entre les 2 domaines' 
    75 write(num_rep_42,*) 
    76 write(num_rep_42,428)'!___________________________________________________________'  
     64    write(num_rep_42,428)'!___________________________________________________________'  
     65    write(num_rep_42,428) '&bmelt_seuil                     ! module  bmelt_seuil_prof' 
     66    write(num_rep_42,*)   'bm_grz           =',bm_grz 
     67    write(num_rep_42,*)   'bmshelf_plateau  =',bmshelf_plateau 
     68    write(num_rep_42,*)   'bmshelf_abysses  =',bmshelf_abysses 
     69    write(num_rep_42,*)   'depth_talus      =',depth_talus 
     70    write(num_rep_42,*)'/'                       
     71    write(num_rep_42,428) '! Pour l actuel : bm_grz a la grounding line' 
     72    write(num_rep_42,428) '!                 bmshelf_plateau sur le plateau continental' 
     73    write(num_rep_42,428) '!                 bmshelf_abysses pour les grandes profondeurs' 
     74    write(num_rep_42,428) '!       depth_talus, negative, separation entre les 2 domaines' 
     75    write(num_rep_42,*) 
     76    write(num_rep_42,428)'!___________________________________________________________'  
    7777 
    7878 
    7979 
    80 bmgrz(:,:) = bm_grz 
     80    bmgrz(:,:) = bm_grz 
    8181 
    82 where (Bsoc0(:,:).lt.depth_talus) 
    83    bmshelf(:,:)=bmshelf_abysses 
    84 elsewhere 
    85    bmshelf(:,:)=bmshelf_plateau 
    86 end where 
     82    where (Bsoc0(:,:).lt.depth_talus) 
     83        bmshelf(:,:)=bmshelf_abysses 
     84    elsewhere 
     85        bmshelf(:,:)=bmshelf_plateau 
     86    end where 
    8787 
    88 debug_3D(:,:,34)=bmshelf(:,:) 
    89 return 
    90 end subroutine init_bmelt 
     88    debug_3D(:,:,34)=bmshelf(:,:) 
     89    return 
     90  end subroutine init_bmelt 
    9191 
    92 !________________________________________________________________________________ 
     92  !________________________________________________________________________________ 
    9393 
    94 !> SUBROUTINE: bmeltshelf 
    95 !! Cette routine calcule la fusion basale proprement dite pour les points flottants 
    96 !! @note coefbmshelf a ete calcule par forclim et permet de faire varier en fonction du climat 
    97 !> 
     94  !> SUBROUTINE: bmeltshelf 
     95  !! Cette routine calcule la fusion basale proprement dite pour les points flottants 
     96  !! @note coefbmshelf a ete calcule par forclim et permet de faire varier en fonction du climat 
     97  !> 
    9898 
    99 subroutine bmeltshelf 
     99  subroutine bmeltshelf 
    100100 
    101101 
    102 ! cette routine calcule la fusion basale proprement dite pour les points flottants 
    103 ! coefbmshelf a ete calcule par forclim et permet de faire varier en fonction du climat 
     102    ! cette routine calcule la fusion basale proprement dite pour les points flottants 
     103    ! coefbmshelf a ete calcule par forclim et permet de faire varier en fonction du climat 
    104104 
    105 integer :: ngr           ! nombre de voisins flottants 
    106 real    :: coef_talus    ! pour ne pas changer la fusion au dessus de l'ocean profond 
     105    integer :: ngr           ! nombre de voisins flottants 
     106    real    :: coef_talus    ! pour ne pas changer la fusion au dessus de l'ocean profond 
    107107 
    108 if (itracebug.eq.1)  call tracebug('entree dans bmeltshelf de bmelt_seuil_prof') 
     108    if (itracebug.eq.1)  call tracebug('entree dans bmeltshelf de bmelt_seuil_prof') 
    109109 
    110 where (Bsoc0(:,:).lt.depth_talus) 
    111    bmshelf(:,:)=bmshelf_abysses 
    112 elsewhere 
    113    bmshelf(:,:)=bmshelf_plateau 
    114 end where 
     110    where (Bsoc0(:,:).lt.depth_talus) 
     111        bmshelf(:,:)=bmshelf_abysses 
     112    elsewhere 
     113        bmshelf(:,:)=bmshelf_plateau 
     114    end where 
    115115 
    116 do j=1,ny 
    117    do i=1,nx 
     116    do j=1,ny 
     117      do i=1,nx 
    118118 
    119 talus_nochange : if (Bsoc0(i,j).lt.depth_talus) then  
    120            coef_talus = 1         ! pas de changement au dessus de l'ocecan profond 
     119        talus_nochange: if (Bsoc0(i,j).lt.depth_talus) then  
     120            coef_talus = 1         ! pas de changement au dessus de l'ocecan profond 
    121121        else 
    122            coef_talus = coefbmshelf 
     122            coef_talus = coefbmshelf 
    123123        endif talus_nochange 
    124124 
    125125 
    126 shelf:    if (flot(i,j)) then    ! partie flottante 
     126        shelf: if (flot(i,j)) then    ! partie flottante 
    127127 
    128128            bmelt(i,j)=coef_talus*bmshelf(i,j) 
    129129 
    130 ! fbm est vrai si le point est flottant mais un des voisins est pose 
    131 ! calcule dans flottab 
     130            ! fbm est vrai si le point est flottant mais un des voisins est pose 
     131            ! calcule dans flottab 
    132132 
    133133            if (fbm(i,j)) then  
    134                bmelt(i,j)=coef_talus*bmgrz(i,j) 
    135             endif    
     134                bmelt(i,j)=coef_talus*bmgrz(i,j) 
     135            endif 
    136136 
    137137 
    138138 
    139 ! ATTENTION le bloc suivant sert a determiner la fusion basale d'equilibre 
    140 ! pour les shelves stationnaires 
     139            ! ATTENTION le bloc suivant sert a determiner la fusion basale d'equilibre 
     140            ! pour les shelves stationnaires 
    141141 
    142   if (igrdline.eq.1) then 
    143      corrbmelt(i,j)=hdot(i,j)+bmelt(i,j)   ! le bmelt d'equilibre 
    144      debug_3D(i,j,28)=corrbmelt(i,j) 
    145   endif 
     142            if ((igrdline.eq.1).and.(ibmelt_inv.eq.1)) then 
     143                !     corrbmelt(i,j)=hdot(i,j)+bmelt(i,j)   ! le bmelt d'equilibre 
     144                !     bmelt(i,j)=corrbmelt(i,j) 
     145                corrbmelt(i,j)=corrbmelt(i,j)+hdot(i,j)*0.85 
     146                bmelt(i,j)=bmelt(i,j)+corrbmelt(i,j)      
     147            endif 
    146148 
    147149 
    148150        else                   ! point posé, on compte le nombre de voisins flottants 
    149            ngr=0 
    150            if ((i.ne.1).and.(i.ne.nx).and.(j.ne.1).and.(j.ne.ny)) then  
    151               if (flot(i+1,j)) ngr=ngr+1 
    152               if (flot(i-1,j)) ngr=ngr+1 
    153               if (flot(i,j+1)) ngr=ngr+1 
    154               if (flot(i,j-1)) ngr=ngr+1 
    155            end if 
    156                
     151            ngr=0 
     152            if ((i.ne.1).and.(i.ne.nx).and.(j.ne.1).and.(j.ne.ny)) then  
     153                if (flot(i+1,j)) ngr=ngr+1 
     154                if (flot(i-1,j)) ngr=ngr+1 
     155                if (flot(i,j+1)) ngr=ngr+1 
     156                if (flot(i,j-1)) ngr=ngr+1 
     157            end if 
    157158 
    158 !   la fusion des points limites est une combinaison entre valeur posée et valeur flottante 
    159 !   en fonction du nombre de points flottants 
    160159 
    161            bmelt(i,j)= ngr/4.*bmgrz(i,j)*coef_talus+(1.-ngr/4.)*bmelt(i,j) 
    162           
     160            !   la fusion des points limites est une combinaison entre valeur posée et valeur flottante 
     161            !   en fonction du nombre de points flottants 
    163162 
     163            bmelt(i,j)= ngr/4.*bmgrz(i,j)*coef_talus+(1.-ngr/4.)*bmelt(i,j) 
     164 
     165            if ((igrdline.eq.1).and.(ibmelt_inv.eq.1)) then 
     166                corrbmelt(i,j)=corrbmelt(i,j)+hdot(i,j)  !*0.85 
     167                bmelt(i,j)=bmelt(i,j)+corrbmelt(i,j) 
     168            endif 
    164169        endif shelf 
    165  
    166       end do  
     170      end do 
    167171    end do 
    168172 
    169  
    170 if (igrdline.eq.1) then 
    171     bmelt(:,:)=0.      ! hdot donne alors le -bmelt 
     173if ((igrdline.eq.1).and.(ibmelt_inv.eq.0)) then 
     174    where (i_Hp(:,:).eq.1) 
     175        bmelt(:,:)=0.    ! hdot donne alors le -bmelt 
     176    endwhere 
    172177endif 
    173  
    174178 
    175179return 
  • trunk/SOURCES/conserv-mass-adv-diff_sept2009_mod.f90

    r102 r124  
    416416 
    417417!    if ((time.lt.time_gl(1)).or.(nt.lt.2)) then      ATTENTION test seulement si version prescribe-H_mod.f90 
    418        call prescribe_present_H_gl       ! prescribe present thickness at the grounding line 
     418   if (ibmelt_inv.eq.0) then 
     419      call prescribe_present_H_gl       ! prescribe present thickness at the grounding line 
     420   else if (ibmelt_inv.eq.1) then ! inversion bmelt 
     421      call prescribe_present_H_gl_bmelt ! prescribe only grounding line points 
     422   else 
     423      print*,'ibmelt_inv value must be 0 or 1 !!!' 
     424      stop 
     425   endif 
    419426!    else 
    420427!       call prescribe_retreat 
     
    550557H(:,:)=max(H(:,:),0.)       ! pas d'epaisseur negative 
    551558 
    552 !~ ! calcul du masque "ice" 
    553 !~ where (flot(:,:))        ! points flottants, sera éventuellement réévalué dans flottab 
    554 !~    where(H(:,:).gt.max(Hmin,Hmin+BM(:,:)-Bmelt(:,:))) 
    555 !~       ice(:,:)=1 
    556 !~    elsewhere 
    557 !~       ice(:,:)=0 
    558 !~       H(:,:)=max(1.,min(0.,(sealevel - Bsoc(:,:))*row/ro-0.01)) 
    559 !~    endwhere 
    560 !~ !   H(:,:)=max(H(:,:),1.) ! dans la partie marine l'épaisseur mini est 1 m 
    561 !~ !   H(:,:)=max(1.,min(0.,(sealevel - Bsoc(:,:))*row/ro-0.01)) 
    562 !~ elsewhere                ! points posés 
    563 !~    where(H(:,:).gt.0.) 
    564 !~       ice(:,:)=1 
    565 !~    elsewhere 
    566 !~       ice(:,:)=0 
    567 !~    endwhere 
    568 !~ endwhere 
    569  
    570559! eventuellement retirer apres spinup ou avoir un cas serac 
    571560Hdot(:,:)=(H(:,:)-vieuxH(:,:))/dt 
    572561!$OMP END WORKSHARE 
    573562 
    574 !~ if (igrdline.ne.3) then 
    575 !~    !$OMP WORKSHARE 
    576 !~    Hdot(:,:)=min(Hdot(:,:),10.) 
    577 !~    Hdot(:,:)=max(Hdot(:,:),-10.) 
    578 !~    !$OMP END WORKSHARE 
    579 !~ endif 
     563if (ibmelt_inv.eq.1) then ! inversion du bmelt avec igrdline=1 
     564   !$OMP WORKSHARE 
     565   where (i_Hp(:,:).eq.1) 
     566      H(:,:)=Hp(:,:) 
     567   endwhere 
     568   !$OMP END WORKSHARE 
     569endif 
    580570 
    581571!$OMP WORKSHARE 
    582 where (i_hp(:,:).ne.1) 
    583    H(:,:)=vieuxH(:,:)+Hdot(:,:)*dt 
    584 end where 
    585  
    586  
    587  
    588572! si mk0=-1, on garde l'epaisseur precedente 
    589573! en attendant un masque plus propre 
  • trunk/SOURCES/initial-phy-2.f90

    r93 r124  
    2727 
    2828  namelist/runpar/runname,icompteur,iout,reprcptr,itracebug,num_tracebug,comment_run 
    29   namelist/grdline/igrdline,Schoof 
     29  namelist/grdline/igrdline,Schoof,ibmelt_inv 
    3030  namelist/timesteps/dtmin,dtmax,dtt,testdiag,tbegin,tend 
    3131 
     
    123123  write(num_rep_42,*) 'igrdline     = ',igrdline 
    124124  write(num_rep_42,*) 'Schoof       = ',Schoof 
     125  write(num_rep_42,*) 'ibmelt_inv   = ',ibmelt_inv 
    125126  write(num_rep_42,*)'/'                            
    126   write(num_rep_42,428)'! igrdline :  1 ligne d echouage fixée, sinon 0' 
    127   write(num_rep_42,428)'! Schoof   :  0 pas de Schoof, 1 flux de Schoof' 
     127  write(num_rep_42,428)'! igrdline   : 1 ligne d echouage fixée, sinon 0' 
     128  write(num_rep_42,428)'! Schoof     : 0 pas de Schoof, 1 flux de Schoof' 
     129  write(num_rep_42,428)'! ibmelt_inv : 0 cas std, 1 inversion du bmelt (avec igrdline=1)' 
    128130  write(num_rep_42,*) 
    129131 
  • trunk/SOURCES/prescribe-H-i2s_mod.f90

    r4 r124  
    127127       hp(:,:)   = Hp0(:,:) 
    128128    end where 
    129 if (itracebug.eq.1)  call tracebug(' fin prescribe_present_H_gl ') 
     129if (itracebug.eq.1)  call tracebug(' fin prescribe_present_H_gl') 
    130130 
    131131 
    132132  end subroutine prescribe_present_H_gl 
     133   
     134   !______________________________________________________________________________________ 
     135  !>  function prescribe_present_H_gl_bmelt 
     136  !! calculate the initial grounding line position 
     137  !! only grounding line points are prescribed to present value 
     138  !! @return i_hp(:,:) and hp(:,:) 
     139 
     140  subroutine prescribe_present_H_gl_bmelt 
     141 
     142    implicit none 
     143 
     144    if (itracebug.eq.1)  call tracebug(' Entree dans routine  prescribe_present_H_gl_bmelt') 
     145 
     146!    where (MK_gl0(:,:) .eq. 1) ! grounding line only !cdc pour calcule fonte basale 
     147!       i_hp(:,:) = 1                                 ! thickness prescribed to present value 
     148!       hp(:,:)   = Hp0(:,:) 
     149!    end where 
     150    i_hp(:,:) = 0 
     151if (itracebug.eq.1)  call tracebug(' fin prescribe_present_H_gl_bmelt') 
     152 
     153 
     154  end subroutine prescribe_present_H_gl_bmelt 
    133155 
    134156  !______________________________________________________________________________________ 
  • trunk/SOURCES/resol_adv_diff_2D-sept2009.f90

    r73 r124  
    278278 
    279279relax_loop: do while(.not.stopp) 
    280 ntour=ntour+1 
    281 !$OMP PARALLEL 
    282 !$OMP DO PRIVATE(reste) 
    283 do j=2,ny-1 
    284    do i=2,nx-1 
    285  
    286       reste = (((arelax(i,j)*newH(i-1,j) +drelax(i,j)*newH(i,j-1)) & 
    287            + (brelax(i,j)*newH(i+1,j) + erelax(i,j)*newH(i,j+1))) & 
    288            + crelax(i,j)*newH(i,j))- frelax(i,j) 
    289  
    290 !if (ntour.eq.1)  debug_3D(i,j,49)=(((arelax(i,j)*newH(i-1,j) +drelax(i,j)*newH(i,j-1)) & 
    291 !           + (brelax(i,j)*newH(i+1,j) + erelax(i,j)*newH(i,j+1))) & 
    292 !           + crelax(i,j)*newH(i,j)) 
    293  
    294  
    295       deltaH(i,j) = reste/crelax(i,j) 
    296  
     280   ntour=ntour+1 
     281   !$OMP PARALLEL 
     282   !$OMP DO PRIVATE(reste) 
     283   do j=2,ny-1 
     284      do i=2,nx-1 
     285         reste = (((arelax(i,j)*newH(i-1,j) +drelax(i,j)*newH(i,j-1)) & 
     286               + (brelax(i,j)*newH(i+1,j) + erelax(i,j)*newH(i,j+1))) & 
     287               + crelax(i,j)*newH(i,j))- frelax(i,j) 
     288 
     289         deltaH(i,j) = reste/crelax(i,j) 
     290      end do 
    297291   end do 
    298 end do 
    299 !$OMP END DO 
    300  
    301 !debug_3D(:,:,50)=arelax(:,:) 
    302 !debug_3D(:,:,51)=brelax(:,:) 
    303 !debug_3D(:,:,52)=crelax(:,:) 
    304 !debug_3D(:,:,53)=drelax(:,:) 
    305 !debug_3D(:,:,54)=erelax(:,:) 
    306 !debug_3D(:,:,55)=frelax(:,:) 
    307  
    308  
    309 !$OMP WORKSHARE 
    310 newH(:,:)=newH(:,:)-deltaH(:,:) 
    311 !$OMP END WORKSHARE 
    312 !$OMP END PARALLEL 
     292   !$OMP END DO 
     293 
     294   !$OMP WORKSHARE 
     295   newH(:,:)=newH(:,:)-deltaH(:,:) 
     296   !$OMP END WORKSHARE 
     297   !$OMP END PARALLEL 
    313298 
    314299 
    315300! critere d'arret: 
    316301! ----------------          
    317  
    318 delh=0 
    319  
    320 !$OMP PARALLEL 
    321 !$OMP DO REDUCTION(+:delh) 
    322 do j=2,ny-1 
    323    do i=2,nx-1 
    324       delh=delh+deltaH(i,j)**2 
     302   delh=0 
     303 
     304   !$OMP PARALLEL 
     305   !$OMP DO REDUCTION(+:delh) 
     306   do j=2,ny-1 
     307      do i=2,nx-1 
     308         delh=delh+deltaH(i,j)**2 
     309      end do 
    325310   end do 
    326 end do 
    327 !$OMP END DO 
    328 !$OMP END PARALLEL 
    329  
    330 if (delh.gt.0.) then 
    331    testh=sqrt(delh)/((nx-2)*(ny-2)) 
    332 else 
    333    testh=0. 
    334 endif 
    335 stopp = (testh.lt.1.e-4).or.(ntour.gt.100) 
    336  
    337  
     311   !$OMP END DO 
     312   !$OMP END PARALLEL 
     313 
     314   if (delh.gt.0.) then 
     315      testh=sqrt(delh)/((nx-2)*(ny-2)) 
     316   else 
     317      testh=0. 
     318   endif 
     319   stopp = (testh.lt.1.e-4).or.(ntour.gt.100) 
    338320 
    339321end do relax_loop 
    340322 
    341  
    342 ! thickness at the upwind node 
    343 !do j = 1, ny 
    344 !   do i = 2, nx 
    345 !      debug_3D(i,j,92) = c_west(i,j) * newH(i-1,j) + c_east(i,j) * newH(i,j) 
    346 !   end do 
    347 !end do 
    348 !do j = 2, ny 
    349 !   do i = 1, nx 
    350 !      debug_3D(i,j,93) = c_south(i,j) * newH(i,j-1) + c_north(i,j) * newH(i,j) 
    351 !   end do 
    352 !end do 
    353  
    354323if (itracebug.eq.1)  call tracebug(' fin routine resolution_diffusion') 
    355  
    356324  
    357325return 
  • trunk/SOURCES/spinup_mod.f90

    r115 r124  
    102102case default 
    103103  print*,'type_vitbil valeur invalide dans spinup_vitbil' 
     104  stop 
    104105end select 
    105106 
Note: See TracChangeset for help on using the changeset viewer.