Changeset 3935 for trunk/LMDZ.PLUTO/libf


Ignore:
Timestamp:
Oct 24, 2025, 4:39:28 PM (7 weeks 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/libf/phypluto
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • 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.