Skip to content

Commit 9cad4c4

Browse files
committed
Merge branch 'cesm2_1_x_rel' into master
2 parents 09112aa + 512e9f0 commit 9cad4c4

8 files changed

Lines changed: 115 additions & 4 deletions

File tree

bld/build-namelist

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2717,6 +2717,9 @@ sub module_tavg_script_args() {
27172717
my $nl = shift;
27182718
my $module = shift;
27192719
my $cfg = shift;
2720+
if ($module eq "abio_dic_dic14") {
2721+
return ($nl->get_value('abio_dic_dic14_ltavg_NK'));
2722+
}
27202723
if ($module eq "ecosys") {
27212724
return ($nl->get_value('lecosys_tavg_all'),
27222725
$nl->get_value('lecosys_tavg_alt_co2'));

bld/namelist_files/namelist_defaults_pop.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1333,6 +1333,12 @@
13331333
<abio_atm_model_year>1</abio_atm_model_year>
13341334
<abio_atm_data_year>1</abio_atm_data_year>
13351335

1336+
<!--------------------------------->
1337+
<!-- abio_dic_dic14 derived vars -->
1338+
<!--------------------------------->
1339+
1340+
<abio_dic_dic14_ltavg_NK>.false.</abio_dic_dic14_ltavg_NK>
1341+
13361342
<!---------------------------->
13371343
<!-- ecosys derived vars -->
13381344
<!---------------------------->

bld/namelist_files/namelist_definition_pop.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5883,6 +5883,20 @@ Year in data that corresponds to abio_atm_model_year.
58835883
Default: 1
58845884
</entry>
58855885

5886+
<!-- - - - - - - - - - - - - - - - - - - - -->
5887+
<!-- Group: abio_dic_dic14 derived vars - -->
5888+
<!-- - - - - - - - - - - - - - - - - - - - -->
5889+
5890+
<entry
5891+
id="abio_dic_dic14_ltavg_NK"
5892+
type="logical"
5893+
category="Passive Tracers (Abiotic DIC & DIC14)"
5894+
group="derived" >
5895+
add Newton-Krylov spinup related tavg variables
5896+
Default:
5897+
.false.
5898+
</entry>
5899+
58865900

58875901
<!-- - - - - - - - - - - - - - - - - - -->
58885902
<!-- Group: ecosys derived vars - -->

cime_config/testdefs/testlist_pop.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,11 @@
278278
<machine name="cheyenne" compiler="intel" category="aux_pop_MARBL"/>
279279
</machines>
280280
</test>
281+
<test name="ERS_Ld5_D" grid="T62_g37" compset="C" testmods="pop/abio_dic_dic14_ltavg_NK">
282+
<machines>
283+
<machine name="cheyenne" compiler="intel" category="aux_pop"/>
284+
</machines>
285+
</test>
281286
<test name="ERS_Ld5_D" grid="T62_g37" compset="C1850ECO" testmods="pop/ciso_abio_dic_dic14">
282287
<machines>
283288
<machine name="cheyenne" compiler="intel" category="aux_pop"/>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../abio_dic_dic14
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
abio_dic_dic14_ltavg_NK = .true.

input_templates/ocn.abio_dic_dic14.tavg.csh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ endif
1515

1616
@ s1 = 1 # use base-model stream 1
1717

18+
set abio_dic_dic14_ltavg_NK = $2
19+
1820
cat >! $CASEROOT/Buildconf/popconf/abio_dic_dic14_tavg_contents << EOF
1921
$s1 ABIO_DIC
2022
$s1 ABIO_DIC14
@@ -38,6 +40,14 @@ $s1 STF_ABIO_DIC14
3840
$s1 Jint_ABIO_DIC14
3941
EOF
4042

43+
if ($abio_dic_dic14_ltavg_NK == ".true.") then
44+
cat >> $CASEROOT/Buildconf/popconf/abio_dic_dic14_tavg_contents << EOF
45+
$s1 d_SF_ABIO_DIC_d_ABIO_DIC
46+
$s1 d_SF_ABIO_DIC14_d_ABIO_DIC
47+
$s1 d_SF_ABIO_DIC14_d_ABIO_DIC14
48+
EOF
49+
endif
50+
4151
if ($OCN_TAVG_TRACER_BUDGET == TRUE) then
4252
cat >> $CASEROOT/Buildconf/popconf/abio_dic_dic14_tavg_contents << EOF
4353
$s1 KPP_SRC_ABIO_DIC14

source/abio_dic_dic14_mod.F90

Lines changed: 75 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,10 @@ module abio_dic_dic14_mod
179179
tavg_FG_ABIO_DIC14, & ! tavg id for surface gas flux of C14
180180
tavg_FG_ABIO_DIC, & ! tavg id for surface gas flux of CO2
181181
tavg_ABIO_ALK, & ! tavg id for surface Alkalinity
182-
tavg_ABIO_PH ! tavg id for surface PH
182+
tavg_ABIO_PH, & ! tavg id for surface PH
183+
tavg_d_SF_ABIO_DIC_d_ABIO_DIC, & ! tavg id for derivative of SF_ABIO_DIC wrt ABIO_DIC
184+
tavg_d_SF_ABIO_DIC14_d_ABIO_DIC, & ! tavg id for derivative of SF_ABIO_DIC14 wrt ABIO_DIC
185+
tavg_d_SF_ABIO_DIC14_d_ABIO_DIC14 ! tavg id for derivative of SF_ABIO_DIC14 wrt ABIO_DIC14
183186

184187
!-----------------------------------------------------------------------
185188
! define tavg id for 3d fields related to surface fluxes
@@ -566,10 +569,11 @@ subroutine abio_dic_dic14_init(abio_dic_dic14_ind_begin, init_ts_file_fmt, read_
566569
call document(subname, 'some abio_dic_dic14 fields missing from restfile, ' /&
567570
&/ 'using abio_dic_dic14_restfile_fallback')
568571
abio_dic_dic14_restart_filename = abio_dic_dic14_restfile_fallback
569-
call io_read_fallback_register_field('ABIO_PH_SURF', &
570-
fallback_opt='const', const_val=c0)
571572
endif
572573

574+
call io_read_fallback_register_field('ABIO_PH_SURF', &
575+
fallback_opt='const', const_val=c0)
576+
573577
call rest_read_tracer_block(abio_dic_dic14_ind_begin, &
574578
init_abio_dic_dic14_init_file_fmt, &
575579
abio_dic_dic14_restart_filename, &
@@ -817,6 +821,23 @@ subroutine abio_dic_dic14_init_tavg
817821
coordinates='TLONG TLAT time')
818822
var_cnt = var_cnt+1
819823

824+
call define_tavg_field(tavg_d_SF_ABIO_DIC_d_ABIO_DIC,'d_SF_ABIO_DIC_d_ABIO_DIC',2, &
825+
long_name='derivative of SF_ABIO_DIC wrt ABIO_DIC', &
826+
units='cm/s', grid_loc='2110', &
827+
coordinates='TLONG TLAT time')
828+
var_cnt = var_cnt+1
829+
830+
call define_tavg_field(tavg_d_SF_ABIO_DIC14_d_ABIO_DIC,'d_SF_ABIO_DIC14_d_ABIO_DIC',2, &
831+
long_name='derivative of SF_ABIO_DIC14 wrt ABIO_DIC', &
832+
units='cm/s', grid_loc='2110', &
833+
coordinates='TLONG TLAT time')
834+
var_cnt = var_cnt+1
835+
836+
call define_tavg_field(tavg_d_SF_ABIO_DIC14_d_ABIO_DIC14,'d_SF_ABIO_DIC14_d_ABIO_DIC14',2, &
837+
long_name='derivative of SF_ABIO_DIC14 wrt ABIO_DIC14', &
838+
units='cm/s', grid_loc='2110', &
839+
coordinates='TLONG TLAT time')
840+
var_cnt = var_cnt+1
820841

821842
!-----------------------------------------------------------------------
822843
! Allocate variable to save surface variables to in surf_flux,
@@ -958,6 +979,7 @@ subroutine abio_dic_dic14_set_sflux(U10_SQR,IFRAC,PRESS,SST,SSS, &
958979
use named_field_mod, only: named_field_get
959980
use grid, only: REGION_MASK
960981
use c14_atm_forcing_mod, only: c14_atm_forcing_update_data, c14_atm_forcing_get_data
982+
use tavg, only: accumulate_tavg_now
961983

962984
! !INPUT PARAMETERS:
963985

@@ -1012,6 +1034,7 @@ subroutine abio_dic_dic14_set_sflux(U10_SQR,IFRAC,PRESS,SST,SSS, &
10121034
PHHI, & ! upper bound for ph in solver
10131035
ABIO_DIC_ROW, & ! row of DIC values for solver
10141036
CO2STAR_ROW, & ! CO2STAR from solver
1037+
CO2STAR_ROW_TMP, & ! CO2STAR from solver
10151038
DCO2STAR_ROW, & ! DCO2STAR from solver
10161039
pCO2SURF_ROW, & ! pCO2SURF from solver
10171040
DpCO2_ROW, & ! DpCO2 from solver
@@ -1058,7 +1081,7 @@ subroutine abio_dic_dic14_set_sflux(U10_SQR,IFRAC,PRESS,SST,SSS, &
10581081
!$OMP PARALLEL DO PRIVATE(iblock,j,XKW_ICE,CO2_SCHMIDT_USED,PV,SiO2, PO4,&
10591082
!$OMP pCO2, D14C,SURF_VALS_DIC,SURF_VALS_DIC14,&
10601083
!$OMP R14C_ocn,R14C_atm,PHLO,PHHI,ABIO_DIC_ROW,&
1061-
!$OMP ALK_ROW,PH_NEW,CO2STAR_ROW, DCO2STAR_ROW,&
1084+
!$OMP ALK_ROW,PH_NEW,CO2STAR_ROW,CO2STAR_ROW_TMP,DCO2STAR_ROW,&
10621085
!$OMP pCO2SURF_ROW,DpCO2_ROW,GAS_FLUX_ABIO_DIC,&
10631086
!$OMP GAS_FLUX_ABIO_DIC14,CO3_ROW)
10641087

@@ -1225,6 +1248,51 @@ subroutine abio_dic_dic14_set_sflux(U10_SQR,IFRAC,PRESS,SST,SSS, &
12251248
ABIO_DIC_SFLUX_TAVG(:,j,13,iblock) = DpCO2_ROW
12261249
ABIO_DIC_SFLUX_TAVG(:,j,14,iblock) = ALK_ROW
12271250

1251+
!-----------------------------------------------------------------------
1252+
! compute derivatives of surface flux terms, if requested
1253+
!-----------------------------------------------------------------------
1254+
1255+
if (accumulate_tavg_now(tavg_d_SF_ABIO_DIC14_d_ABIO_DIC14)) then
1256+
1257+
! d_SF_ABIO_DIC14_d_ABIO_DIC14
1258+
where (SURF_VALS_DIC(:,j) /= c0)
1259+
ABIO_DIC_SFLUX_TAVG(:,j,18,iblock) = (-1) * PV(:,j) * CO2STAR_ROW / SURF_VALS_DIC(:,j)
1260+
elsewhere
1261+
ABIO_DIC_SFLUX_TAVG(:,j,18,iblock) = c0
1262+
endwhere
1263+
1264+
endif
1265+
1266+
if (accumulate_tavg_now(tavg_d_SF_ABIO_DIC_d_ABIO_DIC) .or. &
1267+
accumulate_tavg_now(tavg_d_SF_ABIO_DIC14_d_ABIO_DIC)) then
1268+
1269+
call co2calc_row(iblock, j, LAND_MASK(:,j,iblock), .true., &
1270+
.false., SST(:,j,iblock), SSS(:,j,iblock), &
1271+
ABIO_DIC_ROW + c1, ALK_ROW, PO4(:,j), SiO2(:,j), &
1272+
PHLO, PHHI, PH_NEW, pCO2(:,j), &
1273+
AP_USED(:,j,iblock), CO2STAR_ROW_TMP, &
1274+
DCO2STAR_ROW, pCO2SURF_ROW, DpCO2_ROW, CO3_ROW)
1275+
1276+
call co2calc_row(iblock, j, LAND_MASK(:,j,iblock), .true., &
1277+
.false., SST(:,j,iblock), SSS(:,j,iblock), &
1278+
ABIO_DIC_ROW - c1, ALK_ROW, PO4(:,j), SiO2(:,j), &
1279+
PHLO, PHHI, PH_NEW, pCO2(:,j), &
1280+
AP_USED(:,j,iblock), CO2STAR_ROW, &
1281+
DCO2STAR_ROW, pCO2SURF_ROW, DpCO2_ROW, CO3_ROW)
1282+
1283+
! d_SF_ABIO_DIC_d_ABIO_DIC
1284+
ABIO_DIC_SFLUX_TAVG(:,j,16,iblock) = (-1) * PV(:,j) * &
1285+
(CO2STAR_ROW_TMP - CO2STAR_ROW) * p5
1286+
1287+
! d_SF_ABIO_DIC14_d_ABIO_DIC
1288+
where (SURF_VALS_DIC(:,j) /= c0)
1289+
ABIO_DIC_SFLUX_TAVG(:,j,17,iblock) = (-1) * PV(:,j) * SURF_VALS_DIC14(:,j) * &
1290+
(CO2STAR_ROW_TMP / (SURF_VALS_DIC(:,j) + c1) - CO2STAR_ROW / (SURF_VALS_DIC(:,j) - c1)) * p5
1291+
elsewhere
1292+
ABIO_DIC_SFLUX_TAVG(:,j,17,iblock) = c0
1293+
endwhere
1294+
1295+
endif
12281296

12291297
end do !j = 1,ny_block
12301298
!-----------------------------------------------------------------------
@@ -1406,6 +1474,9 @@ subroutine abio_dic_dic14_tavg_forcing
14061474
call accumulate_tavg_field(ABIO_DIC_SFLUX_TAVG(:,:,13,iblock),tavg_ABIO_DpCO2,iblock,1)
14071475
call accumulate_tavg_field(ABIO_DIC_SFLUX_TAVG(:,:,14,iblock),tavg_ABIO_ALK,iblock,1)
14081476
call accumulate_tavg_field(ABIO_DIC_SFLUX_TAVG(:,:,15,iblock),tavg_ABIO_D14Catm,iblock,1)
1477+
call accumulate_tavg_field(ABIO_DIC_SFLUX_TAVG(:,:,16,iblock),tavg_d_SF_ABIO_DIC_d_ABIO_DIC,iblock,1)
1478+
call accumulate_tavg_field(ABIO_DIC_SFLUX_TAVG(:,:,17,iblock),tavg_d_SF_ABIO_DIC14_d_ABIO_DIC,iblock,1)
1479+
call accumulate_tavg_field(ABIO_DIC_SFLUX_TAVG(:,:,18,iblock),tavg_d_SF_ABIO_DIC14_d_ABIO_DIC14,iblock,1)
14091480
end do
14101481

14111482

0 commit comments

Comments
 (0)