Ignore:
Timestamp:
Apr 3, 2023, 10:25:44 AM (20 months ago)
Author:
crisi
Message:

Bug corrections in LMDZiso, especially for water tagging

File:
1 edited

Legend:

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

    r4479 r4491  
    157157        & iso_verif_aberrant_choix,iso_verif_positif, &
    158158        & iso_verif_positif_choix_vect,iso_verif_o18_aberrant_nostop, &
    159         & iso_verif_init,&
     159        & iso_verif_init,iso_verif_aberrant_enc_choix_nostop,&
    160160        & iso_verif_positif_strict_nostop,iso_verif_O18_aberrant_enc_vect2D
    161161#endif
     
    24802480#ifdef ISO
    24812481#ifdef ISOVERIF
    2482 !    write(*,*) 'physiq 1847: qx(1,1,:)=',qx(1,1,:)
     2482    write(*,*) 'physiq 1847: qx(1,1,:)=',qx(1,1,:)
     2483    write(*,*) 'iqIsoPha(:,ivap)=',iqIsoPha(:,ivap)
    24832484    write(*,*) 'physiq 1846b: ok_isotopes,ntraciso,niso=',niso>0,ntraciso,niso
    24842485#endif
     
    25962597     &              'physiq 2099 ql').eq.1) then
    25972598                  write(*,*) 'i,k,ql_seri(i,k)=',i,k,ql_seri(i,k)
    2598                   stop
     2599                  !stop
    25992600              endif !  if (iso_verif_o18_aberrant_nostop
    26002601            endif !if (q_seri(i,k).gt.errmax) then 
     
    26052606     &              'physiq 2099 qs').eq.1) then
    26062607                  write(*,*) 'i,k,qs_seri(i,k)=',i,k,qs_seri(i,k)
    2607                   stop
     2608                  !stop
    26082609              endif !  if (iso_verif_o18_aberrant_nostop
    26092610            endif !if (q_seri(i,k).gt.errmax) then
    26102611          enddo !k=1,klev
    26112612         enddo  !i=1,klon
    2612         endif !if ((iso_HDO.gt.0).and.(iso_O18.gt.0)) then
     2613        endif !if ((iso_HDO.gt.0).and.(iso_O18.gt.0)) then         
     2614#ifdef ISOTRAC 
     2615         DO k = 1, klev
     2616           DO i = 1, klon   
     2617             call iso_verif_traceur(xt_seri(1,i,k),'physiq 2620a')
     2618             call iso_verif_traceur(xtl_seri(1,i,k),'physiq 2620b')
     2619             call iso_verif_traceur(xts_seri(1,i,k),'physiq 2620c')
     2620           enddo
     2621         enddo
     2622#endif
    26132623#endif
    26142624    !
     
    28442854       ENDIF
    28452855    ENDIF
     2856
     2857#ifdef ISO
     2858#ifdef ISOVERIF
     2859#ifdef ISOTRAC
     2860         DO k = 1, klev
     2861           DO i = 1, klon         
     2862             call iso_verif_traceur(xt_seri(1,i,k), &
     2863     &           'physiq 2856: avant reevp')
     2864           enddo
     2865         enddo
     2866#endif
     2867#endif
     2868#endif
    28462869    !
    28472870    ! Re-evaporer l'eau liquide nuageuse
     
    34583481                  call iso_verif_egalite(q_w(i,k),xt_w(iso_eau,i,k),'physiq 3338')
    34593482                endif
     3483                if (iso_HDO.gt.0) then
     3484                  if ((iso_verif_aberrant_enc_choix_nostop(xt_x(iso_hdo,i,k),q_x(i,k), &
     3485                        ridicule,deltalim,'physic 3462a xt_x').eq.1).or. &
     3486                        (iso_verif_aberrant_enc_choix_nostop(xt_w(iso_hdo,i,k),q_w(i,k), &
     3487                        ridicule,deltalim,'physic 3462b xt_w').eq.1)) then
     3488                     write(*,*) 'i,k=',i,k
     3489                     write(*,*) 'q_x(i,k),q_seri(i,k),wake_s(i),wake_deltaq(i,k)=', &
     3490                                q_x(i,k),q_seri(i,k),wake_s(i),wake_deltaq(i,k)
     3491                     write(*,*) 'xt_x(iso_hdo,i,k),xt_seri(iso_hdo,i,k),wake_s(i),wake_deltaxt(iso_hdo,i,k)=', &
     3492                                xt_x(iso_hdo,i,k),xt_seri(iso_hdo,i,k),wake_s(i),wake_deltaxt(iso_hdo,i,k)
     3493                     write(*,*) 'deltaD_seri,wake=',deltaD(xt_seri(iso_hdo,i,k)/q_seri(i,k)), &
     3494                                deltaD(wake_deltaxt(iso_hdo,i,k)/wake_deltaq(i,k))
     3495                     write(*,*) 'deltaD_x,deltaD_w=',deltaD(xt_x(iso_hdo,i,k)/q_x(i,k)),deltaD(xt_w(iso_hdo,i,k)/q_w(i,k))
     3496                     stop
     3497                  endif
     3498                endif
    34603499#endif
    34613500#endif
     
    35903629              call iso_verif_aberrant_encadre( &
    35913630     &           xt_w(iso_hdo,i,k)/q_w(i,k), &
    3592      &          'physic 2657b')
     3631     &          'physic 2657c')
    35933632             endif !if (q_x(i,k).gt.ridicule) then
    35943633           endif !if (iso_HDO.gt.0) then
     
    42554294             endif !if ((iso_HDO.gt.0).and.(iso_O18.gt.0)) then   
    42564295             if ((iso_O17.gt.0).and.(iso_O18.gt.0)) then
    4257                if ((q_seri(i,k).gt.ridicule).and.(l.lt.nlevmaxO17)) then
     4296               if ((q_seri(i,k).gt.ridicule).and.(k.lt.nlevmaxO17)) then
    42584297                 call iso_verif_aberrant_o17(xt_seri(iso_o17,i,k) &
    42594298     &           /q_seri(i,k),xt_seri(iso_o18,i,k) &
     
    46194658        do i=1,klon
    46204659           if ((iso_O17.gt.0).and.(iso_O18.gt.0)) then
    4621             if ((q_seri(i,k).gt.ridicule).and.(l.lt.nlevmaxO17)) then
     4660            if ((q_seri(i,k).gt.ridicule).and.(k.lt.nlevmaxO17)) then
    46224661             call iso_verif_aberrant_o17(xt_seri(iso_o17,i,k) &
    46234662     &           /q_seri(i,k),xt_seri(iso_o18,i,k) &
     
    48414880            endif !if (q_seri(i,k).gt.errmax) then
    48424881            if (ql_seri(i,k).gt.ridicule) then
    4843                call iso_verif_aberrant( &
    4844      &           xtl_seri(iso_HDO,i,k)/ql_seri(i,k),'physiq 2871')
     4882               call iso_verif_aberrant_choix(xtl_seri(iso_HDO,i,k),ql_seri(i,k), &
     4883                        ridicule,deltalim_snow,'physiq 2871')
    48454884               if (iso_O18.gt.0) then 
    48464885                 if (iso_verif_o18_aberrant_nostop( &
     
    48544893                        write(*,*) 'deltaO(d_ql_lsc(i,k))=',deltaO( &
    48554894     &                           d_xtl_lsc(iso_O18,i,k)/d_ql_lsc(i,k))
    4856                         stop
     4895                        !stop
    48574896                 endif
    48584897               endif ! if (iso_O18.gt.0) then 
     
    48644903        do i=1,klon
    48654904          do k=1,nlev
    4866            if ((q_seri(i,k).gt.ridicule).and.(l.lt.nlevmaxO17)) then
     4905           if ((q_seri(i,k).gt.ridicule).and.(k.lt.nlevmaxO17)) then
    48674906            call iso_verif_aberrant_o17(xt_seri(iso_o17,i,k) &
    48684907     &           /q_seri(i,k),xt_seri(iso_o18,i,k) &
     
    61496188     &              xt_seri(iso_HDO,i,k)/q_seri(i,k), &
    61506189     &              xt_seri(iso_O18,i,k)/q_seri(i,k), &
    6151      &              'physiq 5937, juste apres methox, qv').eq.1) then
     6190     &              'physiq 5937a, juste apres methox, qv').eq.1) then
    61526191                  write(*,*) 'physic 2444: i,k,q_seri(i,k)=',i,k,q_seri(i,k)
    61536192                  write(*,*) 'xt_seri(:,i,k)=',xt_seri(:,i,k)
     
    61596198     &              xtl_seri(iso_HDO,i,k)/ql_seri(i,k), &
    61606199     &              xtl_seri(iso_O18,i,k)/ql_seri(i,k), &
    6161      &              'physiq 5937, juste apres methox, ql').eq.1) then
     6200     &              'physiq 5937b, juste apres methox, ql').eq.1) then
    61626201                  write(*,*) 'i,k,ql_seri(i,k)=',i,k,ql_seri(i,k)
    6163                   stop
     6202                  !stop
    61646203              endif !  if (iso_verif_o18_aberrant_nostop
    61656204            endif !if (q_seri(i,k).gt.errmax) then 
     
    61686207     &              xts_seri(iso_HDO,i,k)/qs_seri(i,k), &
    61696208     &              xts_seri(iso_O18,i,k)/qs_seri(i,k), &
    6170      &              'physiq 5937, juste apres methox, qs').eq.1) then
     6209     &              'physiq 5937c, juste apres methox, qs').eq.1) then
    61716210                  write(*,*) 'i,k,qs_seri(i,k)=',i,k,qs_seri(i,k)
    6172                   stop
     6211                  !stop
    61736212              endif !  if (iso_verif_o18_aberrant_nostop
    61746213            endif !if (q_seri(i,k).gt.errmax) then
Note: See TracChangeset for help on using the changeset viewer.