Changeset 3497 for trunk/LMDZ.TITAN/libf/phytitan/physiq_mod.F90
- Timestamp:
- Nov 7, 2024, 11:13:46 AM (2 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.TITAN/libf/phytitan/physiq_mod.F90
r3340 r3497 276 276 real zdmassmr_col(ngrid) ! Atmospheric Column Mass tendency for mass_redistribution (kg_of_air/m2/s). 277 277 real zdpsrfmr(ngrid) ! Pressure tendency for mass_redistribution routine (Pa/s). 278 279 ! Temporal tracers :280 real ppq(ngrid,nlayer,nq) ! Tracers (kg/kg_of_air).281 278 282 279 … … 842 839 843 840 ! standard callcorrk 844 !call callcorrk(ngrid,nlayer,ppq,nq,qsurf,zday, &845 841 call callcorrk(ngrid,nlayer,pq,nq,qsurf,zday, & 846 842 albedo,albedo_equivalent,emis,mu0,pplev,pplay,zzlev,& … … 1119 1115 ENDDO 1120 1116 ENDIF 1121 ! In case there is no clouds, in the troposphere the moments are 1117 ! In case there is no clouds, in the troposphere the moments are fixed to evacuate all aerosols 1122 1118 IF (.NOT. callclouds) THEN 1123 DO l = 1, nlayer 1124 DO ig=1,ngrid 1125 IF (pplay(ig,l) .gt. 1000.) THEN 1126 pdq(ig,l,1)=0. 1127 pdq(ig,l,2)=0. 1128 IF (pplay(ig,l) .gt. 5000.) THEN 1129 pdq(ig,l,3)=0. 1130 pdq(ig,l,4)=0. 1131 ENDIF 1132 ENDIF 1133 ENDDO 1134 ENDDO 1119 WHERE (pplay(:,:) .gt. 1000.) 1120 pdq(:,:,1) = 0. 1121 pdq(:,:,2) = 0. 1122 ENDWHERE 1123 WHERE (pplay(:,:) .gt. 5000.) 1124 pdq(:,:,3) = 0. 1125 pdq(:,:,4) = 0. 1126 ENDWHERE 1135 1127 ENDIF 1136 1128 #endif … … 1262 1254 else 1263 1255 ! Fill lakes with precipitation : 1264 tankCH4(:) = tankCH4(:) + (mmd_ice_prec(:,1) / 425. * ptimestep) ! [m] 1256 !if (REAL(latitude_deg(ig)) .ge. 70.0) then 1257 ! tankCH4(ig) = 200.0 ! [m] 1258 !else if (REAL(latitude_deg(ig)) .le. -70.0) then 1259 ! tankCH4(ig) = 50.0 ! [m] 1260 !else 1261 ! tankCH4(ig) = 0.0 ! [m] 1262 !endif 1263 tankCH4(:) = tankCH4(:) + (mmd_ice_prec(:,1) / 422. * ptimestep) ! [m] 1265 1264 1266 1265 ! Evaporation of lakes : … … 1415 1414 enddo 1416 1415 1417 ! [BBT TEMPO] Firstcall : Initialize Tracers 1418 !if (firstcall) then 1419 ! do ig = 1, ngrid 1420 ! ! Aerosols : 1421 ! !----------- 1422 ! WHERE (pq(ig,:24,3) < 3.0e7) & 1423 ! pdq(ig,:24,3) = (3.0e7 - pq(ig,:24,3)) / ptimestep ! M0 aerf 1424 ! WHERE (pq(ig,:24,4) < 1.5e-12) & 1425 ! pdq(ig,:24,4) = (1.5e-12 - pq(ig,:24,4)) / ptimestep ! M3 aerf 1426 ! ! Lakes : 1427 ! !-------- 1428 ! if (REAL(latitude_deg(ig)) .ge. 70.0) then 1429 ! tankCH4(ig) = 100.0 ! [m] 1430 ! else if (REAL(latitude_deg(ig)) .le. -70.0) then 1431 ! tankCH4(ig) = 20.0 ! [m] 1432 ! else 1433 ! tankCH4(ig) = 0.0 ! [m] 1434 ! endif 1435 ! ! Species : 1436 ! !---------- 1437 ! do iq = 1, size(ices_indx) 1438 ! ! CH4 : 1439 ! !------ 1440 ! if(trim(nameOfTracer(gazs_indx(iq))) .eq. "CH4") then 1441 ! WHERE (pq(ig,:,gazs_indx(iq))/rat_mmol(gazs_indx(iq)) > 0.05) & 1442 ! pdq(ig,:,gazs_indx(iq)) = (0.05 * rat_mmol(gazs_indx(iq)) - pq(ig,:,gazs_indx(iq))) / ptimestep 1443 ! WHERE (pq(ig,:,gazs_indx(iq))/rat_mmol(gazs_indx(iq)) < 0.014) & 1444 ! pdq(ig,:,gazs_indx(iq)) = (0.014 * rat_mmol(gazs_indx(iq)) - pq(ig,:,gazs_indx(iq))) / ptimestep 1445 ! endif 1446 ! ! C2H2 : 1447 ! !------- 1448 ! if(trim(nameOfTracer(gazs_indx(iq))) .eq. "C2H2") then 1449 ! WHERE (pq(ig,26:,gazs_indx(iq))/rat_mmol(gazs_indx(iq)) < 3.0e-6) & 1450 ! pdq(ig,26:,gazs_indx(iq)) = (5.0e-6 * rat_mmol(gazs_indx(iq)) - pq(ig,26:,gazs_indx(iq))) / ptimestep 1451 ! endif 1452 ! ! C2H6 : 1453 ! !------- 1454 ! if(trim(nameOfTracer(gazs_indx(iq))) .eq. "C2H6") then 1455 ! WHERE (pq(ig,26:,gazs_indx(iq))/rat_mmol(gazs_indx(iq)) < 2.0e-5) & 1456 ! pdq(ig,26:,gazs_indx(iq)) = (2.0e-5 * rat_mmol(gazs_indx(iq)) - pq(ig,26:,gazs_indx(iq))) / ptimestep 1457 ! endif 1458 ! ! HCN : 1459 ! !------ 1460 ! if(trim(nameOfTracer(gazs_indx(iq))) .eq. "HCN") then 1461 ! WHERE (pq(ig,26:,gazs_indx(iq))/rat_mmol(gazs_indx(iq)) < 8.0e-6) & 1462 ! pdq(ig,26:,gazs_indx(iq)) = (8.0e-6 * rat_mmol(gazs_indx(iq)) - pq(ig,26:,gazs_indx(iq))) / ptimestep 1463 ! endif 1464 ! enddo 1465 ! enddo 1466 !endif 1467 ! [BdBdT : Forcage de la photochimie] 1468 do ig = 1, ngrid 1469 do iq = 1, size(ices_indx) 1470 ! C2H2 : 1471 !------- 1472 if(trim(nameOfTracer(gazs_indx(iq))) .eq. "C2H2") then 1473 pdq(ig,nlayer-3:,gazs_indx(iq)) = (4.0e-5 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep 1474 endif 1475 ! C2H6 : 1476 !------- 1477 if(trim(nameOfTracer(gazs_indx(iq))) .eq. "C2H6") then 1478 pdq(ig,nlayer-3:,gazs_indx(iq)) = (1.0e-4 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep 1479 endif 1480 ! HCN : 1481 !------ 1482 if(trim(nameOfTracer(gazs_indx(iq))) .eq. "HCN") then 1483 pdq(ig,nlayer-3:,gazs_indx(iq)) = (4.0e-5 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep 1484 endif 1416 ! [Forcage de la photochimie pour les nuages] 1417 if (callclouds) then 1418 do ig = 1, ngrid 1419 do iq = 1, size(ices_indx) 1420 ! C2H2 : 1421 !------- 1422 if(trim(nameOfTracer(gazs_indx(iq))) .eq. "C2H2") then 1423 pdq(ig,nlayer-3:,gazs_indx(iq)) = (4.0e-5 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep 1424 endif 1425 ! C2H6 : 1426 !------- 1427 if(trim(nameOfTracer(gazs_indx(iq))) .eq. "C2H6") then 1428 pdq(ig,nlayer-3:,gazs_indx(iq)) = (8.0e-5 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep 1429 endif 1430 ! HCN : 1431 !------ 1432 if(trim(nameOfTracer(gazs_indx(iq))) .eq. "HCN") then 1433 pdq(ig,nlayer-3:,gazs_indx(iq)) = (2.0e-5 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep 1434 endif 1435 ! AC6H6 : 1436 !-------- 1437 if(trim(nameOfTracer(gazs_indx(iq))) .eq. "AC6H6") then 1438 pdq(ig,nlayer-3:,gazs_indx(iq)) = (2.0e-5 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep 1439 endif 1440 enddo 1485 1441 enddo 1486 enddo 1442 endif 1443 1487 1444 zq(:,:,:) = pq(:,:,:) + pdq(:,:,:)*ptimestep 1488 1445 … … 1830 1787 ! Optical diagnostics : 1831 1788 !-------------------------------------------------------- 1832 1833 if (1.eq.0) then ! not by default...1834 1835 1789 ! Haze opacity : 1836 CALL send_xios_field('ttauhv_14',zpopthv(:,:,14,2)) ! 14 --> 1.076 um 1790 CALL send_xios_field('ttauhv_08',zpopthv(:,:,8,2)) ! 08 --> 1.983 um 1791 CALL send_xios_field('ttauhv_15',zpopthv(:,:,15,2)) ! 15 --> 1.000 um 1837 1792 CALL send_xios_field('ttauhv_20',zpopthv(:,:,20,2)) ! 20 --> 0.671 um 1838 1793 CALL send_xios_field('ttauhv_23',zpopthv(:,:,23,2)) ! 23 --> 0.346 um … … 1841 1796 CALL send_xios_field('ttauhi_23',zpopthi(:,:,23,2)) ! 23 --> 4.849 um 1842 1797 ! Haze extinction : 1843 CALL send_xios_field('kkhv_14',zpopthv(:,:,14,3)) 1798 CALL send_xios_field('kkhv_08',zpopthv(:,:,8,3)) 1799 CALL send_xios_field('kkhv_15',zpopthv(:,:,15,3)) 1844 1800 CALL send_xios_field('kkhv_20',zpopthv(:,:,20,3)) 1845 1801 CALL send_xios_field('kkhv_23',zpopthv(:,:,23,3)) … … 1848 1804 CALL send_xios_field('kkhi_23',zpopthi(:,:,23,3)) 1849 1805 ! Haze single scattering albedo : 1850 CALL send_xios_field('wwhv_14',zpopthv(:,:,14,4)) 1806 CALL send_xios_field('wwhv_08',zpopthv(:,:,8,4)) 1807 CALL send_xios_field('wwhv_15',zpopthv(:,:,15,4)) 1851 1808 CALL send_xios_field('wwhv_20',zpopthv(:,:,20,4)) 1852 1809 CALL send_xios_field('wwhv_23',zpopthv(:,:,23,4)) … … 1855 1812 CALL send_xios_field('wwhi_23',zpopthi(:,:,23,4)) 1856 1813 ! Haze asymmetry parameter : 1857 CALL send_xios_field('gghv_14',zpopthv(:,:,14,5)) 1814 CALL send_xios_field('gghv_08',zpopthv(:,:,8,5)) 1815 CALL send_xios_field('gghv_15',zpopthv(:,:,15,5)) 1858 1816 CALL send_xios_field('gghv_20',zpopthv(:,:,20,5)) 1859 1817 CALL send_xios_field('gghv_23',zpopthv(:,:,23,5)) … … 1865 1823 IF (callclouds) THEN 1866 1824 ! Opacity : 1867 CALL send_xios_field('ttauv_14',zpopttv(:,:,14,2)) ! 14 --> 1.076 um 1825 CALL send_xios_field('ttauv_08',zpopttv(:,:,8,2)) ! 08 --> 1.983 um 1826 CALL send_xios_field('ttauv_15',zpopttv(:,:,15,2)) ! 15 --> 1.000 um 1868 1827 CALL send_xios_field('ttauv_20',zpopttv(:,:,20,2)) ! 20 --> 0.671 um 1869 1828 CALL send_xios_field('ttauv_23',zpopttv(:,:,23,2)) ! 23 --> 0.346 um … … 1872 1831 CALL send_xios_field('ttaui_23',zpoptti(:,:,23,2)) ! 23 --> 4.849 um 1873 1832 ! Extinction : 1874 CALL send_xios_field('kkv_14',zpopttv(:,:,14,3)) 1833 CALL send_xios_field('kkv_08',zpopttv(:,:,8,3)) 1834 CALL send_xios_field('kkv_15',zpopttv(:,:,15,3)) 1875 1835 CALL send_xios_field('kkv_20',zpopttv(:,:,20,3)) 1876 1836 CALL send_xios_field('kkv_23',zpopttv(:,:,23,3)) … … 1879 1839 CALL send_xios_field('kki_23',zpoptti(:,:,23,3)) 1880 1840 ! Single scattering albedo : 1881 CALL send_xios_field('wwv_14',zpopttv(:,:,14,4)) 1841 CALL send_xios_field('wwv_08',zpopttv(:,:,8,4)) 1842 CALL send_xios_field('wwv_15',zpopttv(:,:,15,4)) 1882 1843 CALL send_xios_field('wwv_20',zpopttv(:,:,20,4)) 1883 1844 CALL send_xios_field('wwv_23',zpopttv(:,:,23,4)) … … 1886 1847 CALL send_xios_field('wwi_23',zpoptti(:,:,23,4)) 1887 1848 ! Asymmetry parameter : 1888 CALL send_xios_field('ggv_14',zpopttv(:,:,14,5)) 1849 CALL send_xios_field('ggv_08',zpopttv(:,:,8,5)) 1850 CALL send_xios_field('ggv_15',zpopttv(:,:,15,5)) 1889 1851 CALL send_xios_field('ggv_20',zpopttv(:,:,20,5)) 1890 1852 CALL send_xios_field('ggv_23',zpopttv(:,:,23,5)) … … 1900 1862 CALL send_xios_field('dconti_17',zpoptti(:,:,17,8)) 1901 1863 ENDIF 1902 1903 endif ! 1.eq.0 ...1904 1864 1905 1865 ! Diagnostics for haze and clouds (4D) :
Note: See TracChangeset
for help on using the changeset viewer.