Ignore:
Timestamp:
Apr 8, 2022, 2:21:26 PM (3 years ago)
Author:
crisi
Message:

correction d'un bug dans lequel on avait 0.1 dans les isotopes alors qu'on avait 0.01*grav dans l'eau normale.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmdiso/cv3_routines.F90

    r4050 r4123  
    47434743    use infotrac_phy, ONLY: ntraciso,niso, &
    47444744&       ntraceurs_zone,index_trac
    4745     use isotopes_mod, ONLY: essai_convergence,ridicule,iso_eau,iso_HDO
     4745    use isotopes_mod, ONLY: essai_convergence,ridicule,iso_eau,iso_HDO,iso_O18
    47464746#ifdef ISOVERIF
    47474747    use isotopes_verif_mod, ONLY: errmax,errmaxrel, &
    4748         iso_verif_egalite_choix, iso_verif_noNaN,iso_verif_aberrant, &
     4748        iso_verif_egalite_choix, iso_verif_noNaN,iso_verif_aberrant,iso_verif_O18_aberrant, &
    47494749        iso_verif_egalite,iso_verif_egalite_choix_nostop,iso_verif_positif_nostop, &
    47504750        iso_verif_egalite_nostop,iso_verif_aberrant_nostop,deltaD,iso_verif_noNaN_nostop, &
    4751         iso_verif_positif
     4751        iso_verif_positif,iso_verif_O18_aberrant_nostop,deltaO
    47524752#endif
    47534753#ifdef ISOTRAC
     
    52935293           call iso_verif_aberrant((xt(iso_HDO,il,1) &
    52945294     &        +delt*fxt(iso_HDO,il,1))/(rr(il,1)+delt*fr(il,1)), &
    5295      &           'cv3_yield 3125, ddft en 1')
     5295     &           'cv3_yield 3125, ddft en 1')               
     5296          endif !if (iso_HDO.gt.0) then
     5297          if ((iso_HDO.gt.0).and.(iso_O18.gt.0).and. &
     5298     &           (rr(il,1)+delt*fr(il,1).gt.ridicule)) then
     5299           call iso_verif_O18_aberrant((xt(iso_HDO,il,1) &
     5300     &        +delt*fxt(iso_HDO,il,1))/(rr(il,1)+delt*fr(il,1)),(xt(iso_O18,il,1) &
     5301     &        +delt*fxt(iso_O18,il,1))/(rr(il,1)+delt*fr(il,1)), &
     5302     &        'cv3_yield 3125b, ddft en 1')               
    52965303          endif !if (iso_HDO.gt.0) then
    52975304#ifdef ISOTRAC
     
    53865393     &         +delt*fxt(iso_HDO,il,1))/(rr(il,1)+delt*fr(il,1)), &
    53875394     &         'cv3_yield 3127, dtr melanges')
     5395          endif !if (iso_HDO.gt.0) then
     5396          if ((iso_HDO.gt.0).and.(iso_O18.gt.0).and. &
     5397     &           (rr(il,1)+delt*fr(il,1).gt.ridicule)) then
     5398           call iso_verif_O18_aberrant((xt(iso_HDO,il,1) &
     5399     &        +delt*fxt(iso_HDO,il,1))/(rr(il,1)+delt*fr(il,1)),(xt(iso_O18,il,1) &
     5400     &        +delt*fxt(iso_O18,il,1))/(rr(il,1)+delt*fr(il,1)), &
     5401     &        'cv3_yield 3127b, dtr melanges')               
    53885402          endif !if (iso_HDO.gt.0) then
    53895403#ifdef ISOTRAC
     
    61116125     &           /(rr(il,i)+delt*fr(il,i)),'cv3_yield 3384, flux masse')
    61126126        endif !if (iso_HDO.gt.0) then
     6127        if ((iso_HDO.gt.0).and.(iso_O18.gt.0).and. &
     6128     &           (rr(il,i)+delt*fr(il,i).gt.ridicule)) then
     6129           call iso_verif_O18_aberrant((xt(iso_HDO,il,i) &
     6130     &        +delt*fxt(iso_HDO,il,i))/(rr(il,i)+delt*fr(il,i)),(xt(iso_O18,il,i) &
     6131     &        +delt*fxt(iso_O18,il,i))/(rr(il,i)+delt*fr(il,i)), &
     6132     &        'cv3_yield 3384b, flux masse')               
     6133          endif !if (iso_HDO.gt.0) then
    61136134#ifdef ISOTRAC
    61146135        call iso_verif_traceur_justmass(fxt(1,il,1),'cv3_routine 3626')
     
    63446365       do ixt = 1, ntraciso
    63456366        fxt(ixt,il,i)=fxt(ixt,il,i) &
    6346      &   +0.1*dpinv*ment(il,k,i)*(xtent(ixt,il,k,i)-xt(ixt,il,i))
     6367     &   +0.01*grav*dpinv*ment(il,k,i)*(xtent(ixt,il,k,i)-xt(ixt,il,i))
    63476368       enddo
    63486369
    63496370#ifdef DIAGISO
    63506371       fq_detrainement(il,i)=fq_detrainement(il,i) &
    6351               +0.1*dpinv*ment(il,k,i)*(qent(il,k,i)-rr(il,i))
     6372              +0.01*grav*dpinv*ment(il,k,i)*(qent(il,k,i)-rr(il,i))
    63526373       f_detrainement(il,i)=f_detrainement(il,i) &
    6353               +0.1*dpinv*ment(il,k,i)
     6374              +0.01*grav*dpinv*ment(il,k,i)
    63546375       q_detrainement(il,i)=q_detrainement(il,i) &
    6355               +0.1*dpinv*ment(il,k,i)*qent(il,k,i)
     6376              +0.01*grav*dpinv*ment(il,k,i)*qent(il,k,i)
    63566377       do ixt = 1, niso
    63576378        fxt_detrainement(ixt,il,i)=fxt_detrainement(ixt,il,i) &
    6358      &          +0.1*dpinv*ment(il,k,i)*(xtent(ixt,il,k,i)-xt(ixt,il,i))
     6379     &          +0.01*grav*dpinv*ment(il,k,i)*(xtent(ixt,il,k,i)-xt(ixt,il,i))
    63596380        xt_detrainement(ixt,il,i)=xt_detrainement(ixt,il,i) &
    6360      &          +0.1*dpinv*ment(il,k,i)*xtent(ixt,il,k,i)
     6381     &          +0.01*grav*dpinv*ment(il,k,i)*xtent(ixt,il,k,i)
    63616382       enddo
    63626383#endif     
     
    63876408     &           /(rr(il,i)+delt*fr(il,i)),'cv3_yield 3605b, dtr mels')
    63886409          endif !if (iso_HDO.gt.0) then       
     6410          if ((iso_HDO.gt.0).and.(iso_O18.gt.0).and. &
     6411     &           (rr(il,i)+delt*fr(il,i).gt.ridicule)) then
     6412           call iso_verif_O18_aberrant((xt(iso_HDO,il,i) &
     6413     &        +delt*fxt(iso_HDO,il,i))/(rr(il,i)+delt*fr(il,i)),(xt(iso_O18,il,i) &
     6414     &        +delt*fxt(iso_O18,il,i))/(rr(il,i)+delt*fr(il,i)), &
     6415     &        'cv3_yield 6415c, dtr mels')               
     6416          endif !if (iso_HDO.gt.0) then
    63896417#ifdef ISOTRAC
    63906418        call iso_verif_traceur_justmass(fxt(1,il,i),'cv3_routine 3972')
     
    65536581
    65546582#ifdef ISOVERIF
     6583        do i=inb(il)-1,inb(il)
    65556584        if (iso_eau.gt.0) then
    6556               call iso_verif_egalite(fxt(iso_eau,il,inb(il)-1), &
    6557      &           fr(il,inb(il)-1),'cv3_routines 5308')
     6585              call iso_verif_egalite(fxt(iso_eau,il,i), &
     6586     &           fr(il,i),'cv3_routines 5308')
    65586587        endif !if (iso_eau.gt.0) then
    65596588        if ((iso_HDO.gt.0).and. &
    6560      &           (rr(il,inb(il)-1)+delt*fr(il,inb(il)-1).gt.ridicule)) then
    6561            call iso_verif_aberrant((xt(iso_HDO,il,inb(il)-1) &
    6562      &           +delt*fxt(iso_HDO,il,inb(il)-1)) &
    6563      &           /(rr(il,inb(il)-1)+delt*fr(il,inb(il)-1)),'cv3_yield 6555')
    6564         endif !if (iso_HDO.gt.0) then   
     6589     &           (rr(il,i)+delt*fr(il,i).gt.ridicule)) then
     6590           call iso_verif_aberrant((xt(iso_HDO,il,i) &
     6591     &           +delt*fxt(iso_HDO,il,i)) &
     6592     &           /(rr(il,i)+delt*fr(il,i)),'cv3_yield 6555')
     6593        endif !if (iso_HDO.gt.0) then                 
     6594          if ((iso_HDO.gt.0).and.(iso_O18.gt.0).and. &
     6595     &           (rr(il,i)+delt*fr(il,i).gt.ridicule)) then
     6596           if (iso_verif_O18_aberrant_nostop((xt(iso_HDO,il,i) &
     6597     &        +delt*fxt(iso_HDO,il,i))/(rr(il,i)+delt*fr(il,i)),(xt(iso_O18,il,i) &
     6598     &        +delt*fxt(iso_O18,il,i))/(rr(il,i)+delt*fr(il,i)), &
     6599     &        'cv3_yield 6555b').eq.1) then
     6600                write(*,*) 'il,i=',il,i
     6601                write(*,*) 'deltaOavant=',deltaO(xt(iso_O18,il,i)/rr(il,i))
     6602                write(*,*) 'deltaOapres=',deltaO((xt(iso_O18,il,i) &
     6603     &                  +delt*fxt(iso_O18,il,i))/(rr(il,i)+delt*fr(il,i)))
     6604                write(*,*) 'rr,fq*delt=',rr(il,i),delt*fr(il,i)
     6605                write(*,*) 'deltaOfq=',deltaO(fxt(iso_O18,il,i)/fr(il,i))
     6606                write(*,*) 'xt,fxt*delt=',xt(iso_O18,il,i),delt*fxt(iso_O18,il,i)
     6607                write(*,*) 'qent(il,inb(il),inb(il)),rr(il,inb(il))=', &
     6608     &                   qent(il,inb(il),inb(il)),rr(il,inb(il))
     6609                write(*,*) 'xtent(il,inb(il),inb(il)),xt(il,inb(il))=', &
     6610     &                   xtent(iso_O18,il,inb(il),inb(il)),xt(iso_O18,il,inb(il))
     6611                write(*,*) 'deltaOent=',deltaO(xtent(iso_O18,il,inb(il),inb(il))/qent(il,inb(il),inb(il)))
     6612                write(*,*) 'bx,xtbx(iso_O18)=',bx,xtbx(iso_O18)
     6613                stop
     6614
     6615           endif               
     6616         endif !if (iso_HDO.gt.0) then
     6617        enddo
    65656618#endif       
    65666619#endif
     
    67526805     &           +delt*fxt(iso_HDO,il,i)) &
    67536806     &           /(rr(il,i)+delt*fr(il,i)),'cv3_yield 6744')
    6754         endif !if (iso_HDO.gt.0) then   
     6807        endif !if (iso_HDO.gt.0) then               
     6808          if ((iso_HDO.gt.0).and.(iso_O18.gt.0).and. &
     6809     &           (rr(il,i)+delt*fr(il,i).gt.ridicule)) then
     6810           call iso_verif_O18_aberrant((xt(iso_HDO,il,i) &
     6811     &        +delt*fxt(iso_HDO,il,i))/(rr(il,i)+delt*fr(il,i)),(xt(iso_O18,il,i) &
     6812     &        +delt*fxt(iso_O18,il,i))/(rr(il,i)+delt*fr(il,i)), &
     6813     &        'cv3_yield 6744b')               
     6814          endif !if (iso_HDO.gt.0) then 
    67556815#endif         
    67566816#endif
     
    68006860      print *,' CV3_YIELD : alpha_qpos ',alpha_qpos(1)
    68016861    ENDIF
     6862
    68026863!
    68036864  DO il = 1, ncum
     
    68416902           call iso_verif_aberrant((xt(iso_HDO,il,i) &
    68426903     &           +delt*fxt(iso_HDO,il,i)) &
    6843      &           /(rr(il,i)+delt*fr(il,i)),'cv3_yield 6835')
    6844         endif !if (iso_HDO.gt.0) then   
     6904     &           /(rr(il,i)+delt*fr(il,i)),'cv3_yield 6835a')
     6905        endif !if (iso_HDO.gt.0) then       
     6906          if ((iso_HDO.gt.0).and.(iso_O18.gt.0).and. &
     6907     &           (rr(il,i)+delt*fr(il,i).gt.ridicule)) then
     6908           if (iso_verif_O18_aberrant_nostop((xt(iso_HDO,il,i) &
     6909     &        +delt*fxt(iso_HDO,il,i))/(rr(il,i)+delt*fr(il,i)),(xt(iso_O18,il,i) &
     6910     &        +delt*fxt(iso_O18,il,i))/(rr(il,i)+delt*fr(il,i)), &
     6911     &        'cv3_yield 6835b').eq.1) then
     6912                write(*,*) 'il,i=',il,i
     6913                write(*,*) 'deltaOavant=',deltaO(xt(iso_O18,il,i)/rr(il,i))
     6914                write(*,*) 'deltaOapres=',deltaO((xt(iso_O18,il,i) &
     6915     &                  +delt*fxt(iso_O18,il,i))/(rr(il,i)+delt*fr(il,i)))
     6916                write(*,*) 'rr,fq*delt=',rr(il,i),delt*fr(il,i)
     6917                write(*,*) 'alpha_qpos=',alpha_qpos(il)
     6918                write(*,*) 'fq*delt avantqpos=',delt*fr(il,i)*alpha_qpos(il)
     6919                write(*,*) 'deltaO avantqpos=',deltaO((xt(iso_O18,il,i) &
     6920     &                  +delt*fxt(iso_O18,il,i)*alpha_qpos(il))/(rr(il,i)+delt*fr(il,i)*alpha_qpos(il)))
     6921                write(*,*) 'deltaOfq=',deltaO(fxt(iso_O18,il,i)/fr(il,i))
     6922                write(*,*) 'xt,fxt*delt=',xt(iso_O18,il,i),delt*fxt(iso_O18,il,i)
     6923                stop
     6924           endif               
     6925          endif !if (iso_HDO.gt.0) then
    68456926#endif   
    68466927#ifdef DIAGISO
Note: See TracChangeset for help on using the changeset viewer.