Ignore:
Timestamp:
Mar 21, 2026, 7:18:46 PM (3 weeks ago)
Author:
Laurent Fairhead
Message:
  1. SZ98 interpolation (Sheng and Zwiers, Climate Dynamics (1998)

Mean-preserving linear interpolation of monthly boundary conditions to daily values

  1. Concentration-Driven mode

Prescribed atmospheric CO2 concentrations without atmospheric CO2 transport

  1. CO2 Fossil fuel emissions

Reading of monthly or daily emissions with SZ98 interpolation when needed

  1. Flux corrections

Implementation of scalar (1D) ans spatially varying (2D) carbon flux corrections for piControl simulations.

PCadule

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/conf_phys_m.f90

    r6106 r6116  
    7070    USE phys_cal_mod
    7171    USE carbon_cycle_mod,  ONLY: carbon_cycle_tr, carbon_cycle_cpl, carbon_cycle_rad, level_coupling_esm
     72! << PC
     73    USE carbon_cycle_mod,  ONLY: read_daily_co2ff
     74    USE carbon_cycle_mod,  ONLY: carbon_cycle_conc_driven
     75! >> PC       
    7276    USE carbon_cycle_mod,  ONLY: read_fco2_ocean_cor,var_fco2_ocean_cor
    7377    USE carbon_cycle_mod,  ONLY: read_fco2_land_cor,var_fco2_land_cor
     78    USE carbon_cycle_mod,  ONLY: read_fco2_ocean_cor_2d, read_fco2_land_cor_2d
    7479    USE chemistry_cycle_mod, ONLY: dms_cycle_cpl, n2o_cycle_cpl, ndp_cycle_cpl, nh3_cycle_cpl
    7580    USE mod_grid_phy_lmdz, ONLY: klon_glo
     
    11901195    CALL getin_p('carbon_cycle_rad',carbon_cycle_rad)
    11911196
    1192     read_fco2_ocean_cor=.FALSE.
    1193     CALL getin_p('read_fco2_ocean_cor',read_fco2_ocean_cor)
     1197    !Patricia
     1198    read_daily_co2ff = .FALSE.
     1199    CALL getin_p('read_daily_co2ff', read_daily_co2ff)
    11941200
    11951201    var_fco2_ocean_cor=0. ! default value
     
    12011207    var_fco2_land_cor=0. ! default value
    12021208    CALL getin_p('var_fco2_land_cor',var_fco2_land_cor)
     1209
     1210    read_fco2_ocean_cor_2d=.FALSE.
     1211    CALL getin_p('read_fco2_ocean_cor_2d',read_fco2_ocean_cor_2d)
     1212   
     1213    read_fco2_land_cor_2d=.FALSE.
     1214    CALL getin_p('read_fco2_land_cor_2d',read_fco2_land_cor_2d)
    12031215
    12041216    ! level_coupling_esm : level of coupling of the biogeochemical fields between LMDZ, ORCHIDEE and NEMO
     
    12151227    CALL getin_p('level_coupling_esm',level_coupling_esm)
    12161228
    1217 
     1229    ! Patricia
     1230    carbon_cycle_conc_driven=.FALSE.
     1231    CALL getin_p('carbon_cycle_conc_driven', carbon_cycle_conc_driven)
     1232
     1233    ! Check: If concentration-driven, ensure co2_ppm is valid
     1234    IF (carbon_cycle_conc_driven) THEN
     1235       IF (co2_ppm <= 0.0) THEN
     1236          co2_ppm = co2_ppm0
     1237          WRITE(lunout,*) 'conf_phys: WARNING: co2_ppm was <= 0 in concentration-driven mode'
     1238          WRITE(lunout,*) '           Resetting to initial value co2_ppm0 = ', co2_ppm
     1239       END IF
     1240       WRITE(lunout,*) 'conf_phys: Carbon Cycle is CONCENTRATION-DRIVEN'
     1241       WRITE(lunout,*) '           Atmosphere forced by co2_ppm'
     1242    ELSE
     1243       WRITE(lunout,*) 'conf_phys: Carbon Cycle is EMISSION-DRIVEN (Interactive)'
     1244    END IF
     1245
     1246   
    12181247    dms_cycle_cpl=.FALSE.
    12191248    CALL getin_p('transm_dms_oa',dms_cycle_cpl)
     1249
    12201250    !
    12211251
     
    13821412    ENDIF
    13831413
     1414! << PC
     1415    ! Consistency checks for CO2 driving philosophy
     1416    ! If CO2 is concentration-driven for the surface components, the radiation
     1417    ! should not use the drifting tracer CO2 (avoid inconsistent forcing)
     1418    IF (carbon_cycle_conc_driven .AND. carbon_cycle_rad) THEN
     1419       !CALL abort_physic('conf_phys', &
     1420       !     'carbon_cycle_rad must be FALSE when carbon_cycle_conc_driven is TRUE', 1)
     1421       WRITE(lunout,*) 'CO2 concentration-driven: radiation uses prescribed co2_ppm: atmospheric tracer is diagnostic only.'
     1422    ENDIF
     1423! >> PC
    13841424
    13851425    ! Test on chemistry cycle
     
    15651605    WRITE(lunout,*) 'conf_phys :  carbon_cycle_rad = ', carbon_cycle_rad
    15661606    WRITE(lunout,*) 'conf_phys :  level_coupling_esm = ', level_coupling_esm
     1607    WRITE(lunout,*) 'conf_phys :  carbon_cycle_conc_driven = ', carbon_cycle_conc_driven
     1608    WRITE(lunout,*) 'conf_phys :  read_daily_co2ff = ', read_daily_co2ff
     1609    WRITE(lunout,*) 'conf_phys :  read_fco2_ocean_cor_2d = ', read_fco2_ocean_cor_2d   
     1610    WRITE(lunout,*) 'conf_phys :  read_fco2_land_cor_2d = ', read_fco2_land_cor_2d
    15671611    WRITE(lunout,*) 'conf_phys :  read_fco2_ocean_cor = ', read_fco2_ocean_cor
    15681612    WRITE(lunout,*) 'conf_phys :  var_fco2_ocean_cor = ', var_fco2_ocean_cor
Note: See TracChangeset for help on using the changeset viewer.