Changeset 4054 for trunk/LMDZ.MARS/libf/phymars
- Timestamp:
- Feb 6, 2026, 5:21:02 PM (10 days ago)
- Location:
- trunk/LMDZ.MARS/libf/phymars
- Files:
-
- 1 added
- 3 edited
-
callkeys_mod.F90 (modified) (1 diff)
-
coagulation_mod.F90 (added)
-
conf_phys.F (modified) (2 diffs)
-
physiq_mod.F (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/libf/phymars/callkeys_mod.F90
r3726 r4054 73 73 logical,save :: topflows ! entrainment by mountain top dust flows parametrization 74 74 !$OMP THREADPRIVATE(topflows) 75 logical,save :: coagulation ! coagulation of dust particles 76 logical,save :: fullcoag ! coagulation of dust particles using full equations instead of lookup tables 77 logical,save :: kernel_b, kernel_g, kernel_de, kernel_ti ! kernels for different types of dust coagulation 78 !$OMP THREADPRIVATE(coagulation,fullcoag,kernel_b,kernel_g,kernel_de,kernel_ti) 79 integer,save :: coal_kg ! mode for coalescence 0,1, or 2 80 !$OMP THREADPRIVATE(coal_kg) 75 81 logical,save :: latentheat_surfwater ! latent heat release from ground water ice sublimation/condensation 76 82 !$OMP THREADPRIVATE(latentheat_surfwater) -
trunk/LMDZ.MARS/libf/phymars/conf_phys.F
r4041 r4054 70 70 & tf_injection, ti_injection, thermochem, 71 71 & thermoswater, tituscap, tke_heat_flux, 72 & topflows, water 72 & topflows, water, coagulation, kernel_b, 73 & kernel_g,kernel_de,kernel_ti,coal_kg, 74 & fullcoag 73 75 74 76 IMPLICIT NONE … … 379 381 call getin_p("topflows",topflows) 380 382 write(*,*)" topflows = ",topflows 383 384 ! dust particle coagulation 385 write(*,*)"call coagulation of dust" 386 coagulation=.false. ! default value 387 call getin_p("coagulation",coagulation) 388 write(*,*)" coagulation = ",coagulation 389 fullcoag=.false. ! default value 390 kernel_b=.true. ! default value (if coagulation=true) 391 kernel_g=.false. ! default value 392 kernel_de=.false. ! default value 393 kernel_ti=.false. ! default value 394 coal_kg=0 ! default value 395 if (coagulation) then 396 write(*,*)" coagulation fullcoag and mode= ",fullcoag,coal_kg 397 write(*,*)" coagulation kernels= ",kernel_b,kernel_g, 398 & kernel_de,kernel_ti 399 endif 381 400 382 401 ! latent heat release from ground water ice sublimation/condensation -
trunk/LMDZ.MARS/libf/phymars/physiq_mod.F
r4035 r4054 25 25 use calcstormfract_mod, only: calcstormfract 26 26 use topmons_mod, only: topmons,topmons_setup 27 use coagulation_mod, only: coagul_main,coagul_init 27 28 use nltecool_mod, only: nltecool 28 29 use nlte_tcool_mod, only: nlte_tcool … … 150 151 use callkeys_mod, only: photochem, callthermos 151 152 use callkeys_mod, only: startphy_file 153 use callkeys_mod, only: coagulation 152 154 153 155 IMPLICIT NONE … … 544 546 c entrainment by mountain top dust flows above sub-grid scale topography 545 547 REAL pdqtop(ngrid,nlayer,nq) ! tendency for dust after topmons 548 c dust coagulation tendency 549 REAL pdqcoag(ngrid,nlayer,nq) ! tendency for dust coagulation 546 550 547 551 c when no startfi file is asked for init … … 791 795 c ~~~~~~~~~~~~~~~ 792 796 if (topflows) call topmons_setup(ngrid) 797 798 c Initialize coagulation parameters 799 c ~~~~~~~~~~~~~~~ 800 if (coagulation) call coagul_init() 793 801 794 802 c Parameterization of the ATKE routine … … 1447 1455 ENDIF ! end of if (topflows) 1448 1456 1449 c 3.3 Dust injection from the surface 1457 c 3.3 Dust coagulation 1458 c ------------------------------------------- 1459 IF (coagulation) THEN 1460 pdqcoag(:,:,:)=0. 1461 CALL coagul_main(ngrid,nlayer,nq,ptime,ptimestep, 1462 & pq,pdq,pt,pdt,pplay,pplev, 1463 & pdqcoag) 1464 !Update tendency : 1465 DO l=1,nlayer 1466 DO ig=1,ngrid 1467 pdq(ig,l,igcm_dust_mass)= 1468 & pdq(ig,l,igcm_dust_mass)+ pdqcoag(ig,l,igcm_dust_mass) 1469 pdq(ig,l,igcm_dust_number)= 1470 & pdq(ig,l,igcm_dust_number)+pdqcoag(ig,l,igcm_dust_number) 1471 ENDDO 1472 ENDDO 1473 1474 IF (topflows) THEN 1475 DO l=1,nlayer 1476 DO ig=1,ngrid 1477 pdq(ig,l,igcm_topdust_mass)= 1478 & pdq(ig,l,igcm_topdust_mass)+ 1479 & pdqcoag(ig,l,igcm_topdust_mass) 1480 pdq(ig,l,igcm_topdust_number)= 1481 & pdq(ig,l,igcm_topdust_number)+ 1482 & pdqcoag(ig,l,igcm_topdust_number) 1483 ENDDO 1484 ENDDO 1485 ENDIF ! end of if (topflows) 1486 1487 IF (rdstorm) THEN 1488 DO l=1,nlayer 1489 DO ig=1,ngrid 1490 pdq(ig,l,igcm_stormdust_mass)= 1491 & pdq(ig,l,igcm_stormdust_mass)+ 1492 & pdqcoag(ig,l,igcm_stormdust_mass) 1493 pdq(ig,l,igcm_stormdust_number)= 1494 & pdq(ig,l,igcm_stormdust_number)+ 1495 & pdqcoag(ig,l,igcm_stormdust_number) 1496 ENDDO 1497 ENDDO 1498 ENDIF ! end of if (rdstorm) 1499 1500 ENDIF ! end of if (coagulation) 1501 1502 c 3.4 Dust injection from the surface 1450 1503 c ------------------------------------------- 1451 1504 if (dustinjection.gt.0) then … … 3744 3797 endif ! (topflows) 3745 3798 3799 if (coagulation) then 3800 call write_output('zdqcoag_dustm', 3801 & 'coagulation tendency', 3802 & 'kg kg-1 s-1',pdqcoag(:,:,igcm_dust_mass)) 3803 call write_output('zdqcoag_dustn', 3804 & 'coagulation tendency', 3805 & 'nbp kg-1 s-1',pdqcoag(:,:,igcm_dust_number)) 3806 endif 3807 3746 3808 if (dustscaling_mode==2) then 3747 3809 call write_output("dust_rad_adjust",
Note: See TracChangeset
for help on using the changeset viewer.
