Ignore:
Timestamp:
01/09/19 17:09:26 (6 years ago)
Author:
aquiquet
Message:

Sealevel is now treated as a 2D variable (sealevel_2d while sealevel remains the eustatic sea level), results should remain identical as sealevel_2d is equal to sealevel in this revision.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SOURCES/flottab2-0.7.f90

    r223 r237  
    122122       where ( mk_init(:,:).eq.1)                 ! pose 
    123123          flot(:,:) = .False. 
    124           H(:,:)=max(H(:,:),(10.+sealevel-Bsoc(:,:))*row/ro)  ! pour avoir archim=10 
     124          H(:,:)=max(H(:,:),(10.+sealevel_2d(:,:)-Bsoc(:,:))*row/ro)  ! pour avoir archim=10 
    125125          S(:,:) = Bsoc(:,:) + H(:,:)  
    126126       elsewhere 
     
    175175          uys1(i,j)=uybar(i,j) 
    176176 
    177           archim = Bsoc(i,j)+H(i,j)*ro/row -sealevel 
     177          archim = Bsoc(i,j)+H(i,j)*ro/row -sealevel_2d(i,j) 
    178178          !      if ((i.eq.132).and.(j.eq.183)) print*,'archim=',archim 
    179179 
     
    189189                if (igrdline.eq.1) then   ! en cas de grounding line prescrite 
    190190                   flot(i,j)=.false. 
    191                    H(i,j)=(10.+sealevel-Bsoc(i,j))*row/ro  ! pour avoir archim=10 
     191                   H(i,j)=(10.+sealevel_2d(i,j)-Bsoc(i,j))*row/ro  ! pour avoir archim=10 
    192192                   new_flot_point(i,j)=.false. 
    193193                endif 
     
    202202                   if (igrdline.eq.1) then   ! en cas de grounding line prescrite 
    203203                      flot(i,j)=.false. 
    204                       H(i,j)=(10.+sealevel-Bsoc(i,j))*row/ro  ! pour avoir archim=10 
     204                      H(i,j)=(10.+sealevel_2d(i,j)-Bsoc(i,j))*row/ro  ! pour avoir archim=10 
    205205                      new_flot_point(i,j)=.false. 
    206206                   endif 
     
    228228             flot(i,j)=.true.  !cdc points ocean sont flot meme sans glace 
    229229             H(i,j)=0. 
    230              S(i,j)=sealevel 
     230             S(i,j)=sealevel_2d(i,j) !afq -- WARNING: est-ce qu'on veut vraiment mettre S a la valeur locale du niveau marin? 
    231231             B(i,j)=S(i,j)-H(i,j) 
    232232          endif arch 
     
    239239 
    240240             surnet=H(i,j)*(1.-ro/row) 
    241              S(i,j)=surnet+sealevel 
     241             S(i,j)=surnet+sealevel_2d(i,j) !afq -- WARNING: est-ce qu'on veut vraiment mettre S a la valeur locale du niveau marin? 
    242242             B(i,j)=S(i,j)-H(i,j) 
    243243          end if 
     
    246246    end do 
    247247    !$OMP END DO 
    248     !~ print*,'flottab 2',S(132,183),H(132,183),BSOC(132,183),B(132,183),sealevel 
    249     !~ print*,'flottab 2',flot(132,183),ice(132,183) 
    250     !~ if (S(132,183).LT.sealevel) print*,'BUGGGGGGGGGGGGG !!!!!!!!!!!!!!!!' 
    251248        
    252249!!$ do i=1,nx 
     
    262259 
    263260 
    264  
    265261    !----------------------------------------------------------------------- 
    266262    !$OMP DO 
     
    298294          !                 sur le demi noeud condition archim < 100 m 
    299295 
    300           archim=(Bsoc(i,j)+Bsoc(i-1,j))*0.5-sealevel+ro/row*Hmx(i,j) 
     296          archim=(Bsoc(i,j)+Bsoc(i-1,j))*0.5-(sealevel_2d(i,j)+sealevel_2d(i-1,j))*0.5+ro/row*Hmx(i,j) 
    301297          gzmx(i,j)=gzmx(i,j).and.(archim.le.100.)  
    302298          cotemx(i,j)=gzmx(i,j) 
     
    337333          !                 sur le demi noeud condition archim > 100 m 
    338334 
    339           archim=(Bsoc(i,j)+Bsoc(i,j-1))*0.5-sealevel+ro/row*Hmy(i,j) 
     335          archim=(Bsoc(i,j)+Bsoc(i,j-1))*0.5-(sealevel_2d(i,j)+sealevel_2d(i,j-1))*0.5+ro/row*Hmy(i,j) 
    340336          gzmy(i,j)=gzmy(i,j).and.(archim.le.100.)  
    341337          cotemy(i,j)=gzmy(i,j) 
     
    605601          ice(:,:)=0 
    606602          H(:,:)=0. 
    607           S(:,:)=H(:,:)*(1.-ro/row) + sealevel 
     603          S(:,:)=H(:,:)*(1.-ro/row) + sealevel_2d(:,:) 
    608604          B(:,:)=S(:,:) - H(:,:) 
    609605       end where 
     
    790786            flgzmy(smax_i,smax_j)=.false. ; flgzmx(smax_i,smax_j+1)=.false. 
    791787      
    792             if (Smax_.le.sealevel) then 
     788            if (Smax_.le.sealevel) then  ! afq -- WARNING: en fait avec le niveau marin local cest plus complique que ca! 
     789            !if (Smax_.le.sealevel_2d(i,j)) then ! afq --WARNING: il faudrait regarder point par point sur la tache... 
    793790              write(num_tracebug,*)'Attention, une ile avec la surface sous l eau' 
    794791              write(num_tracebug,*)'time=',time,'   coord:',smax_i,smax_j 
Note: See TracChangeset for help on using the changeset viewer.