Skip to content

Commit

Permalink
Merge branch 'bugfix/dust_units'
Browse files Browse the repository at this point in the history
  • Loading branch information
mnlevy1981 committed Mar 22, 2018
2 parents 15c0cbc + 80d689f commit 13a4d57
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 26 deletions.
4 changes: 2 additions & 2 deletions autogenerated_src/default_diagnostics.json
Original file line number Diff line number Diff line change
Expand Up @@ -1779,14 +1779,14 @@
"frequency": "medium",
"longname": "Dust Flux into Cell",
"operator": "average",
"units": "ng/s/m^2",
"units": "g/cm^2/s",
"vertical_grid": "layer_avg"
},
"dust_REMIN": {
"frequency": "medium",
"longname": "Dust Remineralization",
"operator": "average",
"units": "mmol/m^3/s",
"units": "g/cm^3/s",
"vertical_grid": "layer_avg"
},
"graze_((autotroph_sname))": {
Expand Down
4 changes: 2 additions & 2 deletions src/default_diagnostics.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -958,13 +958,13 @@ SiO2_REMIN :
operator : average
dust_FLUX_IN :
longname : Dust Flux into Cell
units : ng/s/m^2
units : g/cm^2/s
vertical_grid : layer_avg
frequency : medium
operator : average
dust_REMIN :
longname : Dust Remineralization
units : mmol/m^3/s
units : g/cm^3/s
vertical_grid : layer_avg
frequency : medium
operator : average
Expand Down
11 changes: 4 additions & 7 deletions src/marbl_diagnostics_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -2718,7 +2718,7 @@ subroutine marbl_diagnostics_init( &

lname = 'Dust Flux into Cell'
sname = 'dust_FLUX_IN'
units = 'ng/s/m^2'
units = 'g/cm^2/s'
vgrid = 'layer_avg'
truncate = .false.
call diags%add_diagnostic(lname, sname, units, vgrid, truncate, &
Expand All @@ -2730,7 +2730,7 @@ subroutine marbl_diagnostics_init( &

lname = 'Dust Remineralization'
sname = 'dust_REMIN'
units = 'mmol/m^3/s'
units = 'g/cm^3/s'
vgrid = 'layer_avg'
truncate = .false.
call diags%add_diagnostic(lname, sname, units, vgrid, truncate, &
Expand Down Expand Up @@ -4250,10 +4250,7 @@ subroutine marbl_diagnostics_set_surface_forcing( &
endif

diags(ind_diag%NHx_SURFACE_EMIS)%field_2d(:) = nhx_surface_emis(:)

! FIXME #63 : reported units of DUST_FLUX are g/cm^2/s, so this comment doesn't make sense
! multiply DUST flux by mpercm (.01) to convert from model units (cm/s)(mmol/m^3) to mmol/s/m^2
diags(ind_diag%DUST_FLUX)%field_2d(:) = DUST_FLUX_IN(:)*mpercm
diags(ind_diag%DUST_FLUX)%field_2d(:) = DUST_FLUX_IN(:)

end associate

Expand Down Expand Up @@ -4637,7 +4634,7 @@ subroutine store_diagnostics_particulates(marbl_domain, &
diags(ind%SiO2_REMIN)%field_3d(:, 1) = P_SiO2%remin

diags(ind%dust_FLUX_IN)%field_3d(:, 1) = dust%sflux_in + dust%hflux_in
diags(ind%dust_REMIN)%field_3d(:, 1) = P_SiO2%remin
diags(ind%dust_REMIN)%field_3d(:, 1) = dust%remin

diags(ind%P_iron_FLUX_at_ref_depth)%field_2d(1) = P_iron%flux_at_ref_depth
diags(ind%P_iron_FLUX_IN)%field_3d(:, 1) = P_iron%sflux_in + P_iron%hflux_in
Expand Down
18 changes: 9 additions & 9 deletions src/marbl_init_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -719,7 +719,7 @@ subroutine marbl_init_surface_forcing_fields(num_elements, surface_forcing_indic
if (id .eq. ind%sss_id) then
found = .true.
surface_forcings(id)%metadata%varname = 'sss'
surface_forcings(id)%metadata%field_units = 'unknown units'
surface_forcings(id)%metadata%field_units = 'psu'
end if

! Sea-surface temperature
Expand Down Expand Up @@ -754,14 +754,14 @@ subroutine marbl_init_surface_forcing_fields(num_elements, surface_forcing_indic
if (id .eq. ind%nox_flux_id) then
found = .true.
surface_forcings(id)%metadata%varname = 'NOx Flux'
surface_forcings(id)%metadata%field_units = 'unknown units'
surface_forcings(id)%metadata%field_units = 'nmol/cm^2/s'
end if

! NHy Flux
if (id .eq. ind%nhy_flux_id) then
found = .true.
surface_forcings(id)%metadata%varname = 'NHy Flux'
surface_forcings(id)%metadata%field_units = 'unknown units'
surface_forcings(id)%metadata%field_units = 'nmol/cm^2/s'
end if

! external C Flux
Expand Down Expand Up @@ -789,35 +789,35 @@ subroutine marbl_init_surface_forcing_fields(num_elements, surface_forcing_indic
if (id .eq. ind%atm_pressure_id) then
found = .true.
surface_forcings(id)%metadata%varname = 'Atmospheric Pressure'
surface_forcings(id)%metadata%field_units = 'unknown units'
surface_forcings(id)%metadata%field_units = 'atmospheres'
end if

! xco2
if (id .eq. ind%xco2_id) then
found = .true.
surface_forcings(id)%metadata%varname = 'xco2'
surface_forcings(id)%metadata%field_units = 'unknown units'
surface_forcings(id)%metadata%field_units = 'ppmv'
end if

! xco2_alt_co2
if (id .eq. ind%xco2_alt_co2_id) then
found = .true.
surface_forcings(id)%metadata%varname = 'xco2_alt_co2'
surface_forcings(id)%metadata%field_units = 'unknown units'
surface_forcings(id)%metadata%field_units = 'ppmv'
end if

! d13c
if (id .eq. ind%d13c_id) then
found = .true.
surface_forcings(id)%metadata%varname = 'd13c'
surface_forcings(id)%metadata%field_units = 'unknown units'
surface_forcings(id)%metadata%field_units = 'permil'
end if

! d14c
if (id .eq. ind%d14c_id) then
found = .true.
surface_forcings(id)%metadata%varname = 'd14c'
surface_forcings(id)%metadata%field_units = 'unknown units'
surface_forcings(id)%metadata%field_units = 'permil'
end if

if (.not.found) then
Expand Down Expand Up @@ -916,7 +916,7 @@ subroutine marbl_init_interior_forcing_fields(&
if (id .eq. ind%potemp_id) then
found = .true.
interior_forcings(id)%metadata%varname = 'Potential Temperature'
interior_forcings(id)%metadata%field_units = 'Degrees C'
interior_forcings(id)%metadata%field_units = 'degrees C'
call interior_forcings(id)%set_rank(num_elements, 1, marbl_status_log, &
dim1 = num_levels)
end if
Expand Down
16 changes: 10 additions & 6 deletions tests/driver_src/marbl.F90
Original file line number Diff line number Diff line change
Expand Up @@ -294,15 +294,17 @@ Program marbl
associate(diags => marbl_instance%surface_forcing_diags%diags)
call driver_status_log%log_header('Surface forcing diagnostics', subname)
do n=1, size(diags)
write(log_message, "(I0,4A)") n, '. ', trim(diags(n)%short_name), ': ', trim(diags(n)%long_name)
write(log_message, "(I0,7A)") n, '. ', trim(diags(n)%short_name), ': ', trim(diags(n)%long_name), &
' (units: ', trim(diags(n)%units),')'
call driver_status_log%log_noerror(log_message, subname)
end do
end associate
! Log interior forcing diagnostics passed back to driver
associate(diags => marbl_instance%interior_forcing_diags%diags)
call driver_status_log%log_header('Interior forcing diagnostics', subname)
do n=1, size(diags)
write(log_message, "(I0,4A)") n, '. ', trim(diags(n)%short_name), ': ', trim(diags(n)%long_name)
write(log_message, "(I0,7A)") n, '. ', trim(diags(n)%short_name), ': ', trim(diags(n)%long_name), &
' (units: ', trim(diags(n)%units),')'
call driver_status_log%log_noerror(log_message, subname)
end do
end associate
Expand All @@ -328,15 +330,17 @@ Program marbl
! Log requested surface forcing fields
call driver_status_log%log_header('Requested surface forcing fields', subname)
do n=1,size(marbl_instance%surface_input_forcings)
write(log_message, "(I0, 2A)") n, '. ', &
trim(marbl_instance%surface_input_forcings(n)%metadata%varname)
write(log_message, "(I0, 5A)") n, '. ', &
trim(marbl_instance%surface_input_forcings(n)%metadata%varname), &
' (units: ', trim(marbl_instance%surface_input_forcings(n)%metadata%field_units),')'
call driver_status_log%log_noerror(log_message, subname)
end do
! Log requested interior forcing fields
call driver_status_log%log_header('Requested interior forcing fields', subname)
do n=1,size(marbl_instance%interior_input_forcings)
write(log_message, "(I0, 2A)") n, '. ', &
trim(marbl_instance%interior_input_forcings(n)%metadata%varname)
write(log_message, "(I0, 5A)") n, '. ', &
trim(marbl_instance%interior_input_forcings(n)%metadata%varname), &
' (units: ', trim(marbl_instance%interior_input_forcings(n)%metadata%field_units),')'
call driver_status_log%log_noerror(log_message, subname)
end do
call marbl_instance%shutdown()
Expand Down

0 comments on commit 13a4d57

Please sign in to comment.