Ignore:
Timestamp:
Jun 25, 2024, 1:54:02 PM (7 months ago)
Author:
tbertrand
Message:

LMDZ.PLUTO
resolving some issues in the code for 3D runs
TB

Location:
trunk/LMDZ.PLUTO/libf/phypluto
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.PLUTO/libf/phypluto/check_fields.F90

    r3184 r3390  
    88!$OMP THREADPRIVATE(default_wind_max)
    99
    10   real,save :: default_ps_min=80.  ! minimum reasonable surface pressure (Pa)
     10  real,save :: default_ps_min=1.e-5  ! minimum reasonable surface pressure (Pa)
    1111  real,save :: default_ps_max=3000000. ! maximum reasonable surface pressure (Pa)
    1212!$OMP THREADPRIVATE(default_ps_min,default_ps_max)
  • trunk/LMDZ.PLUTO/libf/phypluto/condense_n2.F90

    r3232 r3390  
    130130  REAL globzplevnew
    131131
    132 !   REAL vmrn2(klon)
     132  REAL vmrn2(klon)
    133133!   SAVE vmrn2
    134134  REAL stephan
     
    179179     ENDIF
    180180
    181      !vmrn2(:) = 1.
     181     vmrn2(:) = 1.
    182182     !IF (ch4lag) then
    183183     !   DO ig=1,klon
     
    545545              endif
    546546            end do
    547            end if
    548 
    549 
    550           !!! Source haze: 0.02 pourcent when n2 sublimes
     547          end if
     548
     549!         Value transfert at the surface interface when condensation sublimation:
     550          if (zmflux(1).lt.0) then
     551!               Surface condensation
     552                zum(1)= zu(1)
     553                zvm(1)= zv(1)
     554                ztm(1) = ztc(1)
     555          else
     556!               Surface sublimation:
     557                ztm(1) = ztsrf(ig) + pdtsrfc(ig)*ptimestep
     558                zum(1) = 0 
     559                zvm(1) = 0 
     560          end if
     561          do iq=1,nq
     562                 zqm(1,iq)=0. ! most tracer do not condense !
     563          enddo
     564!         Special case if the tracer is n2 gas
     565          if (igcm_n2.ne.0) zqm(1,igcm_n2)=1.
     566
     567           !!! Source haze: 0.02 pourcent when n2 sublimes
    551568          IF (source_haze) THEN
    552            IF (pdicen2(ig).lt.0) THEN
    553             DO iq=1,nq
    554              tname=noms(iq)
    555              if (tname(1:4).eq."haze") then
    556                    !zqm(1,iq)=0.02
    557                    !zqm(1,iq)=-pdicen2(ig)*0.02
    558                    zqm(1,iq)=-pdicen2(ig)*ptimestep*0.02
    559                    !zqm(10,iq)=-pdicen2(ig)*ptimestep*100.
    560                    !zqm(1,iq)=-pdicen2(ig)*1000000.
    561 
    562              endif
    563             ENDDO
    564            ENDIF
    565           ENDIF
     569               IF (pdicen2(ig).lt.0) THEN
     570                DO iq=1,nq
     571                 tname=noms(iq)
     572                 if (tname(1:4).eq."haze") then
     573                       !zqm(1,iq)=0.02
     574                       !zqm(1,iq)=-pdicen2(ig)*0.02
     575                       zqm(1,iq)=-pdicen2(ig)*ptimestep*0.02
     576                       !zqm(10,iq)=-pdicen2(ig)*ptimestep*100.
     577                       !zqm(1,iq)=-pdicen2(ig)*1000000.
     578
     579                 endif
     580                ENDDO
     581               ENDIF     
     582          ENDIF     
    566583          ztm(klev+1)= ztc(klev) ! should not be used, but...
    567584          zum(klev+1)= zu(klev)  ! should not be used, but...
    568585          zvm(klev+1)= zv(klev)  ! should not be used, but...
    569586          do iq=1,nq
    570            zqm(klev+1,iq)= zq(klev,iq)
     587             zqm(klev+1,iq)= zq(klev,iq)
    571588          enddo
    572589
    573 !             Tendencies on T, U, V, Q
    574 !             """""""""""""""""""""""
     590!         Tendencies on T, U, V, Q
     591!         """""""""""""""""""""""
    575592          DO l=1,klev
    576593
  • trunk/LMDZ.PLUTO/libf/phypluto/hazecloud.F90

    r3247 r3390  
    1010      use tracer_h, only: igcm_haze, igcm_ch4_gas, igcm_prec_haze, noms, mmol
    1111      use geometry_mod, only: longitude, latitude ! in radians
    12       use callkeys_mod, only: hazeconservch4
     12      use callkeys_mod, only: hazeconservch4, diurnal
    1313
    1414      implicit none
     
    119119         mu_ipm(1) = 0.5 !max(mu0(1), 0.5)
    120120         mu_sol(1)=0.25
     121      ELSE IF (.not.diurnal) THEN
     122         flym_ipm(:)= mu0(:)*75.e10
     123         mu_sol(:) = mu0(:)
     124         mu_ipm(:) = max(mu_sol(:), 0.5)
    121125      ELSE
    122 
    123126!     1)  get longitude/latitude (rad) of anti-subsolar point (max de mu0 - 180)
    124127        longit=longitude((MAXLOC(mu0,DIM=1,MASK=mu0.GT.0.9)))     ! rad
  • trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90

    r3377 r3390  
    12901290         endif
    12911291
     1292         zdqc(:,:,:)=0.
     1293         zdqsc(:,:)=0.
    12921294         call condense_n2(ngrid,nlayer,nq,ptimestep,                    &
    12931295                           capcal,pplay,pplev,tsurf,pt,                 &
     
    22392241        call writediagfi(ngrid,"zdtlw","LW heating","T s-1",3,zdtlw)
    22402242        call writediagfi(ngrid,"dtrad","radiative heating","K s-1",3,dtrad)
    2241         call writediagfi(ngrid,"zdtdyn","Dyn. heating","T s-1",3,zdtdyn)
     2243      ! call writediagfi(ngrid,"zdtdyn","Dyn. heating","T s-1",3,zdtdyn)
    22422244
    22432245        !Pluto specific
    2244         call writediagfi(ngrid,"zdtc","tendancy T cond N2","K",3,zdtc)
     2246      !  call writediagfi(ngrid,"zdtc","tendancy T cond N2","K",3,zdtc)
    22452247      !   call writediagfi(ngrid,"zdtch4cloud","tendancy T ch4cloud","K",3,zdtch4cloud)
    22462248      !   call writediagfi(ngrid,"zdtcocloud","tendancy T cocloud","K",3,zdtcocloud)
     
    22682270
    22692271         do iq=1,nq
    2270             call writediagfi(ngrid,noms(iq),noms(iq),'kg/kg',3,zq(1,1,iq))
    2271             call writediagfi(ngrid,trim(noms(iq))//'_surf',trim(noms(iq))//'_surf',  &
    2272                              'kg m^-2',2,qsurf_hist(1,iq) )
    2273             call writediagfi(ngrid,trim(noms(iq))//'_col',trim(noms(iq))//'_col',    &
    2274                             'kg m^-2',2,qcol(1,iq) )
     2272          ! call writediagfi(ngrid,noms(iq),noms(iq),'kg/kg',3,zq(1,1,iq))
     2273          !  call writediagfi(ngrid,trim(noms(iq))//'_surf',trim(noms(iq))//'_surf',  &
     2274          !                   'kg m^-2',2,qsurf_hist(1,iq) )
     2275          !  call writediagfi(ngrid,trim(noms(iq))//'_col',trim(noms(iq))//'_col',    &
     2276          !                  'kg m^-2',2,qcol(1,iq) )
    22752277!          call writediagfi(ngrid,trim(noms(iq))//'_surf',trim(noms(iq))//'_surf',  &
    22762278!                          'kg m^-2',2,qsurf(1,iq) )
     
    22872289            ! if((hydrology).and.(.not.ok_slab_ocean))then  !AF24: removed
    22882290
    2289             call writediagfi(ngrid,"tau_col","Total aerosol optical depth","[]",2,tau_col)
     2291           ! call writediagfi(ngrid,"tau_col","Total aerosol optical depth","[]",2,tau_col)
    22902292
    22912293         enddo ! end of 'nq' loop
    22922294
    22932295         !Pluto specific
    2294          call writediagfi(ngrid,'n2_iceflux','n2_iceflux',"kg m^-2 s^-1",2,flusurf(1,igcm_n2) )
     2296         !call writediagfi(ngrid,'n2_iceflux','n2_iceflux',"kg m^-2 s^-1",2,flusurf(1,igcm_n2) )
    22952297         ! call writediagfi(ngrid,'haze_reff','haze_reff','m',3,reffrad(1,1,1))
    22962298         if (methane) then
     
    23022304            endif
    23032305
    2304              ! Tendancies
    2305              call writediagfi(ngrid,"zdqch4cloud","ch4 cloud","T s-1",&
    2306                            3,zdqch4cloud(1,1,igcm_ch4_gas))
    2307             call writediagfi(ngrid,"zdqcn2_ch4","zdq condn2 ch4","",&
    2308                             3,zdqc(:,:,igcm_ch4_gas))
    2309             call writediagfi(ngrid,"zdqdif_ch4","zdqdif ch4","",&
    2310                             3,zdqdif(:,:,igcm_ch4_gas))
    2311             call writediagfi(ngrid,"zdqsdif_ch4_ice","zdqsdif ch4","",&
    2312                             2,zdqsdif(:,igcm_ch4_ice))
    2313             call writediagfi(ngrid,"zdqadj_ch4","zdqadj ch4","",&
    2314                             3,zdqadj(:,:,igcm_ch4_gas))
     2306            ! Tendancies
     2307            !call writediagfi(ngrid,"zdqch4cloud","ch4 cloud","T s-1",&
     2308            !               3,zdqch4cloud(1,1,igcm_ch4_gas))
     2309            ! call writediagfi(ngrid,"zdqcn2_ch4","zdq condn2 ch4","",&
     2310            !                3,zdqc(:,:,igcm_ch4_gas))
     2311            ! call writediagfi(ngrid,"zdqdif_ch4","zdqdif ch4","",&
     2312            !                3,zdqdif(:,:,igcm_ch4_gas))
     2313            ! call writediagfi(ngrid,"zdqsdif_ch4_ice","zdqsdif ch4","",&
     2314            !                2,zdqsdif(:,igcm_ch4_ice))
     2315            ! call writediagfi(ngrid,"zdqadj_ch4","zdqadj ch4","",&
     2316            !                3,zdqadj(:,:,igcm_ch4_gas))
    23152317             if (sedimentation) then
    23162318               call writediagfi(ngrid,"zdqsed_ch4","zdqsed ch4","",&
  • trunk/LMDZ.PLUTO/libf/phypluto/sfluxi_pluto_mod.F

    r3361 r3390  
    1414      use radcommon_h, only: planckir, tlimit,sigma, gweight
    1515      use comcstfi_mod, only: pi
    16       use gfluxi_old_mod, only: gfluxi_old
     16      !use gfluxi_old_mod, only: gfluxi_old
     17      use gfluxi_mod, only: gfluxi
    1718
    1819
     
    136137C         WITHIN EACH INTERVAL AT THE MIDPOINT WAVENUMBER
    137138
    138           CALL GFLUXI_OLD(NLEVRAD,TLEV,NW,DWNI(NW),DTAUI(1,NW,NG),
     139          CALL GFLUXI(NLEVRAD,TLEV,NW,DWNI(NW),DTAUI(1,NW,NG),
    139140     *                TAUCUMI(1,NW,NG),
    140141     *                WBARI(1,NW,NG),COSBI(1,NW,NG),UBARI,RSFI,BTOP,
     
    193194
    194195
    195        CALL GFLUXI_OLD(NLEVRAD,TLEV,NW,DWNI(NW),DTAUI(1,NW,NG),
     196       CALL GFLUXI(NLEVRAD,TLEV,NW,DWNI(NW),DTAUI(1,NW,NG),
    196197     *                TAUCUMI(1,NW,NG),
    197198     *                WBARI(1,NW,NG),COSBI(1,NW,NG),UBARI,RSFI,BTOP,
  • trunk/LMDZ.PLUTO/libf/phypluto/sfluxv_pluto_mod.F

    r3361 r3390  
    1212      use radinc_h, only: L_NLAYRAD, L_NLEVRAD
    1313      use radcommon_h, only: tlimit, gweight
    14       use gfluxv_old_mod, only: gfluxv_old
     14      !use gfluxv_old_mod, only: gfluxv_old
     15      use gfluxv_mod, only: gfluxv
    1516
    1617      implicit none
     
    100101
    101102
    102           CALL GFLUXV_OLD(DTAUV(1,NW,NG),TAUV(1,NW,NG),TAUCUMV(1,NW,NG),
     103          CALL GFLUXV(DTAUV(1,NW,NG),TAUV(1,NW,NG),TAUCUMV(1,NW,NG),
    103104     *                WBARV(1,NW,NG),COSBV(1,NW,NG),UBAR0,F0PI,RSFV,
    104105     *                BTOP,BSURF,FMUPV,FMDV,DIFFV,FLUXUP,FLUXDN)
     
    155156C       RETURN FLUXES FOR A GIVEN NT
    156157
    157         CALL GFLUXV_OLD(DTAUV(1,NW,NG),TAUV(1,NW,NG),TAUCUMV(1,NW,NG),
     158        CALL GFLUXV(DTAUV(1,NW,NG),TAUV(1,NW,NG),TAUCUMV(1,NW,NG),
    158159     *              WBARV(1,NW,NG),COSBV(1,NW,NG),UBAR0,F0PI,RSFV,
    159160     *              BTOP,BSURF,FMUPV,FMDV,DIFFV,FLUXUP,FLUXDN)
Note: See TracChangeset for help on using the changeset viewer.