Changeset 5905
- Timestamp:
- Dec 3, 2025, 7:02:45 PM (less than one hour ago)
- Location:
- LMDZ6/trunk
- Files:
-
- 1 added
- 9 edited
-
DefLists/field_def_lmdz.xml (modified) (1 diff)
-
DefLists/file_def_histhf_lmdz.xml (modified) (7 diffs)
-
DefLists/file_def_histmth_lmdz.xml (modified) (2 diffs)
-
libf/phylmd/ch4n2o_correction_mod.F90 (added)
-
libf/phylmd/clesphys_mod_h.f90 (modified) (6 diffs)
-
libf/phylmd/conf_phys_m.f90 (modified) (6 diffs)
-
libf/phylmd/paramlmdz_phy_mod.F90 (modified) (4 diffs)
-
libf/phylmd/phys_output_ctrlout_mod.F90 (modified) (2 diffs)
-
libf/phylmd/phys_output_write_mod.F90 (modified) (2 diffs)
-
libf/phylmd/physiq_mod.F90 (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/DefLists/field_def_lmdz.xml
r5904 r5905 1424 1424 <field id="co2_ppm" long_name="co2_ppm" unit="ppm" /> 1425 1425 <field id="CH4_ppb" long_name="CH4_ppb" unit="ppb" /> 1426 <field id="CH4_eff_ppb" long_name="CH4_eff_ppb" unit="ppb" /> <!-- Added PC --> 1426 1427 <field id="N2O_ppb" long_name="N2O_ppb" unit="ppb" /> 1428 <field id="N2O_eff_ppb" long_name="N2O_eff_ppb" unit="ppb" /> <!-- Added PC --> 1427 1429 <field id="CFC11_ppt" long_name="CFC11_ppt" unit="ppt" /> 1428 1430 <field id="CFC12_ppt" long_name="CFC12_ppt" unit="ppt" /> -
LMDZ6/trunk/DefLists/file_def_histhf_lmdz.xml
r5807 r5905 23 23 <field field_ref="ptstar" level="10" /> 24 24 <field field_ref="pt0" level="10" /> 25 <field field_ref="tsol" level=" 5" />26 <field field_ref="t2m" level=" 5" />25 <field field_ref="tsol" level="1" /> 26 <field field_ref="t2m" level="1" /> 27 27 <field field_ref="t2m_min" level="10" operation="minimum" /> 28 28 <field field_ref="t2m_max" level="10" operation="maximum" /> … … 32 32 <field field_ref="t2m_sic" level="10" /> 33 33 <field field_ref="gusts" level="10" /> 34 <field field_ref="wind10m" level=" 5" />34 <field field_ref="wind10m" level="1" /> 35 35 <field field_ref="wind100m" level="10" /> 36 36 <field field_ref="wind10max" level="10" operation="maximum" /> 37 37 <field field_ref="sicf" level="10" /> 38 <field field_ref="q2m" level=" 5" />39 <field field_ref="ustar" level=" 5" />40 <field field_ref="u10m" level=" 5" />41 <field field_ref="v10m" level=" 5" />42 <field field_ref="psol" level=" 5" />43 <field field_ref="qsurf" level=" 5" />38 <field field_ref="q2m" level="1" /> 39 <field field_ref="ustar" level="1" /> 40 <field field_ref="u10m" level="1" /> 41 <field field_ref="v10m" level="1" /> 42 <field field_ref="psol" level="1" /> 43 <field field_ref="qsurf" level="1" /> 44 44 <field field_ref="ustar_ter" level="10" /> 45 45 <field field_ref="ustar_lic" level="10" /> … … 61 61 <field field_ref="qsol" level="10" /> 62 62 <field field_ref="ndayrain" level="10" operation="instant" /> 63 <field field_ref="precip" level=" 5" />63 <field field_ref="precip" level="1" /> 64 64 <field field_ref="rain_fall" level="10" /> 65 65 <field field_ref="rain_con" level="10" /> … … 67 67 <field field_ref="plun" level="10" /> 68 68 <field field_ref="pluc" level="10" /> 69 <field field_ref="snow" level=" 5" />69 <field field_ref="snow" level="1" /> 70 70 <field field_ref="bsfall" level="5" /> 71 <field field_ref="evap" level=" 5" />71 <field field_ref="evap" level="1" /> 72 72 <field field_ref="snowerosion" level="5" /> 73 73 <field field_ref="rhosnow_lic" level="5" /> … … 147 147 <field field_ref="SWupSFC" level="10" /> 148 148 <field field_ref="SWupSFCclr" level="10" /> 149 <field field_ref="SWdnSFC" level=" 5" />149 <field field_ref="SWdnSFC" level="1" /> 150 150 <field field_ref="SWdnSFCclr" level="10" /> 151 151 <field field_ref="LWupSFC" level="10" /> 152 152 <field field_ref="LWupSFCclr" level="10" /> 153 <field field_ref="LWdnSFC" level=" 5" />153 <field field_ref="LWdnSFC" level="1" /> 154 154 <field field_ref="LWdnSFCclr" level="10" /> 155 155 <field field_ref="bils" level="10" /> … … 160 160 <field field_ref="bils_enthalp" level="10" /> 161 161 <field field_ref="bils_latent" level="10" /> 162 <field field_ref="sens" level=" 5" />162 <field field_ref="sens" level="1" /> 163 163 <field field_ref="sens_x" level="11" /> 164 164 <field field_ref="sens_w" level="11" /> … … 360 360 <field field_ref="tpote" level="10" /> 361 361 <field field_ref="SWnetOR" level="10" /> 362 <field field_ref="SWdownOR" level=" 5" />363 <field field_ref="LWdownOR" level=" 5" />362 <field field_ref="SWdownOR" level="1" /> 363 <field field_ref="LWdownOR" level="1" /> 364 364 <field field_ref="snowl" level="10" /> 365 365 <field field_ref="cape_max" level="10" operation="maximum" /> -
LMDZ6/trunk/DefLists/file_def_histmth_lmdz.xml
r5814 r5905 37 37 <field field_ref="co2_ppm" level="1" name="co2_ppm" /> 38 38 <field field_ref="CH4_ppb" level="1" name="CH4_ppb" /> 39 <field field_ref="CH4_eff_ppb" level="1" name="CH4_eff_ppb" /> <!-- Added PC --> 39 40 <field field_ref="N2O_ppb" level="1" name="N2O_ppb" /> 41 <field field_ref="N2O_eff_ppb" level="1" name="N2O_eff_ppb" /> <!-- Added PC --> 40 42 <field field_ref="CFC11_ppt" level="1" name="CFC11_ppt" /> 41 43 <field field_ref="CFC12_ppt" level="1" name="CFC12_ppt" /> … … 603 605 <!-- VARS 3D --> 604 606 <field_group operation="average" grid_ref="grid_out_presnivs"> 605 <field field_ref="CO2" level=" 5" /> <!-- Added PC -->607 <field field_ref="CO2" level="1" /> <!-- Added PC --> 606 608 <field field_ref="dCO2_vdf" level="5" /> <!-- Added PC --> 607 609 <field field_ref="dCO2_the" level="5" /> <!-- Added PC --> -
LMDZ6/trunk/libf/phylmd/clesphys_mod_h.f90
r5825 r5905 4 4 IMPLICIT NONE; PRIVATE 5 5 6 PUBLIC co2_ppm, solaire & 7 , RCO2, RCH4, RN2O, RCFC11, RCFC12 & 6 PUBLIC co2_ppm, solaire & 7 , RCO2, RCH4, RN2O & 8 , RCFC11, RCFC12 & 8 9 , RCO2_act, RCH4_act, RN2O_act, RCFC11_act, RCFC12_act & 9 10 , RCO2_per, RCH4_per, RN2O_per, RCFC11_per, RCFC12_per & 10 , CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt & 11 , CH4_ppb, N2O_ppb, CH4_eff_ppb, N2O_eff_ppb & 12 , CFC11_ppt, CFC12_ppt & 11 13 , CH4_ppb_per, N2O_ppb_per, CFC11_ppt_per, CFC12_ppt_per & 12 14 , cdmmax, cdhmax, ksta, ksta_ter, f_ri_cd_min & 13 , fmagic, pmagic &15 , fmagic, pmagic & 14 16 , f_cdrag_ter, f_cdrag_oce, f_rugoro, z0min, tau_gl & 15 17 , min_wind_speed, f_gust_wk, f_gust_bl, f_qsat_oce, f_z0qh_oce & … … 19 21 , freq_ISCCP, ecrit_ISCCP, freq_COSP, freq_AIRS & 20 22 , cvl_corr & 21 , qsol0, albsno0, evap0 &23 , qsol0, albsno0, evap0 & 22 24 , co2_ppm0 & 23 25 , tau_thermals & … … 38 40 , lev_histins, lev_histLES & 39 41 , type_run, ok_regdyn, ok_cosp, ok_airs & 40 , ok_mensuelCOSP, ok_journeCOSP, ok_hfCOSP &42 , ok_mensuelCOSP, ok_journeCOSP, ok_hfCOSP & 41 43 , ip_ebil_phy & 42 44 , iflag_gusts, iflag_z0_oce & 43 45 , ok_lic_melt, ok_lic_cond, aer_type & 44 , iflag_rrtm, ok_strato, ok_hines, ok_qch4 &45 , iflag_ice_thermo, ok_ice_supersat &46 , iflag_rrtm, ok_strato, ok_hines, ok_qch4 & 47 , iflag_ice_thermo, ok_ice_supersat & 46 48 , ok_plane_h2o, ok_plane_contrail & 47 49 , ok_gwd_rando, NSW, iflag_albedo & 48 , ok_chlorophyll, ok_conserv_q, adjust_tropopause &50 , ok_chlorophyll, ok_conserv_q, adjust_tropopause & 49 51 , ok_daily_climoz, ok_all_xml, ok_lwoff & 50 52 , iflag_phytrac, ok_new_lscp, ok_bs, ok_rad_bs & 51 , iflag_thermals, nsplit_thermals &53 , iflag_thermals, nsplit_thermals & 52 54 , iflag_physiq, ok_3Deffect, ok_water_mass_fixer & 53 55 , ok_mass_dtcon, ok_mass_dqcon, ok_mass_duvcon, iflag_tropopause_height … … 73 75 REAL(kind = 8) RCO2_act, RCH4_act, RN2O_act, RCFC11_act, RCFC12_act 74 76 REAL(kind = 8) CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt 77 ! PC mass mixing ratios for "effective" CH4 & "effective" N2O 78 REAL(kind = 8) CH4_eff_ppb, N2O_eff_ppb 75 79 !IM ajout CFMIP2/CMIP5ok_bs 76 80 REAL(kind = 8) RCO2_per, RCH4_per, RN2O_per, RCFC11_per, RCFC12_per … … 161 165 162 166 163 !$OMP THREADPRIVATE(co2_ppm, solaire & 164 !$OMP , RCO2, RCH4, RN2O, RCFC11, RCFC12 & 167 !$OMP THREADPRIVATE(co2_ppm, solaire & 168 !$OMP , RCO2, RCH4, RN2O & 169 !$OMP , RCFC11, RCFC12 & 165 170 !$OMP , RCO2_act, RCH4_act, RN2O_act, RCFC11_act, RCFC12_act & 166 171 !$OMP , RCO2_per, RCH4_per, RN2O_per, RCFC11_per, RCFC12_per & 167 !$OMP , CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt & 172 !$OMP , CH4_ppb, N2O_ppb, CH4_eff_ppb, N2O_eff_ppb & 173 !$OMP , CFC11_ppt, CFC12_ppt & 168 174 !$OMP , CH4_ppb_per, N2O_ppb_per, CFC11_ppt_per, CFC12_ppt_per & 169 !$OMP , cdmmax, cdhmax, ksta, ksta_ter, f_ri_cd_min &175 !$OMP , cdmmax, cdhmax, ksta, ksta_ter, f_ri_cd_min & 170 176 !$OMP , fmagic, pmagic & 171 177 !$OMP , f_cdrag_ter, f_cdrag_oce, f_rugoro, z0min, tau_gl & … … 176 182 !$OMP , freq_ISCCP, ecrit_ISCCP, freq_COSP, freq_AIRS & 177 183 !$OMP , cvl_corr & 178 !$OMP , qsol0, albsno0, evap0 &184 !$OMP , qsol0, albsno0, evap0 & 179 185 !$OMP , co2_ppm0 & 180 186 !$OMP , tau_thermals & -
LMDZ6/trunk/libf/phylmd/conf_phys_m.f90
r5891 r5905 45 45 USE comsoil_mod_h 46 46 USE nuage_params_mod_h 47 USE ch4n2o_correction_mod, ONLY: ok_CH4_eff_ppb, ok_N2O_eff_ppb 48 47 49 48 50 ! … … 257 259 LOGICAL, SAVE :: ok_advtke_omp 258 260 LOGICAL, SAVE :: ok_mass_dtcon_omp, ok_mass_dqcon_omp, ok_mass_duvcon_omp 261 ! PC 262 ! Per-gas routing switches (Concentration "effective") 263 LOGICAL, SAVE :: ok_CH4_eff_ppb_omp 264 LOGICAL, SAVE :: ok_N2O_eff_ppb_omp 259 265 260 266 INTEGER, INTENT(OUT):: read_climoz ! read ozone climatology, OpenMP shared … … 786 792 RN2O_omp = N2O_ppb_omp * 1.0E-09 * RMN2O / RMD 787 793 ! 794 ok_CH4_eff_ppb_omp = .FALSE. 795 CALL getin('ok_CH4_eff_ppb', ok_CH4_eff_ppb_omp) 796 !Config Key = ok_CH4_eff_ppb 797 !Config Desc = If .true., feed radiation with the "effective" CH4 series 798 !Config Def = .FALSE. 799 800 ok_N2O_eff_ppb_omp = .FALSE. 801 CALL getin('ok_N2O_eff_ppb', ok_N2O_eff_ppb_omp) 802 !Config Key = ok_N2O_eff_ppb 803 !Config Desc = If .true., feed radiation with the "effective" N2O series 804 !Config Def = .FALSE. 805 ! 788 806 !Config Key = RCFC11 789 807 !Config Desc = Concentration du CFC11 790 808 !Config Def = 280.E-12* 137.3686/28.97 791 809 !Config Help = 792 ! 810 ! 793 811 CFC11_ppt_omp = 280. 794 812 CALL getin('CFC11_ppt',CFC11_ppt_omp) … … 2429 2447 !Config Def = .FALSE. 2430 2448 !Config Help = can be activated only if lmdz use inca for the atmospheric chemistry 2431 2449 2450 2432 2451 !$OMP END MASTER 2433 2452 !$OMP BARRIER … … 2459 2478 RCFC11_per = RCFC11_per_omp 2460 2479 RCFC12_per = RCFC12_per_omp 2480 ! PC 2481 ok_CH4_eff_ppb = ok_CH4_eff_ppb_omp 2482 ok_N2O_eff_ppb = ok_N2O_eff_ppb_omp 2483 2461 2484 2462 2485 iflag_cycle_diurne = iflag_cycle_diurne_omp … … 2895 2918 WRITE(lunout,*) ' CH4_ppb =',CH4_ppb,' RCH4_act = ',RCH4_act 2896 2919 WRITE(lunout,*) ' N2O_ppb =',N2O_ppb,' RN2O_act= ',RN2O_act 2920 WRITE(lunout,*) ' ok_CH4_eff_ppb =',ok_CH4_eff_ppb, 'ok_N2O_eff_ppb= ',ok_N2O_eff_ppb 2897 2921 WRITE(lunout,*) ' CFC11_ppt=',CFC11_ppt,' RCFC11_act= ',RCFC11_act 2898 2922 WRITE(lunout,*) ' CFC12_ppt=',CFC12_ppt,' RCFC12_act= ',RCFC12_act -
LMDZ6/trunk/libf/phylmd/paramlmdz_phy_mod.F90
r5285 r5905 70 70 CALL gr_fi_ecrit(1,klon,nbp_lon,nbp_lat,rlat_glo,zx_lat) 71 71 ! 72 73 !--PC Provide the record time step to IOIPSL (silences INTENT(OUT) warning) 74 dtime = zstophy 72 75 CALL histbeg("paramLMDZ_phy.nc", & 73 76 np,zx_lon(np:np,1), np,zx_lat(1,np:np), & … … 123 126 "ave(X)", zstophy,zout) 124 127 ! 128 CALL histdef(nid_ctesGCM, "CH4_eff_ppb", & 129 "Concentration effective du CH4", "ppb", & 130 1,1,nhori, 1,1,1, -99, 32, & 131 "ave(X)", zstophy, zout) 132 ! 133 CALL histdef(nid_ctesGCM, "N2O_eff_ppb", & 134 "Concentration effective du N2O", "ppb", & 135 1,1,nhori, 1,1,1, -99, 32, & 136 "ave(X)", zstophy, zout) 137 ! 125 138 CALL histdef(nid_ctesGCM, "CFC11_ppt", & 126 139 "Concentration du CFC11", "ppt", & … … 146 159 USE mod_phys_lmdz_mpi_data, ONLY: is_mpi_root 147 160 USE time_phylmdz_mod, ONLY: day_step_phy, annee_ref, itau_phy, start_time 161 USE ch4n2o_correction_mod, ONLY: ok_CH4_eff_ppb, ok_N2O_eff_ppb 148 162 USE mod_grid_phy_lmdz, only: nbp_lon, nbp_lat, klon_glo 149 163 … … 218 232 zx_tmp_0d,np,ndex2d) 219 233 ! 234 IF (ok_CH4_eff_ppb) THEN 235 zx_tmp_0d = CH4_eff_ppb 236 CALL histwrite(nid_ctesGCM,"CH4_eff_ppb",itau_w, zx_tmp_0d, np, ndex2d) 237 END IF 238 ! 239 IF (ok_N2O_eff_ppb) THEN 240 zx_tmp_0d = N2O_eff_ppb 241 CALL histwrite(nid_ctesGCM,"N2O_eff_ppb",itau_w, zx_tmp_0d, np, ndex2d) 242 END IF 243 244 ! 220 245 zx_tmp_0d=CFC11_ppt 221 246 CALL histwrite(nid_ctesGCM,"CFC11_ppt",itau_w, & -
LMDZ6/trunk/libf/phylmd/phys_output_ctrlout_mod.F90
r5904 r5905 1846 1846 1847 1847 !---CO2 fluxes for interactive CO2 configuration 1848 !--Added PC 1848 1849 TYPE(ctrl_out), SAVE :: o_flx_co2_ff = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1849 1850 'flx_co2_ff', 'CO2 flux from fossil fuel and cement', '1', (/ ('', i=1, 10) /)) … … 1858 1859 TYPE(ctrl_out), SAVE :: o_flx_co2_land_cor = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1859 1860 'flx_co2_land_cor', 'correction of the CO2 flux from the land', 'kg CO2 m-2 s-1', (/ ('', i=1, 10) /)) 1861 !--end add PC 1860 1862 1861 1863 !--extinction coefficient -
LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90
r5904 r5905 527 527 USE YOESW, ONLY : RSUN 528 528 #endif 529 USE compbl_mod_h 529 ! PC 530 USE ch4n2o_correction_mod, ONLY: ok_CH4_eff_ppb, ok_N2O_eff_ppb 531 USE compbl_mod_h 530 532 USE alpale_mod 531 USE clesphys_mod_h533 USE clesphys_mod_h 532 534 USE tracinca_mod, ONLY: config_inca 533 535 USE config_ocean_skin_m, ONLY: activate_ocean_skin … … 721 723 CALL histwrite_phy("CH4_ppb",CH4_ppb) 722 724 CALL histwrite_phy("N2O_ppb",N2O_ppb) 725 IF (ok_CH4_eff_ppb) CALL histwrite_phy("CH4_eff_ppb",CH4_eff_ppb) 726 IF (ok_N2O_eff_ppb) CALL histwrite_phy("N2O_eff_ppb",N2O_eff_ppb) 723 727 CALL histwrite_phy("CFC11_ppt",CFC11_ppt) 724 728 CALL histwrite_phy("CFC12_ppt",CFC12_ppt) -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r5842 r5905 31 31 USE change_srf_frac_mod 32 32 USE conf_phys_m, only: conf_phys 33 USE carbon_cycle_mod, ONLY : infocfields_init, RCO2_glo, carbon_cycle_rad 33 USE carbon_cycle_mod, ONLY : infocfields_init, RCO2_glo, carbon_cycle_rad ! PC 34 35 34 36 USE CFMIP_point_locations ! IM stations CFMIP 35 37 USE clouds_bigauss_mod, ONLY: clouds_bigauss … … 143 145 #endif 144 146 147 USE ch4n2o_correction_mod, ONLY: ch4n2o_init, ch4n2o_compute, & ! PC 148 & ok_CH4_eff_ppb, ok_N2O_eff_ppb, ghg_year ! PC 145 149 USE phys_local_var_mod, ONLY: d_q_emiss 146 150 USE strataer_local_var_mod, ONLY: strataer_init,flag_emit,flh2o,ok_qemiss,flag_verbose_strataer, & … … 1563 1567 CALL infocfields_init 1564 1568 1569 !--PC:reads keys once: broadcasts config to all ranks 1570 CALL ch4n2o_init() ! reads getin_p, broadcasts configuration 1571 1572 1565 1573 !AI 08 2023 1566 1574 #ifdef CPP_ECRAD … … 4677 4685 ! 4678 4686 RCO2 = RCO2_act 4687 ! RCH4 = RCH4_act 4688 ! RN2O = RN2O_act 4689 #ifdef CPP_RRTM 4690 ! PC 4691 ! Only attempt to compute effective values if at least one 4692 ! gas is actually routed as "effective" 4693 IF (ok_CH4_eff_ppb .OR. ok_N2O_eff_ppb) THEN 4694 ! ghg_year is provided by the driver (libIGCM); the transfer 4695 ! functions currently ignore it and use it only for logging 4696 CALL ch4n2o_compute(ghg_year, CH4_ppb, N2O_ppb, CH4_eff_ppb, N2O_eff_ppb) 4697 END IF 4698 4699 ! CH4: choose which mass mixing ratio to feed RRTM 4700 ! if "ok_CH4_eff_ppb" = .TRUE., we convert the effective 4701 ! concentration (ppb) into a mass mixing ratio 4702 ! Otherwise we use the "actual" RCH4_act 4703 IF (ok_CH4_eff_ppb) THEN 4704 RCH4 = CH4_eff_ppb * 1.0E-09 * RMCH4 / RMD 4705 !RCH4_eff = CH4_eff_ppb * 1.0E-09 * RMCH4 / RMD 4706 ELSE 4707 RCH4 = RCH4_act 4708 END IF 4709 4710 ! N2O: choose which mass mixing ratio to feed RRTM 4711 ! if "ok_N2O_eff_ppb" = .TRUE., we convert the effective 4712 ! concentration (ppb) into a mass mixing ratio 4713 ! Othewise we use the "actual" RN2O_act 4714 IF (ok_N2O_eff_ppb) THEN 4715 RN2O = N2O_eff_ppb * 1.0E-09 * RMN2O / RMD 4716 !RN2O_eff = N2O_eff_ppb * 1.0E-09 * RMN2O / RMD 4717 ELSE 4718 RN2O = RN2O_act 4719 END IF 4720 ! PC 4721 #else 4722 IF (ok_CH4_eff_ppb .OR. ok_N2O_eff_ppb .OR. & 4723 TRIM(ghg_mode) /= "identity") THEN 4724 4725 abort_message = 'CH4/N2O effective mapping (ghg_mode=' // & 4726 TRIM(ghg_mode) // ') is only supported ' // & 4727 ' for RRTM (CPP_RRTM). Please recompile ' // & 4728 ' with -rrtm or set ok_CH4_eff_ppb=n, ' // & 4729 'ok_N2O_eff_ppb=n and ghg_mode="identity".' 4730 CALL abort_physic(modname,abort_message, 1) 4731 ENDIF 4732 4733 ! In all cases we feed the unmodified "actual" mixing ratios 4734 ! to the radiation scheme when not using RRTM. 4679 4735 RCH4 = RCH4_act 4680 4736 RN2O = RN2O_act 4737 #endif 4738 4739 4681 4740 RCFC11 = RCFC11_act 4682 4741 RCFC12 = RCFC12_act
Note: See TracChangeset
for help on using the changeset viewer.
