Skip to content

Commit

Permalink
various bug fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
andreasschmittner committed Aug 29, 2017
1 parent 96f9dac commit 5ae8279
Show file tree
Hide file tree
Showing 7 changed files with 254 additions and 184 deletions.
12 changes: 6 additions & 6 deletions updates/latest/source/common/co2calc.F
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,12 @@ subroutine co2calc_SWS (t, s, dic_in, ta_in, co2_in, atmpres
common /const/ ksi, ff
common /species/ bt, st, ft, sit, pt, dic, ta

! Hardwire constants (Andreas Schmittner Oct 3, 2013)
phhi = 6.
phlo = 10.
sit_in = 7.6875e-03 !mol/m^3
pt_in = 0.5125e-3 !mol/m^3

! ---------------------------------------------------------------------
! Change units from the input of mol/m^3 -> mol/kg:
! (1 mol/m^3) x (1 m^3/1024.5 kg)
Expand Down Expand Up @@ -324,12 +330,6 @@ subroutine co2calc_SWS (t, s, dic_in, ta_in, co2_in, atmpres
! (xx.y). Making xacc bigger will result in faster convergence also, but this
! is not recommended (xacc of 10**-9 drops precision to 2 significant figures).
! Hardwire constants (Andreas Schmittner Oct 3, 2013)
phhi = 6.
phlo = 10.
sit_in = 7.6875e-03 !mol/m^3
pt_in = 0.5125e-3 !mol/m^3
! Parentheses added around negative exponents (Keith Lindsay)
x1 = 10.0**(-phhi)
Expand Down
49 changes: 24 additions & 25 deletions updates/latest/source/common/csbc.h
Original file line number Diff line number Diff line change
Expand Up @@ -147,76 +147,75 @@
! dtoic = total system carbon lost minus carbon gained

integer numsbc
parameter (numsbc = 14
parameter (numsbc = 14 ! taux, tauy, ws, a_calb, s_calb, hflx, sflx, sst, sss, ro, wx_q, wy_q, wx_t, wy_t
#if defined O_embm_awind
& + 1
& + 1 ! wa
#endif
#if defined O_carbon_co2_2d
& + 2
& + 2 ! wx_c, wy_c
#endif
#if defined O_shortwave
& + 1
& + 1 ! psw
#endif
#if defined O_ice_evp
& + 4
& + 4 ! su, sv, gu, gv
#endif
#if defined O_carbon
& + 2
& + 2 ! ssdic, dicflx
# if defined O_carbon_13
& + 2
& + 2 ! ssdic13, dic13flx
# endif
# if defined O_carbon_14
& + 2
& + 2 ! ssc14, c14flx
# endif
#endif
#if defined O_npzd_alk
& + 2
& + 2 ! ssalk, alkflx
#endif
#if defined O_npzd_o2
& + 2
& + 2 ! sso2, o2flx
#endif
#if defined O_npzd
& + 2
& + 2 ! sspo4, po4flx
# if !defined O_npzd_no_vflux
& + 6
& + 6 ! ssphyt, phytflx, sszoop, zoopflx, ssdetr, detrflx
# if defined O_kk_ballast
& + 2
& + 2 ! ssdetr_B, detrflx_B
# endif
# if defined O_npzd_caco3
& + 4
& + 4 ! sscaco3, caco3flx, sscocc, coccflx
# endif
# endif
# if defined O_npzd_iron
& + 3
& + 3 ! ssdfe, dfeflx, dfeadep
# if !defined O_npzd_no_vflux
& + 2
& + 2 ! ssdetrfe, detrfeflx
# endif
# endif
# if defined O_npzd_nitrogen
& + 6
& + 6 ! ssdop, dopflx, ssno3, no3flx, ssdon, donflx
# if !defined O_npzd_no_vflux
& + 2
& + 2 ! ssdiaz, diazflx
# endif
# if defined O_npzd_nitrogen_15
& + 4
& + 4 ! ssdin15, din15flx, ssdon15, don15flx
# if !defined O_npzd_no_vflux
& + 8
& + 8 ! ssphytn15, phytn15flx, sszoopn15, zoopn15flx, ssddetrn15, detrn15flx, ssdiazn15, diazn15flx
# if defined O_npzd_caco3
& + 2
& + 2 ! sscoccn15, coccn15flx
# endif
# endif
# endif
# endif
#endif
#if defined O_carbon_13
& + 2
# if !defined O_npzd_no_vflux
& + 6
& + 6 ! ssphytc13, phytc13flx, sszoopc13, zoopc13flx, ssdetrc13, detrc13flx
# if defined O_npzd_caco3
& + 4
& + 4 ! sscoccc13, coccc13flx, sscaco3c13, caco3c13flx
# endif
# if defined O_npzd_nitrogen
& + 2
& + 4 ! ssdoc13, doc13flx, ssdiazc13, diazc13flx
# endif
# endif
#endif
Expand Down
3 changes: 1 addition & 2 deletions updates/latest/source/common/levind.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
! kmu = number of vertical boxes over "u,v" points

integer kmt, kmu
real sg_bathy, sg_ocean_mask
real sg_bathy

common /levind/ kmt(imt,jmt), kmu(imt,jmt)
common /levind/ sg_bathy(imt,jmt,km)
common /levind/ sg_ocean_mask(imt,jmt)
144 changes: 63 additions & 81 deletions updates/latest/source/common/npzd.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,6 @@
! kfe = Fe limitation half saturation parameter
! kfe_D = Fe limitation half sat. param. for diaz.
!
!++++ Climate engineering ++++++++++++++
! kpipe = ocean pipe coordinate
! kpipe_fe = ocean pipe coordinate for fe limitation
!
!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
! Dynamic iron cycle
Expand Down Expand Up @@ -184,7 +181,6 @@

#if defined O_npzd_nitrogen_15
real rn15std

parameter (rn15std=0.0036765)
#endif
#if defined O_carbon_13
Expand All @@ -198,113 +194,99 @@
#endif

#if defined O_npzd
real tap, kw, kc, ki, abio_P, bbio, cbio, k1n, nup, gamma1, gbio
real epsbio, nuz, nud0, LFe, wd, ztt, rkwz, dtnpzd
real capr, dcaco3, rcak, rcab, nupt0, wd0, k1p_P, jdiar, redctn
real redctp, redptn, redntp, redotn, redotp, rnbio, rdtts, dtbio
real rnpp, rgraz, rmorp, rmorpt, rmorz, rremi, rexcr, rexpo
real rnpp_D, rgraz_D, rmorpt_D, rnfix, kzoo, zprefP, rmorp_D
real zprefDiaz, zprefZ, zprefDet, rgraz_Det, rgraz_Z, geZ, kfe
real ravej, ravej_D, rgmax, rno3P, rpo4P, rpo4_D, kfe_D, kpipe
real kpipe_fe, rwcdeni, rbdeni, rsedrr, sgbdfac, nupt0_D
real diazntp, diazptn, nup_D, dfr, redotc, redntc, dfrt
real redptc, rprca, nudop0, nudon0, eps_recy, hdop
real eps_assim, eps_excr, eps_nfix, eps_wcdeni, eps_bdeni0
real mw, mwz, mw_c, rnpp_dop, rnpp_D_dop, rnpp_C_dop
real kfemax, kfemin, pmax
real kfemax_C, kfemin_C, pmax_C
real rgraz_Det_B, rexpo_B,rremi_B,bapr

real abio_C , k1n_C, k1p_C, rnpp_C, nuc, nuct0
real rgraz_C, rmorp_C, rmorpt_C, tap_C
real zprefC, kfe_C

real rcalpro, kcal, wc, wc0, dissk0, rdissl
real rexpocaco3, rcalatt, rimpocaco3
real kc_c
! , romca, rco3, rco3_sat, rdel_sat

common /npzd_r/ bapr

common /npzd_r/ wc0, kcal, dissk0, wc(km)
common /npzd_r/ kc_c
common /npzd_r/ rcalpro(kpzd)
! common /npzd_r/ rcaldiss(kpzd)
common /npzd_r/ rcalatt(kpzd)
common /npzd_r/ rdissl(km)
common /npzd_r/ rexpocaco3(km)
common /npzd_r/ rimpocaco3(km)
! common /npzd_r/ romca(km)
! common /npzd_r/ rco3(km)
! common /npzd_r/ rco3_sat(km)
! common /npzd_r/ rdel_sat(km)

# if defined O_npzd_iron
real kfeleq, lig, thetamaxhi, alphamax, alphamin
real thetamaxlo, mc, fetopsed, o2min, kfeorg, rfeton
real kfecol, rdeffe_C
real rfeorgads, rdeffe, rremife, rexpofe, rfeprime
real rfesed, rbfe, rfecol
# endif

common /npzd_r/ abio_C, k1n_C, k1p_C, nuc, nuct0
common /npzd_r/ kfe_C, tap_C, mw_c, zprefC
common /npzd_r/ pmax_C, kfemin_C, kfemax_C
common /npzd_r/ rnpp_C(kpzd)
common /npzd_r/ rgraz_C(kpzd)
common /npzd_r/ rmorp_C(kpzd)
common /npzd_r/ rmorpt_C(kpzd)

real tap, kw, kc, ki, abio_P, bbio, cbio, k1n, nup
common /npzd_r/ tap, kw, kc, ki, abio_P, bbio, cbio, k1n, nup
real gamma1, gbio, epsbio, nuz, nud0, LFe, dfr
common /npzd_r/ gamma1, gbio, epsbio, nuz, nud0, LFe, dfr
real wd, ztt, rkwz, dtnpzd, capr
common /npzd_r/ wd(km), ztt(km), rkwz(km), dtnpzd, capr
real dcaco3, rcak, rcab, nupt0, wd0, k1p_P
common /npzd_r/ dcaco3, rcak(km), rcab(km), nupt0, wd0, k1p_P
real jdiar, redctn, redctp, redptn, redntp, redotn
common /npzd_r/ jdiar, redctn, redctp, redptn, redntp, redotn
common /npzd_r/ redotp, rnbio, rdtts, dtbio, geZ
real redotp, redotc, redntc, rnbio, rdtts, dtbio, geZ
common /npzd_r/ redotp, redotc, redntc, rnbio, rdtts, dtbio, geZ
real kzoo, zprefP, zprefDiaz, zprefZ, zprefDet
common /npzd_r/ kzoo, zprefP, zprefDiaz, zprefZ, zprefDet
common /npzd_r/ kfe, kfe_D
common /npzd_r/ sgbdfac, nupt0_D, diazntp, diazptn, nup_D
common /npzd_r/ redotc, redntc, dfrt, redptc, nudop0, nudon0
real kfe, kfe_D, sgbdfac, nupt0_D, diazntp, diazptn
common /npzd_r/ kfe, kfe_D, sgbdfac, nupt0_D, diazntp, diazptn
real nup_D, dfrt, redptc, nudop0, nudon0
common /npzd_r/ nup_D, dfrt, redptc, nudop0, nudon0
real eps_bdeni0, eps_recy, hdop, mw, mwz, mw_c
common /npzd_r/ eps_bdeni0, eps_recy, hdop, mw, mwz, mw_c
real eps_assim, eps_excr, eps_nfix, eps_wcdeni
common /npzd_r/ eps_assim, eps_excr, eps_nfix, eps_wcdeni
common /npzd_r/ eps_bdeni0, eps_recy, hdop, mw, mwz


real abio_C, k1n_C, k1p_C, nuc, nuct0, kfe_C, tap_C
common /npzd_r/ abio_C, k1n_C, k1p_C, nuc, nuct0, kfe_C, tap_C
real zprefC
common /npzd_r/ zprefC

real kcal, wc0, dissk0, rdissl, wc
common /npzd_r/ kcal, wc0, dissk0, rdissl(km), wc(km)
real rcalatt, rexpocaco3, rimpocaco3
common /npzd_r/ rcalatt(kpzd), rexpocaco3(km), rimpocaco3(km)
real kc_c, rcalpro
common /npzd_r/ kc_c, rcalpro(kpzd)

# if defined O_npzd_iron
common /npzd_r/ kfeleq, alphamax, alphamin
common /npzd_r/ thetamaxhi, thetamaxlo, lig, fetopsed, o2min
common /npzd_r/ mc, kfeorg, rfeton, kfecol
common /npzd_r/ kfemax, kfemin, pmax
common /npzd_r/ rremife(km)
real kfeleq, alphamax, alphamin, lig, kfeorg, rfeton
common /npzd_r/ kfeleq, alphamax, alphamin, lig, kfeorg, rfeton
real thetamaxhi, thetamaxlo, mc, fetopsed, o2min
common /npzd_r/ thetamaxhi, thetamaxlo, mc, fetopsed, o2min
real kfecol, kfemax, kfemin, pmax
common /npzd_r/ kfecol, kfemax, kfemin, pmax
# if defined O_npzd_caco3
real kfemax_C, kfemin_C, pmax_C
common /npzd_r/ kfemin_C, kfemax_C, pmax_C
# endif
real fe_hydr
common /fe_hydr/ fe_hydr(imt,jmt,km)
# endif
# if defined O_kk_ballast
real bapr
common /npzd_r/ bapr
# endif
# if defined O_save_npzd
real rnpp, rgraz, rmorp, rmorpt, rmorz, rexcr, rremi, rexpo
common /npzd_r/ rnpp(kpzd), rgraz(kpzd), rmorp(kpzd), rmorpt(kpzd)
common /npzd_r/ rmorz(kpzd), rexcr(kpzd), rremi(km), rexpo(km)
real rgraz_Det, rgraz_Z, rsedrr, rprca, rnpp_dop, rnpp_C_dop
common /npzd_r/ rgraz_Det(kpzd), rgraz_Z(kpzd), rsedrr, rprca
common /npzd_r/ rnpp_dop(kpzd), rnpp_C_dop(kpzd)
# if defined O_npzd_caco3
real rnpp_C, rgraz_C, rmorp_C
common /npzd_r/ rnpp_C(kpzd), rgraz_C(kpzd), rmorp_C(kpzd)
real rmorpt_C
common /npzd_r/ rmorpt_C(kpzd)
# endif
# if defined O_kk_ballast
common /npzd_r/ rgraz_Det_B(kpzd)
common /npzd_r/ rremi_B(km)
common /npzd_r/ rexpo_B(km)
real rgraz_Det_B, rremi_B, rexpo_B
common /npzd_r/ rgraz_Det_B(kpzd), rremi_B(km), rexpo_B(km)
# endif
# if defined O_npzd_extra_diagnostics
real ravej, ravej_D, rgmax, rno3P, rpo4P, rpo4_D
common /npzd_r/ ravej(kpzd), ravej_D(kpzd), rgmax(kpzd)
common /npzd_r/ rno3P(kpzd), rpo4P(kpzd), rpo4_D(kpzd)
# endif
# if defined O_npzd_iron
common /npzd_r/ rexpofe(km)
real rremife, rexpofe
common /npzd_r/ rremife(km), rexpofe(km)
# if defined O_npzd_iron_diagnostics
common /npzd_r/ rfeorgads(km)
common /npzd_r/ rdeffe(km)
common /npzd_r/ rfeprime(km)
common /npzd_r/ rfesed(km)
common /npzd_r/ rbfe(km)
common /npzd_r/ rfecol(km)
real rfeorgads, rdeffe, rfeprime
common /npzd_r/ rfeorgads(km), rdeffe(km), rfeprime(km)
real rfesed, rbfe, rfecol
common /npzd_r/ rfesed(km), rbfe(km), rfecol(km)
# if defined O_npzd_caco3
real rdeffe_C
common /npzd_r/ rdeffe_C(km)
# endif
# endif
# endif
# if defined O_npzd_nitrogen
real rnpp_D, rgraz_D, rmorp_D, rmorpt_D, rnfix, rwcdeni, rbdeni
real rnpp_D_dop
common /npzd_r/ rnpp_D(kpzd), rgraz_D(kpzd), rmorp_D(kpzd)
common /npzd_r/ rmorpt_D(kpzd), rnfix(kpzd), rwcdeni(km)
common /npzd_r/ rbdeni(km), rnpp_D_dop(kpzd)
Expand Down
8 changes: 4 additions & 4 deletions updates/latest/source/embm/embm_tavg.F
Original file line number Diff line number Diff line change
Expand Up @@ -295,10 +295,10 @@ subroutine embm_tavg_def (fname, imt, jmt, nat, ncat, xt, yt
if (n .lt. 100) write(a3, '(i2)') n
if (n .lt. 10) write(a3, '(i1)') n
call defvar ('A_wind'//trim(a3)//'X', iou ,3, it, -c1e6, c1e6
&, ' ', 'F', 'eastward wind for tracer '//trim(a3), ' '
&, ' ', 'F', 'eastward wind for tracer '//trim(a3)
&, 'eastward_wind_for_tracer_'//trim(a3), 'unknown')
call defvar ('A_wind'//trim(a3)//'Y', iou ,3, it, -c1e6, c1e6
&, ' ', 'F', 'northward wind for tracer '//trim(a3), ' '
&, ' ', 'F', 'northward wind for tracer '//trim(a3)
&, 'northward_wind_for_tracer_'//trim(a3), 'unknown')
endif
enddo
Expand Down Expand Up @@ -362,10 +362,10 @@ subroutine embm_tavg_def (fname, imt, jmt, nat, ncat, xt, yt
if (n .lt. 100) write(a3, '(i2)') n
if (n .lt. 10) write(a3, '(i1)') n
call defvar ('A_diff'//trim(a3)//'X', iou ,3, it, -c1e6, c1e6
&, ' ', 'F', 'eastward diffusion for tracer '//trim(a3), ' '
&, ' ', 'F', 'eastward diffusion for tracer '//trim(a3)
&, 'eastward_diffusion_for_tracer_'//trim(a3), 'unknown')
call defvar ('A_diff'//trim(a3)//'Y', iou ,3, it, -c1e6, c1e6
&, ' ', 'F', 'northward diffusion for tracer '//trim(a3), ' '
&, ' ', 'F', 'northward diffusion for tracer '//trim(a3)
&, 'northward_diffusion_for_tracer_'//trim(a3), 'unknown')
endif
enddo
Expand Down
Loading

0 comments on commit 5ae8279

Please sign in to comment.