Changeset 3935


Ignore:
Timestamp:
Oct 24, 2025, 4:39:28 PM (3 months ago)
Author:
jliu
Message:

#Non-orographic gravity waves and induced turbulence
#are added to the model. Further tunning are still needed.

Location:
trunk/LMDZ.PLUTO
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.PLUTO/changelog.txt

    r3760 r3935  
    18791879flag to trigger outputing a diagsoil.nc file or not.
    18801880
     1881== 24/10/2025 == Jliu
     1882Add non-orographic gravity waves and induced turbulence to the model.
     1883The model is compileable with the two new shcemes, however, carefull
     1884parameter selection is needed since the current parameters are for Mars.
  • trunk/LMDZ.PLUTO/libf/phypluto/callkeys_mod.F90

    r3932 r3935  
    66      logical,save :: calladj,calltherm,n2cond,callsoil,calllott
    77!$OMP THREADPRIVATE(calladj,calltherm,n2cond,callsoil,calllott)
     8      logical,save :: calllott_nonoro
     9!$OMP THREADPRIVATE(calllott_nonoro)     
    810      logical,save :: callconduct,callmolvis,callmoldiff
    911!$OMP THREADPRIVATE(callconduct,callmolvis,callmoldiff)
  • trunk/LMDZ.PLUTO/libf/phypluto/inifis_mod.F90

    r3932 r3935  
    2323                          mugaz, pi, avocado
    2424  use planetwide_mod, only: planetwide_sumval
     25  use nonoro_gwd_mix_mod, only: calljliu_gwimix
    2526  use callkeys_mod
     27  use nonoro_gwd_ran_mod, only: ini_nonoro_gwd_ran, &
     28                                end_nonoro_gwd_ran
     29  use nonoro_gwd_mix_mod, only: ini_nonoro_gwd_mix, &
     30                                end_nonoro_gwd_mix
     31                               
    2632  use surfdat_h
    2733  use wstats_mod, only: callstats
     
    373379     if (is_master) write(*,*) trim(rname)//": callsoil = ",callsoil
    374380
     381     if (is_master) write(*,*)trim(rname)//&
     382       ": call orographic gravity waves ?"
    375383     calllott=.false. ! default value
    376384     call getin_p("calllott",calllott)
    377385     if (is_master) write(*,*)trim(rname)//": calllott = ",calllott
     386
     387     if (is_master) write(*,*)trim(rname)//&
     388       ": call  non-orographic gravity waves ?"
     389     calllott_nonoro=.false. ! default value
     390     call getin_p("calllott_nonoro",calllott_nonoro)
     391     if (is_master) write(*,*)trim(rname)//&
     392       ": calllott_nonoro = ",calllott_nonoro
     393
     394     if (is_master) write(*,*)trim(rname)//&       
     395       ": call jliu's non-orogrphic GW-induced turbulence"
     396     calljliu_gwimix=.false. ! default value
     397     call getin_p("calljliu_gwimix",calljliu_gwimix)
     398     if (is_master) write(*,*)trim(rname)//&   
     399       ": calljliu_gwimix = ",calljliu_gwimix
    378400
    379401     if (is_master) write(*,*)trim(rname)//&
     
    15001522  call ini_comsoil_h(ngrid)
    15011523
     1524  ! allocate arrays in "nonoro_gwd_ran_mod"
     1525  call end_nonoro_gwd_ran
     1526  call ini_nonoro_gwd_ran(ngrid,nlayer)
     1527
     1528  ! allocate arrays in "nonoro_gwd_mix_mod"
     1529  call end_nonoro_gwd_mix
     1530  call ini_nonoro_gwd_mix(ngrid,nlayer,nq)
     1531
    15021532  END SUBROUTINE inifis
    15031533
  • trunk/LMDZ.PLUTO/libf/phypluto/phyetat0_mod.F90

    r3916 r3935  
    2727                     get_field, get_var, inquire_field, &
    2828                     inquire_dimension, inquire_dimension_length
     29  use nonoro_gwd_ran_mod,  only: du_nonoro_gwd, dv_nonoro_gwd
     30  use nonoro_gwd_mix_mod,  only: du_eddymix_gwd, dv_eddymix_gwd, de_eddymix_rto, &
     31                               df_eddymix_flx, dh_eddymix_gwd, dq_eddymix_gwd             
    2932  use callkeys_mod, only: surfalbedo,surfemis, callsoil
    3033  use mod_phys_lmdz_para, only : is_master
  • trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90

    r3932 r3935  
    4747      use calldrag_noro_mod, only: calldrag_noro
    4848      use time_phylmdz_mod, only: daysec
     49      use nonoro_gwd_ran_mod, only: nonoro_gwd_ran
     50      use nonoro_gwd_mix_mod, only: nonoro_gwd_mix, calljliu_gwimix
     51
    4952      use callkeys_mod, only: albedo_spectral_mode, calladj, calldifv,        &
    5053                              calllott, callrad, callsoil, nosurf,            &
    5154                              callconduct,callmolvis,callmoldiff,             &
    52                               corrk,                                          &
     55                              corrk, calllott_nonoro,                         &
    5356                              diurnal, enertest, fat1au,                      &
    5457                              icetstep, intheat, iradia, kastprof,            &
     
    6770                              global1d, szangle,                              &
    6871                              callmufi, evol1d
     72
    6973      use check_fields_mod, only: check_physics_fields
    7074      use conc_mod, only: rnew, cpnew, ini_conc_mod
     
    476480      REAL d_u_hin(ngrid,nlayer), d_v_hin(ngrid,nlayer)
    477481      REAL d_t_hin(ngrid,nlayer)
     482      REAL d_u_mix(ngrid,nlayer), d_v_mix(ngrid,nlayer)
     483      REAL d_t_mix(ngrid,nlayer), zdq_mix(ngrid,nlayer,nq)
    478484!  Diagnostics 2D of gw_nonoro
    479485      REAL zustrhi(ngrid), zvstrhi(ngrid)
     
    13841390      endif ! end of 'calladj'
    13851391
     1392! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     1393! IV.b Non-orographic gravity waves and induced turbulence
     1394! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     1395        IF (calllott_nonoro) THEN
     1396         CALL nonoro_gwd_ran(ngrid,nlayer,ptimestep, &
     1397                      cpnew,rnew,                    &
     1398                      zplay,                         &
     1399                      zmax_th,                       &
     1400                      pt, pu, pv,                    &
     1401                      pdt, pdu, pdv,                 &
     1402                      zustrhi,zvstrhi,               &
     1403                      d_t_hin, d_u_hin, d_v_hin)
     1404           IF (calljliu_gwimix) THEN
     1405            CALL nonoro_gwd_mix(ngrid,nlayer,ptimestep,  &
     1406                      nq,cpnew, rnew,                    &
     1407                      zplay,                             &
     1408                      zmax_th,                           &
     1409                      pt, pu, pv, pq, zh,                &
     1410                  !loss,  chemical reaction loss rates
     1411                      pdt, pdu, pdv, pdq, zdh,           &
     1412                  !  zustrhi,zvstrhi,
     1413                      zdq_mix, d_t_mix, d_u_mix, d_v_mix)
     1414           ENDIF
     1415 
     1416  !  Update tendencies
     1417           pdt(1:ngrid,1:nlayer)=pdt(1:ngrid,1:nlayer) +   &
     1418                                 d_t_hin(1:ngrid,1:nlayer)
     1419           pdu(1:ngrid,1:nlayer)=pdu(1:ngrid,1:nlayer) +   &
     1420                                 d_u_hin(1:ngrid,1:nlayer)
     1421           pdv(1:ngrid,1:nlayer)=pdv(1:ngrid,1:nlayer) +   &
     1422                                 d_v_hin(1:ngrid,1:nlayer)
     1423  !  Update tendencies of gw mixing
     1424          IF (calljliu_gwimix) THEN
     1425           pdt(1:ngrid,1:nlayer)=pdt(1:ngrid,1:nlayer) +   &
     1426                                 d_t_mix(1:ngrid,1:nlayer)
     1427           pdu(1:ngrid,1:nlayer)=pdu(1:ngrid,1:nlayer) +   &
     1428                                 d_u_mix(1:ngrid,1:nlayer)
     1429           pdv(1:ngrid,1:nlayer)=pdv(1:ngrid,1:nlayer) +   &
     1430                                 d_v_mix(1:ngrid,1:nlayer)
     1431           pdq(1:ngrid,1:nlayer,1:nq)=pdq(1:ngrid,1:nlayer,1:nq) + &
     1432                                      zdq_mix(1:ngrid,1:nlayer,1:nq)
     1433          ENDIF
     1434 
     1435 
     1436        ENDIF ! of IF (calllott_nonoro)
     1437     
    13861438!-----------------------------------------------
    13871439!   V. Nitrogen condensation-sublimation :
Note: See TracChangeset for help on using the changeset viewer.