Ignore:
Timestamp:
Mar 27, 2026, 3:09:52 PM (2 weeks ago)
Author:
Sebastien Nguyen
Message:

last version for implementation of YM pbl_surface refactoring isisotopes. Validated on ISO CQ : gives same results than version before refactoring startphy.nc, restartphy.nc, histday.nc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/LMDZISOdevSN/libf/phylmdiso/physiq_mod.F90

    r5927 r6141  
    6464    USE orografi_strato_mod, ONLY: drag_noro_strato, lift_noro_strato, sugwd_strato
    6565    USE ozonecm_m, ONLY: ozonecm ! ozone of J.-F. Royer
    66     USE pbl_surface_mod, ONLY : pbl_surface
     66    USE pbl_surface_mod, ONLY : pbl_surface_main
    6767    USE phyaqua_mod, ONLY: zenang_an
    6868    USE phyetat0_mod, ONLY: phyetat0
     
    11101110    LOGICAL, SAVE :: ok_bug_ajs_cv = .TRUE.
    11111111    !$OMP THREADPRIVATE(ok_bug_ajs_cv)
     1112
    11121113    !
    11131114    !********************************************************
     
    17791780#ifdef ISO
    17801781       WRITE(*,*) 'physiq 1846a: ok_isotopes,ntraciso,niso=',niso>0,ntraciso,niso
    1781        IF (niso  <= 0) CALL abort_physic('physiq 1756','options iso incompatibles',1)
     1782       IF (niso  <= 0) CALL abort_physic('physiq 1782','options iso incompatibles',1)
    17821783#ifdef ISOTRAC
    1783        IF (nzone <= 0) CALL abort_physic('physiq 1758','options isotrac incompatibles',1)
     1784       IF (nzone <= 0) CALL abort_physic('physiq 1784','options isotrac incompatibles',1)
    17841785#else
    1785        IF (nzone  > 0) CALL abort_physic('physiq 1762','options isotrac incompatibles',1)
     1786       IF (nzone  > 0) CALL abort_physic('physiq 1786','options isotrac incompatibles',1)
    17861787#endif
    17871788#else
    1788        IF (niso   > 0) CALL abort_physic('physiq 1772','options iso incompatibles',1)
     1789       IF (niso   > 0) CALL abort_physic('physiq 1789','options iso incompatibles',1)
    17891790#endif
    17901791
     
    17921793    ! initialisations isotopiques
    17931794#ifdef ISOVERIF
    1794        WRITE(*,*) 'physiq 1366: call iso_init'
     1795       WRITE(*,*) 'physiq 1795: call iso_init'
    17951796       WRITE(*,*) 'ok_isotopes=',niso > 0
    17961797#endif
     
    17981799#ifdef ISOTRAC
    17991800       IF (nzone > 0) THEN
    1800          WRITE(*,*) 'physiq 1416: call iso_traceurs_init'
     1801         WRITE(*,*) 'physiq 1801: call iso_traceurs_init'
    18011802         CALL iso_traceurs_init()
    18021803       ENDIF
     
    18041805!write(*,*) 'gcm 265: ntraciso=',ntraciso
    18051806#ifdef ISOVERIF
    1806        WRITE(*,*) 'physiq 1421: call iso_verif_init'
     1807       WRITE(*,*) 'physiq 1807: call iso_verif_init'
    18071808       CALL iso_verif_init()
    18081809#endif
     
    26542655          u_seri(i,k)  = u(i,k)
    26552656          v_seri(i,k)  = v(i,k)
    2656           qx_seri(i,k,:)  = qx(i,k,:)
     2657          qx_seri(i,k,:)  = qx(i,k,:)  ! Changement ISO et reevap !
    26572658          q_seri(i,k)  = qx(i,k,ivap)
    26582659          ql_seri(i,k) = qx(i,k,iliq)
     
    33803381       ENDIF
    33813382
    3382        CALL pbl_surface(  &
     3383!       CALL pbl_surface(  &
     3384        CALL pbl_surface_main(  &
    33833385            phys_tstep,     date0,     itap,    days_elapsed+1, &
    33843386            debut,     lafin, &
     
    34123414            kh,kh_x,kh_w, &
    34133415                                !>nrlmd
    3414             coefh(1:klon,1:klev,1:nbsrf+1), coefm(1:klon,1:klev,1:nbsrf+1), &
     3416!SN            coefh(1:klon,1:klev,1:nbsrf+1), coefm(1:klon,1:klev,1:nbsrf+1), &
     3417            coefh, coefm, &
    34153418            slab_wfbils,                 &
    34163419            qsol,      zq2m,      s_pblh,  s_lcl, &
     
    34473450     &      d_xt_vdf,d_xt_vdf_w,d_xt_vdf_x, &
    34483451     &      xtsol,dxtevap,zxxtsnow,zxfluxxt,fluxxt, &
    3449      &      h1_diag,runoff_diag,xtrunoff_diag, &
     3452     &      h1_diag,runoff_diag,xtrunoff_diag, & ! SN supprimer les runoff_diag ?
    34503453     &      xtriverflow,xtcoastalflow &
    34513454#endif     
     
    34543457
    34553458#ifdef ISO
    3456        ! write(*,*) 'physiq 2402: apres pbl_surface'
     3459       ! write(*,*) 'physiq 3459: apres pbl_surface'
    34573460#ifdef ISOVERIF
    34583461      do i=1,klon
    34593462        do k=1,klev
    34603463          do ixt=1,ntraciso
    3461             call iso_verif_noNaN(d_xt_vdf(ixt,i,k),'physiq 1993a')
    3462             call iso_verif_noNaN(xt_seri(ixt,i,k),'physiq 1993b')
     3464            call iso_verif_noNaN(d_xt_vdf(ixt,i,k),'physiq 3461a')
     3465            call iso_verif_noNaN(xt_seri(ixt,i,k),'physiq 3461b')
    34633466          enddo !do ixt=1,ntraciso   
    34643467        enddo
     
    34693472        do k=1,klev     
    34703473#ifdef ISOTRAC     
    3471           call iso_verif_traceur_justmass(d_xt_vdf(1,i,k),'physiq 2443')
     3474          call iso_verif_traceur_justmass(d_xt_vdf(1,i,k),'physiq 3471')
    34723475#endif           
    34733476        enddo
     
    35313534          d_deltat_vdf(:,:) = d_t_vdf_w(:,:)-d_t_vdf_x(:,:)
    35323535          d_deltaq_vdf(:,:) = d_q_vdf_w(:,:)-d_q_vdf_x(:,:)
     3536!SN pourquoi il n'y a pas la meme chose pour "d_deltaxt_vdf" ?
    35333537          CALL add_wake_tend &
    35343538             (d_deltat_vdf, d_deltaq_vdf, dsig0, dsig0, ddens0, ddens0, wkoccur1, 'vdf', abortphy &
     
    37563760    ELSE IF (iflag_con.EQ.2) THEN
    37573761#ifdef ISO
    3758        CALL abort_physic('physiq 2770','isos pas prevus ici',1)
     3762       CALL abort_physic('physiq 3760','isos pas prevus ici',1)
    37593763#endif
    37603764       CALL conflx(phys_tstep, paprs, pplay, t_seri, q_seri, &
     
    38713875         ENDDO
    38723876       ELSE
    3873                 t_w(:,:) = t_seri(:,:)
    3874                 q_w(:,:) = q_seri(:,:)
    3875                 t_x(:,:) = t_seri(:,:)
    3876                 q_x(:,:) = q_seri(:,:)
    3877 #ifdef ISO
    3878                 DO ixt=1,ntraciso
    3879                   xt_w(ixt,:,:) = xt_seri(ixt,:,:)
    3880                   xt_x(ixt,:,:) = xt_seri(ixt,:,:)
    3881                 ENDDO
     3877          t_w(:,:) = t_seri(:,:)
     3878          q_w(:,:) = q_seri(:,:)
     3879          t_x(:,:) = t_seri(:,:)
     3880          q_x(:,:) = q_seri(:,:)
     3881#ifdef ISO
     3882          DO ixt=1,ntraciso
     3883            xt_w(ixt,:,:) = xt_seri(ixt,:,:)
     3884            xt_x(ixt,:,:) = xt_seri(ixt,:,:)
     3885          ENDDO
    38823886#endif
    38833887       ENDIF !IF (iflag_wake>=1) THEN
     
    50845088          d_q_ajs(:,:)=d_q_ajs(:,:)+d_q_ajsb(:,:)
    50855089#ifdef ISO
    5086          d_xt_ajs(:,:,:)=d_xt_ajs(:,:,:)+d_xt_ajsb(:,:,:)
     5090          d_xt_ajs(:,:,:)=d_xt_ajs(:,:,:)+d_xt_ajsb(:,:,:)
    50875091#endif
    50885092
     
    51015105    CALL surf_wind(klon,nsurfwind,zu10m,zv10m,wake_s,wake_Cstar,zustar,ale_bl,surf_wind_value,surf_wind_proba)
    51025106
    5103     !
    51045107    !===================================================================
    51055108    ! Computation of ratqs, the width (normalized) of the subrid scale
     
    59385941#endif
    59395942          ENDIF
     5943
    59405944       ELSE   !--flag_aerosol = 0
    59415945          tausum_aero(:,:,:) = 0.
     
    72207224    IF (ok_water_mass_fixer) THEN
    72217225#ifdef ISO
    7222       CALL abort_physic('physiq 6936','isos pas prevus dans le mass fixer',1)
     7226      CALL abort_physic('physiq 7226','isos pas prevus dans le mass fixer',1)
    72237227      ! Camille Risi mai 2024: on attend d'avoir la 4e dimension qui rendra tout plus simple.
    72247228#endif
Note: See TracChangeset for help on using the changeset viewer.