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

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions