Skip to content

MARBL tracers fail dimensional scaling in DIMCSL test (in T, L and H) #411

@mnlevy1981

Description

@mnlevy1981

For the L and H tests, cprnc output looks like this is an issue with underflow:

$ grep RMS ./*.dimscale_2_Lp.cprnc.out
 RMS diazC                            0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazC_adx                        0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazC_ady                        0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazChl_adx                      0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazChl_ady                      0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazFe_adx                       0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazFe_ady                       0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazP_adx                        0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazP_ady                        0.0000E+00            NORMALIZED  0.0000E+00
 RMS diaz_Qp                          0.0000E+00            NORMALIZED  0.0000E+00
$ grep RMS ./*.dimscale_3_Hp.cprnc.out
 RMS J_coccoCaCO3                     0.0000E+00            NORMALIZED  0.0000E+00
 RMS J_coccoChl                       0.0000E+00            NORMALIZED  0.0000E+00
 RMS J_coccoFe                        0.0000E+00            NORMALIZED  0.0000E+00
 RMS J_coccoP                         0.0000E+00            NORMALIZED  0.0000E+00
 RMS J_diatChl                        0.0000E+00            NORMALIZED  0.0000E+00
 RMS J_diatFe                         0.0000E+00            NORMALIZED  0.0000E+00
 RMS J_diatP                          0.0000E+00            NORMALIZED  0.0000E+00
 RMS J_diatSi                         0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazC                            0.0000E+00            NORMALIZED  0.0000E+00
 RMS J_diazC                          0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazC_adx                        0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazC_ady                        0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazC_tendency_vert_remap        0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazC_tendency                   0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazChl                          0.0000E+00            NORMALIZED  0.0000E+00
 RMS J_diazChl                        0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazChl_adx                      0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazChl_ady                      0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazChl_tendency_vert_remap      0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazChl_tendency                 0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazFe                           0.0000E+00            NORMALIZED  0.0000E+00
 RMS J_diazFe                         0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazFe_adx                       0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazFe_ady                       0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazFe_tendency_vert_remap       0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazFe_tendency                  0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazP                            0.0000E+00            NORMALIZED  0.0000E+00
 RMS J_diazP                          0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazP_adx                        0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazP_ady                        0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazP_tendency_vert_remap        0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazP_tendency                   0.0000E+00            NORMALIZED  0.0000E+00
 RMS J_spChl                          0.0000E+00            NORMALIZED  0.0000E+00
 RMS J_spFe                           0.0000E+00            NORMALIZED  0.0000E+00
 RMS J_spP                            0.0000E+00            NORMALIZED  0.0000E+00
 RMS CaCO3_PROD                       0.0000E+00            NORMALIZED  0.0000E+00
 RMS SiO2_PROD                        0.0000E+00            NORMALIZED  0.0000E+00
 RMS cocco_loss_poc                   0.0000E+00            NORMALIZED  0.0000E+00
 RMS diaz_Qp                          0.0000E+00            NORMALIZED  0.0000E+00
 RMS diaz_agg                         0.0000E+00            NORMALIZED  0.0000E+00
 RMS diaz_loss                        0.0000E+00            NORMALIZED  0.0000E+00
 RMS diaz_loss_doc                    0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_auto_TOT                   0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_cocco                      0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_cocco_doc                  0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_cocco_mesozoo              0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_cocco_microzoo             0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_cocco_poc                  0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_cocco_zootot               0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_diat                       0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_diat_doc                   0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_diat_mesozoo               0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_diat_poc                   0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_diat_zootot                0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_diaz                       0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_diaz_doc                   0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_diaz_mesozoo               0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_diaz_microzoo              0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_diaz_poc                   0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_diaz_zootot                0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_microzoo                   0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_microzoo_doc               0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_microzoo_mesozoo           0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_microzoo_poc               0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_microzoo_zootot            0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_sp                         0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_sp_doc                     0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_sp_microzoo                0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_sp_poc                     0.0000E+00            NORMALIZED  0.0000E+00
 RMS graze_sp_zootot                  0.0000E+00            NORMALIZED  0.0000E+00
 RMS x_graze_mesozoo                  0.0000E+00            NORMALIZED  0.0000E+00
 RMS x_graze_microzoo                 0.0000E+00            NORMALIZED  0.0000E+00

Perhaps this tied to initializing tracers to 0 instead of a very small number -- the CFC tracers had a similar issue, and the fix was to initialize all the tracers to a non-zero value in the test suite:

CFC11_IC_VAL = 1.0e-100
CFC12_IC_VAL = 1.0e-100

For MARBL, we don't want to initialize all the tracers to a global value, but I suspect these tests will pass if we enforce a small positive minimum tracer value.

The T-scaling test might be an actual issue in the code:

$ grep RMS ./*.dimscale_1_Tp.cprnc.out
 RMS DOC_tendency_vert_remap          9.9003E-63            NORMALIZED  1.9177E-56
 RMS DOC_tendency                     2.8301E-63            NORMALIZED  3.1221E-59
 RMS DON_tendency_vert_remap          1.2265E-63            NORMALIZED  2.7146E-56
 RMS DON_tendency                     1.6289E-63            NORMALIZED  2.0765E-58
 RMS DOP_tendency_vert_remap          2.6817E-63            NORMALIZED  1.1519E-54
 RMS DOP_tendency                     1.5510E-63            NORMALIZED  3.6720E-57
 RMS coccoC_tendency_vert_remap       2.8853E-63            NORMALIZED  2.1311E-54
 RMS coccoC_tendency                  2.2676E-63            NORMALIZED  1.6795E-56
 RMS coccoCaCO3_tendency_vert_remap   1.9829E-63            NORMALIZED  2.3233E-54
 RMS coccoCaCO3_tendency              2.9768E-63            NORMALIZED  3.9220E-56
 RMS coccoChl_tendency_vert_remap     2.5804E-57            NORMALIZED  1.1531E-47
 RMS coccoChl_tendency                2.9178E-63            NORMALIZED  1.3236E-55
 RMS coccoFe_tendency_vert_remap      2.1471E-63            NORMALIZED  1.0513E-49
 RMS coccoFe_tendency                 2.0049E-62            NORMALIZED  1.0946E-50
 RMS coccoP_tendency_vert_remap       2.1370E-63            NORMALIZED  1.9652E-52
 RMS coccoP_tendency                  5.7083E-63            NORMALIZED  5.1867E-54
 RMS diatC_tendency_vert_remap        3.8912E-63            NORMALIZED  1.7003E-55
 RMS diatC_tendency                   1.0529E-62            NORMALIZED  8.6316E-57
 RMS diatChl_tendency_vert_remap      2.4387E-63            NORMALIZED  3.9230E-55
 RMS diatChl_tendency                 3.9458E-62            NORMALIZED  1.3392E-55
 RMS diatFe_tendency_vert_remap       6.3029E-61            NORMALIZED  2.1338E-48
 RMS diatFe_tendency                  5.6420E-63            NORMALIZED  4.1726E-52
 RMS diatP_tendency_vert_remap        1.9857E-62            NORMALIZED  1.0575E-52
 RMS diatP_tendency                   2.4320E-63            NORMALIZED  2.4386E-55
 RMS diatSi_tendency_vert_remap       4.7880E-63            NORMALIZED  9.5631E-55
 RMS diatSi_tendency                  6.3001E-61            NORMALIZED  2.4898E-54
 RMS diazC_tendency_vert_remap        2.3968E-63            NORMALIZED  2.6014E-54
 RMS diazC_tendency                   2.8820E-63            NORMALIZED  4.4541E-56
 RMS diazChl_adx                      0.0000E+00            NORMALIZED  0.0000E+00
 RMS diazChl_tendency_vert_remap      1.3797E-63            NORMALIZED  5.9410E-54
 RMS diazChl_tendency                 1.6065E-63            NORMALIZED  1.5509E-55
 RMS diazFe_tendency_vert_remap       5.2580E-63            NORMALIZED  1.1508E-49
 RMS diazFe_tendency                  1.4066E-63            NORMALIZED  5.7914E-52
 RMS diazP_tendency_vert_remap        3.9607E-63            NORMALIZED  5.3800E-52
 RMS diazP_tendency                   1.9744E-62            NORMALIZED  4.1489E-53
 RMS mesozooC_tendency_vert_remap     1.5922E-63            NORMALIZED  4.0980E-55
 RMS mesozooC_tendency                5.5107E-63            NORMALIZED  1.3719E-56
 RMS microzooC_tendency_vert_remap    2.3076E-63            NORMALIZED  2.4712E-55
 RMS microzooC_tendency               6.6290E-63            NORMALIZED  6.5057E-57
 RMS spC_tendency_vert_remap          1.8095E-63            NORMALIZED  8.4224E-56
 RMS spC_tendency                     2.1731E-63            NORMALIZED  1.0347E-57
 RMS spChl_tendency_vert_remap        1.2223E-62            NORMALIZED  3.6675E-54
 RMS spChl_tendency                   5.9412E-63            NORMALIZED  1.8352E-56
 RMS spFe_tendency_vert_remap         5.3021E-63            NORMALIZED  1.5678E-50
 RMS spFe_tendency                    4.5383E-63            NORMALIZED  1.5588E-52
 RMS spP_tendency_vert_remap          1.9922E-62            NORMALIZED  1.1649E-52
 RMS spP_tendency                     2.0095E-62            NORMALIZED  1.1814E-54

It's interesting that it is only in tendency terms (and diazChl_adx); I have verified that we convert dt from T -> s when applying the tendencies returned from MARBL.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions