@@ -2724,7 +2724,6 @@ subroutine diagnose_diabatic_diff_tendency(tv, h, temp_old, saln_old, dt, G, GV,
2724
2724
real , dimension (SZI_(G),SZJ_(G),SZK_(GV)) :: work_3d ! A 3-d work array for diagnostics [various]
2725
2725
real , dimension (SZI_(G),SZJ_(G)) :: work_2d ! A 2-d work array for diagnostics [various]
2726
2726
real :: Idt ! The inverse of the timestep [T-1 ~> s-1]
2727
- real :: ppt2mks ! Conversion factor from S to kg/kg [S-1 ~> ppt-1].
2728
2727
integer :: i, j, k, is, ie, js, je, nz
2729
2728
logical :: do_saln_tend ! Calculate salinity-based tendency diagnostics
2730
2729
@@ -2774,9 +2773,8 @@ subroutine diagnose_diabatic_diff_tendency(tv, h, temp_old, saln_old, dt, G, GV,
2774
2773
2775
2774
! salt tendency
2776
2775
if (CS% id_diabatic_diff_salt_tend > 0 .or. CS% id_diabatic_diff_salt_tend_2d > 0 ) then
2777
- ppt2mks = US% S_to_ppt* 0.001
2778
2776
do k= 1 ,nz ; do j= js,je ; do i= is,ie
2779
- work_3d(i,j,k) = h(i,j,k)* GV % H_to_RZ * ppt2mks * work_3d(i,j,k)
2777
+ work_3d(i,j,k) = h(i,j,k) * work_3d(i,j,k)
2780
2778
enddo ; enddo ; enddo
2781
2779
if (CS% id_diabatic_diff_salt_tend > 0 ) then
2782
2780
call post_data(CS% id_diabatic_diff_salt_tend, work_3d, CS% diag, alt_h= h)
@@ -2819,7 +2817,6 @@ subroutine diagnose_boundary_forcing_tendency(tv, h, temp_old, saln_old, h_old,
2819
2817
real , dimension (SZI_(G),SZJ_(G),SZK_(GV)) :: work_3d ! A 3-d work array for diagnostics [various]
2820
2818
real , dimension (SZI_(G),SZJ_(G)) :: work_2d ! A 2-d work array for diagnostics [various]
2821
2819
real :: Idt ! The inverse of the timestep [T-1 ~> s-1]
2822
- real :: ppt2mks ! Conversion factor from S to kg/kg [S-1 ~> ppt-1].
2823
2820
integer :: i, j, k, is, ie, js, je, nz
2824
2821
2825
2822
is = G% isc ; ie = G% iec ; js = G% jsc ; je = G% jec ; nz = GV% ke
@@ -2870,9 +2867,8 @@ subroutine diagnose_boundary_forcing_tendency(tv, h, temp_old, saln_old, h_old,
2870
2867
2871
2868
! salt tendency
2872
2869
if (CS% id_boundary_forcing_salt_tend > 0 .or. CS% id_boundary_forcing_salt_tend_2d > 0 ) then
2873
- ppt2mks = US% S_to_ppt* 0.001
2874
2870
do k= 1 ,nz ; do j= js,je ; do i= is,ie
2875
- work_3d(i,j,k) = GV % H_to_RZ * ppt2mks * Idt * (h(i,j,k) * tv% S(i,j,k) - h_old(i,j,k) * saln_old(i,j,k))
2871
+ work_3d(i,j,k) = Idt * (h(i,j,k) * tv% S(i,j,k) - h_old(i,j,k) * saln_old(i,j,k))
2876
2872
enddo ; enddo ; enddo
2877
2873
if (CS% id_boundary_forcing_salt_tend > 0 ) then
2878
2874
call post_data(CS% id_boundary_forcing_salt_tend, work_3d, CS% diag, alt_h= h_old)
@@ -3372,7 +3368,8 @@ subroutine diabatic_driver_init(Time, G, GV, US, param_file, useALEalgorithm, di
3372
3368
CS% id_diabatic_diff_salt_tend = register_diag_field(' ocean_model' , &
3373
3369
' diabatic_salt_tendency' , diag% axesTL, Time, &
3374
3370
' Diabatic diffusion of salt tendency' , &
3375
- ' kg m-2 s-1' , conversion= US% RZ_T_to_kg_m2s, cmor_field_name= ' osaltdiff' , &
3371
+ ' kg m-2 s-1' , conversion= US% S_to_ppt* 0.001 * GV% H_to_RZ* US% RZ_T_to_kg_m2s, &
3372
+ cmor_field_name= ' osaltdiff' , &
3376
3373
cmor_standard_name= ' tendency_of_sea_water_salinity_expressed_as_salt_content_' // &
3377
3374
' due_to_parameterized_dianeutral_mixing' , &
3378
3375
cmor_long_name= ' Tendency of sea water salinity expressed as salt content ' // &
@@ -3399,7 +3396,8 @@ subroutine diabatic_driver_init(Time, G, GV, US, param_file, useALEalgorithm, di
3399
3396
CS% id_diabatic_diff_salt_tend_2d = register_diag_field(' ocean_model' , &
3400
3397
' diabatic_salt_tendency_2d' , diag% axesT1, Time, &
3401
3398
' Depth integrated diabatic diffusion salt tendency' , &
3402
- ' kg m-2 s-1' , conversion= US% RZ_T_to_kg_m2s, cmor_field_name= ' osaltdiff_2d' , &
3399
+ ' kg m-2 s-1' , conversion= US% S_to_ppt* 0.001 * GV% H_to_RZ* US% RZ_T_to_kg_m2s, &
3400
+ cmor_field_name= ' osaltdiff_2d' , &
3403
3401
cmor_standard_name= ' tendency_of_sea_water_salinity_expressed_as_salt_content_' // &
3404
3402
' due_to_parameterized_dianeutral_mixing_depth_integrated' , &
3405
3403
cmor_long_name= ' Tendency of sea water salinity expressed as salt content ' // &
@@ -3446,7 +3444,8 @@ subroutine diabatic_driver_init(Time, G, GV, US, param_file, useALEalgorithm, di
3446
3444
3447
3445
CS% id_boundary_forcing_salt_tend = register_diag_field(' ocean_model' ,&
3448
3446
' boundary_forcing_salt_tendency' , diag% axesTL, Time, &
3449
- ' Boundary forcing salt tendency' , ' kg m-2 s-1' , conversion= US% RZ_T_to_kg_m2s, &
3447
+ ' Boundary forcing salt tendency' , &
3448
+ ' kg m-2 s-1' , conversion= US% S_to_ppt* 0.001 * GV% H_to_RZ* US% RZ_T_to_kg_m2s, &
3450
3449
v_extensive = .true. )
3451
3450
if (CS% id_boundary_forcing_salt_tend > 0 ) then
3452
3451
CS% boundary_forcing_tendency_diag = .true.
@@ -3465,7 +3464,7 @@ subroutine diabatic_driver_init(Time, G, GV, US, param_file, useALEalgorithm, di
3465
3464
CS% id_boundary_forcing_salt_tend_2d = register_diag_field(' ocean_model' ,&
3466
3465
' boundary_forcing_salt_tendency_2d' , diag% axesT1, Time, &
3467
3466
' Depth integrated boundary forcing of ocean salt' , &
3468
- ' kg m-2 s-1' , conversion= US% RZ_T_to_kg_m2s)
3467
+ ' kg m-2 s-1' , conversion= US% S_to_ppt * 0.001 * GV % H_to_RZ * US % RZ_T_to_kg_m2s)
3469
3468
if (CS% id_boundary_forcing_salt_tend_2d > 0 ) then
3470
3469
CS% boundary_forcing_tendency_diag = .true.
3471
3470
endif
0 commit comments