Changeset 3935
- Timestamp:
- Oct 24, 2025, 4:39:28 PM (3 months ago)
- Location:
- trunk/LMDZ.PLUTO
- Files:
-
- 2 added
- 5 edited
-
changelog.txt (modified) (1 diff)
-
libf/phypluto/callkeys_mod.F90 (modified) (1 diff)
-
libf/phypluto/inifis_mod.F90 (modified) (3 diffs)
-
libf/phypluto/nonoro_gwd_mix_mod.F90 (added)
-
libf/phypluto/nonoro_gwd_ran_mod.F90 (added)
-
libf/phypluto/phyetat0_mod.F90 (modified) (1 diff)
-
libf/phypluto/physiq_mod.F90 (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.PLUTO/changelog.txt
r3760 r3935 1879 1879 flag to trigger outputing a diagsoil.nc file or not. 1880 1880 1881 == 24/10/2025 == Jliu 1882 Add non-orographic gravity waves and induced turbulence to the model. 1883 The model is compileable with the two new shcemes, however, carefull 1884 parameter selection is needed since the current parameters are for Mars. -
trunk/LMDZ.PLUTO/libf/phypluto/callkeys_mod.F90
r3932 r3935 6 6 logical,save :: calladj,calltherm,n2cond,callsoil,calllott 7 7 !$OMP THREADPRIVATE(calladj,calltherm,n2cond,callsoil,calllott) 8 logical,save :: calllott_nonoro 9 !$OMP THREADPRIVATE(calllott_nonoro) 8 10 logical,save :: callconduct,callmolvis,callmoldiff 9 11 !$OMP THREADPRIVATE(callconduct,callmolvis,callmoldiff) -
trunk/LMDZ.PLUTO/libf/phypluto/inifis_mod.F90
r3932 r3935 23 23 mugaz, pi, avocado 24 24 use planetwide_mod, only: planetwide_sumval 25 use nonoro_gwd_mix_mod, only: calljliu_gwimix 25 26 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 26 32 use surfdat_h 27 33 use wstats_mod, only: callstats … … 373 379 if (is_master) write(*,*) trim(rname)//": callsoil = ",callsoil 374 380 381 if (is_master) write(*,*)trim(rname)//& 382 ": call orographic gravity waves ?" 375 383 calllott=.false. ! default value 376 384 call getin_p("calllott",calllott) 377 385 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 378 400 379 401 if (is_master) write(*,*)trim(rname)//& … … 1500 1522 call ini_comsoil_h(ngrid) 1501 1523 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 1502 1532 END SUBROUTINE inifis 1503 1533 -
trunk/LMDZ.PLUTO/libf/phypluto/phyetat0_mod.F90
r3916 r3935 27 27 get_field, get_var, inquire_field, & 28 28 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 29 32 use callkeys_mod, only: surfalbedo,surfemis, callsoil 30 33 use mod_phys_lmdz_para, only : is_master -
trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90
r3932 r3935 47 47 use calldrag_noro_mod, only: calldrag_noro 48 48 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 49 52 use callkeys_mod, only: albedo_spectral_mode, calladj, calldifv, & 50 53 calllott, callrad, callsoil, nosurf, & 51 54 callconduct,callmolvis,callmoldiff, & 52 corrk, &55 corrk, calllott_nonoro, & 53 56 diurnal, enertest, fat1au, & 54 57 icetstep, intheat, iradia, kastprof, & … … 67 70 global1d, szangle, & 68 71 callmufi, evol1d 72 69 73 use check_fields_mod, only: check_physics_fields 70 74 use conc_mod, only: rnew, cpnew, ini_conc_mod … … 476 480 REAL d_u_hin(ngrid,nlayer), d_v_hin(ngrid,nlayer) 477 481 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) 478 484 ! Diagnostics 2D of gw_nonoro 479 485 REAL zustrhi(ngrid), zvstrhi(ngrid) … … 1384 1390 endif ! end of 'calladj' 1385 1391 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 1386 1438 !----------------------------------------------- 1387 1439 ! V. Nitrogen condensation-sublimation :
Note: See TracChangeset
for help on using the changeset viewer.
