Skip to content

Commit

Permalink
debug version for the excessive NH4 build up
Browse files Browse the repository at this point in the history
Still in progress.
  • Loading branch information
jinyun1tang committed Feb 21, 2025
1 parent ec4e6cc commit 514c3da
Show file tree
Hide file tree
Showing 13 changed files with 123 additions and 10 deletions.
15 changes: 15 additions & 0 deletions f90src/APIs/MicBGCAPI.F90
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ module MicBGCAPI
use EcoSiMParDataMod, only: micpar
use MicBGCMod, only: SoilBGCOneLayer
use EcosimConst, only: LtHeatIceMelt,Tref
use abortutils, only: endrun
use EcoSIMSolverPar
use TracerIDMod
use SoilBGCDataType
Expand Down Expand Up @@ -305,6 +306,15 @@ subroutine MicAPISend(I,J,L,NY,NX,micfor,micstt,micflx)
micstt%CZ2GS = AZMAX1(trc_solcl_vr(idg_N2,L,NY,NX))
micstt%CH2GS = AZMAX1(trc_solcl_vr(idg_H2,L,NY,NX))
micstt%CCH4G = AZMAX1(trcg_gascl_vr(idg_CH4,L,NY,NX))
micstt%Lay = L
if(L<=3)then
write(113,*)'CNO2S',L,NY,NX,trc_solcl_vr(ids_NO2,L,NY,NX),trcs_solml_vr(ids_NO2,L,NY,NX),&
trc_solcl_vr(ids_NO3,L,NY,NX),trcs_solml_vr(ids_NO3,L,NY,NX)
endif
if(abs(trcs_solml_vr(ids_NO2,L,NY,NX))>100.)then
write(*,*)I*1000+J
call endrun(trim(mod_filename)//' at line',__LINE__)
endif
! write(115,*)I+J/24.,L,micstt%COXYG,micstt%COXYS,VLsoiAirPM(1,L,NY,NX)
micstt%O2GSolubility = GasSolbility_vr(idg_O2,L,NY,NX)
micstt%CH4AquaSolubility = GasSolbility_vr(idg_CH4,L,NY,NX)
Expand Down Expand Up @@ -389,6 +399,11 @@ subroutine MicAPIRecv(I,J,L,NY,NX,litrM,micstt,micflx,naqfdiag,nmicdiag)
tRHydlyBioReSOM_vr(1:NumPlantChemElms,L,NY,NX) = micflx%tRHydlyBioReSOM
tRHydlySoprtOM_vr(1:NumPlantChemElms,L,NY,NX) = micflx%tRHydlySoprtOM

write(*,*)L,NY,NX
write(*,*)'NO3, NO2',micflx%RNO3MicbTransfSoil,micflx%RNO2MicbTransfSoil
if(abs(micflx%RNO2MicbTransfSoil)>1.e3)then
call endrun(trim(mod_filename)//' at line',__LINE__)
endif
trcs_RMicbUptake_vr(idg_CO2,L,NY,NX) = micflx%RCO2NetUptkMicb
trcs_RMicbUptake_vr(idg_CH4,L,NY,NX) = micflx%RCH4UptkAutor
trcs_RMicbUptake_vr(idg_H2,L,NY,NX) = micflx%RH2NetUptkMicb
Expand Down
5 changes: 5 additions & 0 deletions f90src/Balances/LateralTranspMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -599,6 +599,11 @@ subroutine FlowXGrids(I,J,N,N1,N2,N3,N4,N5,N6,NY,NX)
+trcs_TransptMicP_3D(NTS,N,N3,N2,N1)-trcs_TransptMicP_3D(NTS,N,N6,N5,N4)
trcs_TransptMacP_vr(NTS,N3,N2,N1)=trcs_TransptMacP_vr(NTS,N3,N2,N1) &
+trcs_TransptMacP_3D(NTS,N,N3,N2,N1)-trcs_TransptMacP_3D(NTS,N,N6,N5,N4)
if(abs(trcs_TransptMicP_vr(NTS,N3,N2,N1))>1.e10)then
write(*,*)NTS,N3,N2,N1,N
write(*,*)trcs_TransptMicP_3D(NTS,N,N3,N2,N1),trcs_TransptMicP_3D(NTS,N,N6,N5,N4)
call endrun(trim(mod_filename)//' at line',__LINE__)
endif
ENDDO
!
! NET GAS FLUXES BETWEEN ADJACENT GRID CELLS
Expand Down
7 changes: 7 additions & 0 deletions f90src/Balances/RedistMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1134,6 +1134,13 @@ subroutine UpdateChemInSoilLays(I,J,NY,NX,LG,DORGC,Txchem_CO2_col,DORGE_col)
trcs_plant_uptake_vr(ids,L,NY,NX) = trcs_plant_uptake_vr(ids,L,NY,NX)*pval
endif
endif
if(trcs_solml_vr(ids,L,NY,NX)>1.e10)then
write(*,*)NY,NX,L,ids,ids_NO2,ids_NO3
write(*,*)trcs_TransptMicP_vr(ids,L,NY,NX), &
trcn_GeoChem_soil_vr(ids,L,NY,NX), &
trcs_Irrig_vr(ids,L,NY,NX),trcs_Mac2MicPore_flx_vr(ids,L,NY,NX)
call endrun(trim(mod_filename)//' at line',__LINE__)
endif
ENDDO

do ids=ids_NH4B,ids_nutb_end
Expand Down
7 changes: 6 additions & 1 deletion f90src/IOutils/HistDataType.F90
Original file line number Diff line number Diff line change
Expand Up @@ -2884,7 +2884,12 @@ subroutine hist_update(this,I,J,bounds)
this%h2D_cNO3t_vr(ncol,L)= safe_adb(trcs_solml_vr(ids_NO3,L,NY,NX)+trcs_solml_vr(ids_NO3B,L,NY,NX) &
+trcs_solml_vr(ids_NO2,L,NY,NX)+trcs_solml_vr(ids_NO2B,L,NY,NX),&
VLSoilMicPMass_vr(L,NY,NX))

if(I>=51)then
write(*,*)I*1000+J,NY,NX,L
write(*,*)trcs_solml_vr(ids_NO3,L,NY,NX),trcs_solml_vr(ids_NO3B,L,NY,NX), &
trcs_solml_vr(ids_NO2,L,NY,NX),trcs_solml_vr(ids_NO2B,L,NY,NX), &
VLSoilMicPMass_vr(L,NY,NX)
endif
this%h2D_cPO4_vr(ncol,L) = safe_adb(trcs_solml_vr(ids_H1PO4,L,NY,NX)+trcs_solml_vr(ids_H1PO4B,L,NY,NX) &
+trcs_solml_vr(ids_H2PO4,L,NY,NX)+trcs_solml_vr(ids_H2PO4B,L,NY,NX),&
VLWatMicP_vr(L,NY,NX))
Expand Down
1 change: 1 addition & 0 deletions f90src/IOutils/HistFileMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -2000,6 +2000,7 @@ subroutine hfields_write(t, mode)
call ncd_io(flag='write', varname=varname, &
dim1name=type1d_out, data=hist1do, ncid=nfid(t), nt=nt)
else
call PrintInfo(varname)
call ncd_io(flag='write', varname=varname, &
dim1name=type1d_out, data=histo, ncid=nfid(t), nt=nt)
end if
Expand Down
2 changes: 1 addition & 1 deletion f90src/IOutils/PlantInfoMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ subroutine readplantmgmtinfo(pftinfo_nfid,ntopou,iyear,yearc,NHW,NHE,NVN,NVS)
read(tstr,'(I2,I2,I4)')IDX,IMO,IYR
READ(TSTR,*)DY,ICUT,JCUT,HCUT,PCUT,ECUT11,ECUT12,ECUT13,&
ECUT14,ECUT21,ECUT22,ECUT23,ECUT24

LPY=0
if(isLeap(iyr) .and. IMO.GT.2)LPY=1
!obtain the ordinal day
IF(IMO.EQ.1)then
Expand Down
9 changes: 9 additions & 0 deletions f90src/Microbial_bgc/Box_Micmodel/MicAutoCPLXMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -778,6 +778,9 @@ subroutine AerobicAutorO2Uptake(NGL,N,FOXYX,OXKX,RGOMP,RVOXP,RVOXPA,RVOXPB,&
RO2Uptk4RespAutor(NGL) = RO2Dmnd4RespAutor(NGL)*fLimO2Autor(NGL)
RSOxidSoilAutor(NGL) = RVOXPA*fLimO2Autor(NGL)
RSOxidBandAutor(NGL) = RVOXPB*fLimO2Autor(NGL)
if(micstt%Lay==2)then
write(120,*)'auto1',RVOXPA,fLimO2Autor(NGL)
endif
end associate
end subroutine AerobicAutorO2Uptake

Expand Down Expand Up @@ -899,6 +902,9 @@ subroutine AutotrophDenitrificCatabolism(NGL,N,XCO2,VOLWZ,micfor,micstt,&
!NH4 oxidation by NO2(-)
RSOxidSoilAutor(NGL)=RSOxidSoilAutor(NGL)+0.333_r8*RNO2ReduxAutorSoil(NGL)
RSOxidBandAutor(NGL)=RSOxidBandAutor(NGL)+0.333_r8*RNO2ReduxAutorBand(NGL)
if(micstt%Lay==2)then
write(120,*)'auto2',RSOxidSoilAutor(NGL),0.333_r8*RNO2ReduxAutorSoil(NGL)
endif
! TRN2ON=TRN2ON+RNO2ReduxAutorSoil(NGL)+RNO2ReduxAutorBand(NGL)
end associate
end subroutine AutotrophDenitrificCatabolism
Expand Down Expand Up @@ -1032,6 +1038,9 @@ subroutine NH3OxidizerCatabolism(NGL,N,XCO2,VOLWZ,TSensGrowth,ECHZ,RGOMP,RVOXP,R
RGOMP = AZMAX1(RVOXP*ECNH*ECHZ)
RNH3OxidAutor(NGL) = VMX4S
RNH3OxidAutorBand(NGL) = VMX4B
if(micstt%lay==2)then
write(121,*)'RVOXPA',VMXA,FCN4S,FNH4,ZNH4S,ZNFN4S,RNNH4
endif
!
! O2 DEMAND FROM NH3 OXIDATION
!
Expand Down
45 changes: 41 additions & 4 deletions f90src/Microbial_bgc/Box_Micmodel/MicBGCMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1125,7 +1125,7 @@ subroutine ChemoDenitrification(micfor,micstt,nmicdiag,naqfdiag,micflx)
RNO2ReduxChemo = 0.10_r8*(RNO2ReduxSoilChemo+RNO2ReduxBandChemo)
RNO2DmndSoilChemo = VMXC4S
RNO2DmndBandChemo = VMXC4B

write(*,*)'ZNO2S*FNO2,VMXC4S',ZNO2S,FNO2,VMXC4S
end associate
end subroutine ChemoDenitrification
!------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -1941,12 +1941,25 @@ subroutine HeterotrophAnabolicUpdate(I,J,micfor,micstt,nmicf,micflx)
mBiomeHeter(ielmp,MID3,K)=mBiomeHeter(ielmp,MID3,K)+DOMuptk4GrothHeter(ielmp,NGL,K) &
+RH2PO4TransfSoilHeter(NGL,K)+RH2PO4TransfBandHeter(NGL,K)+RH1PO4TransfSoilHeter(NGL,K) &
+RH1PO4TransfBandHeter(NGL,K)


if(micstt%lay==1)then
write(311,*)'domnc',NGL,K,DOMuptk4GrothHeter(ielmn,NGL,K),CGROMC,safe_adb(DOMuptk4GrothHeter(ielmn,NGL,K),CGROMC),&
safe_adb(DOMuptk4GrothHeter(ielmn,NGL,K), DOMuptk4GrothHeter(ielmc,NGL,K))
elseif(micstt%lay==2)then
write(312,*)'domnc',NGL,K,DOMuptk4GrothHeter(ielmn,NGL,K),CGROMC,safe_adb(DOMuptk4GrothHeter(ielmn,NGL,K),CGROMC),&
safe_adb(DOMuptk4GrothHeter(ielmn,NGL,K), DOMuptk4GrothHeter(ielmc,NGL,K))
elseif(micstt%lay==3)then
write(313,*)'domnc',NGL,K,DOMuptk4GrothHeter(ielmn,NGL,K),CGROMC,safe_adb(DOMuptk4GrothHeter(ielmn,NGL,K),CGROMC),&
safe_adb(DOMuptk4GrothHeter(ielmn,NGL,K), DOMuptk4GrothHeter(ielmc,NGL,K))
endif
!fix negative microbial N by immobilization
if(mBiomeHeter(ielmn,MID3,K)<0._r8)then
RNH4TransfSoilHeter(NGL,K) = RNH4TransfSoilHeter(NGL,K)-mBiomeHeter(ielmn,MID3,K)
NetNH4Mineralize = NetNH4Mineralize-mBiomeHeter(ielmn,MID3,K)
mBiomeHeter(ielmn,MID3,K) = 0._r8
if(micstt%lay==2)then
write(235,*)'negb',NGL,K,RNH4TransfSoilHeter(NGL,K),-mBiomeHeter(ielmn,MID3,K)
endif
endif
!fix negative P biomass by immobilization
if(mBiomeHeter(ielmp,MID3,K)<0._r8)then
Expand Down Expand Up @@ -2142,6 +2155,9 @@ subroutine AggregateTransfOMBioResdue(micfor,micstt,nmicdiag,naqfdiag,nmicf,ncpl
naqfdiag%tRH2PO4MicrbTransfSoil = naqfdiag%tRH2PO4MicrbTransfSoil+RH2PO4TransfLitrHeter(NGL,K)
naqfdiag%tRH1PO4MicrbTransfSoil = naqfdiag%tRH1PO4MicrbTransfSoil+RH1PO4TransfLitrHeter(NGL,K)
ENDIF
if(micstt%Lay==2)then
write(214,*)'NH4trnsh',NGL,K,RNH4TransfSoilHeter(NGL,K)
endif
naqfdiag%tRCO2MicrbProd = naqfdiag%tRCO2MicrbProd+RCO2ProdHeter(NGL,K)
naqfdiag%tRCH4MicrbProd = naqfdiag%tRCH4MicrbProd+RCH4ProdHeter(NGL,K)
naqfdiag%tRNOxMicrbRedux = naqfdiag%tRNOxMicrbRedux+RNOxReduxRespDenitLim(NGL,K)
Expand Down Expand Up @@ -2176,6 +2192,9 @@ subroutine AggregateTransfOMBioResdue(micfor,micstt,nmicdiag,naqfdiag,nmicf,ncpl
naqfdiag%tRH2PO4MicrbTransfBand = naqfdiag%tRH2PO4MicrbTransfBand+RH2PO4TransfBandAutor(NGL)
naqfdiag%tRH1PO4MicrbTransfBand = naqfdiag%tRH1PO4MicrbTransfBand+RH1PO4TransfBandAutor(NGL)
naqfdiag%TFixN2 = naqfdiag%TFixN2+RN2FixAutor(NGL)
if(micstt%Lay==2)then
write(214,*)'NH4trnsa',NGL,RNH4TransfSoilAutor(NGL)
endif
IF(Lsurf)THEN
naqfdiag%tRNH4MicrbTransfSoil = naqfdiag%tRNH4MicrbTransfSoil+RNH4TransfLitrAutor(NGL)
naqfdiag%tRNO3MicrbTransfSoil = naqfdiag%tRNO3MicrbTransfSoil+RNO3TransfLitrAutor(NGL)
Expand Down Expand Up @@ -2311,18 +2330,29 @@ subroutine AggregateTransfOMBioResdue(micfor,micstt,nmicdiag,naqfdiag,nmicf,ncpl
RNO3MicbTransfBand=-naqfdiag%tRNO3MicrbTransfBand-naqfdiag%TReduxNO3Band+RNO3ProdBandChemo
RNO2MicbTransfBand=naqfdiag%TReduxNO3Band-naqfdiag%TReduxNO2Band-RNO2ReduxBandChemo


write(*,*)'NO3',naqfdiag%tRNO3MicrbTransfSoil,naqfdiag%TReduxNO3Soil,RNO3ProdSoilChemo
if(micstt%Lay==2)then
write(118,*)'NO2',naqfdiag%TReduxNO3Soil,-naqfdiag%TReduxNO2Soil,-RNO2ReduxSoilChemo
write(211,*)'NH41',-naqfdiag%tRNH4MicrbTransfSoil
endif

!mid_AmmoniaOxidBacter=1, mid_NitriteOxidBacter=2, mid_AerobicMethanotrofBacter=3
DO NGL=JGniA(mid_AmmoniaOxidBacter),JGnfA(mid_AmmoniaOxidBacter)
RNH4MicbTransfSoil=RNH4MicbTransfSoil-RSOxidSoilAutor(NGL)
RNO2MicbTransfSoil=RNO2MicbTransfSoil+RSOxidSoilAutor(NGL)
RNH4MicbTransfBand=RNH4MicbTransfBand-RSOxidBandAutor(NGL)

if(micstt%Lay==2)then
write(118,*)'NGL',NGL,RSOxidSoilAutor(NGL)
write(211,*)'nauto',-RSOxidSoilAutor(NGL)
endif
ENDDO
DO NGL=JGniA(mid_NitriteOxidBacter),JGnfA(mid_NitriteOxidBacter)
RNO3MicbTransfSoil=RNO3MicbTransfSoil+RSOxidSoilAutor(NGL)
RNO2MicbTransfSoil=RNO2MicbTransfSoil-RSOxidSoilAutor(NGL)
RNO3MicbTransfBand=RNO3MicbTransfBand+RSOxidBandAutor(NGL)
RNO2MicbTransfBand=RNO2MicbTransfBand-RSOxidBandAutor(NGL)
if(micstt%Lay==2)write(118,*)'ngl no3, no2',-RSOxidSoilAutor(NGL)
ENDDO

RH2PO4MicbTransfBand = -naqfdiag%tRH2PO4MicrbTransfBand
Expand Down Expand Up @@ -2791,7 +2821,6 @@ subroutine AnaerobAcetogenCatabolism(NGL,N,K,TSensGrowth,WatStressMicb,FOQC,ECHZ
! RFOMP=O2-unlimited respiration of DOC
! ROQC4HeterMicrobAct=microbial respiration used to represent microbial activity
!

OXYI = 1.0_r8-1.0_r8/(1.0_r8+EXP(1.0_r8*AMAX1(-COXYS+2.5_r8,-50._r8)))
FSBST = CDOM(idom_doc,K)/(CDOM(idom_doc,K)+OQKM)*OXYI
RGOFY = AZMAX1(FBiomStoiScalarHeter(NGL,K)*VMXF*WatStressMicb*OMActHeter(NGL,K))
Expand Down Expand Up @@ -3445,7 +3474,15 @@ subroutine BiomassMineralization(NGL,N,K,FNH4X, &
RNH4DmndBandHeter(NGL,K) = 0.0_r8
RNH4TransfSoilHeter(NGL,K) = RINHP*FNH4S
RNH4TransfBandHeter(NGL,K) = RINHP*FNHBS
if(micstt%Lay==1)then
write(234,*)'realNH4',NGL,K, RINHP,FNH4S,mBiomeHeter(ielmc,MID3,K),rNCOMC(3,NGL,K),mBiomeHeter(ielmn,MID3,K)/mBiomeHeter(ielmc,MID3,K)
elseif(micstt%Lay==2)then
write(235,*)'realNH4',NGL,K, RINHP,FNH4S,mBiomeHeter(ielmc,MID3,K),rNCOMC(3,NGL,K),mBiomeHeter(ielmn,MID3,K)/mBiomeHeter(ielmc,MID3,K)
elseif(micstt%Lay==3)then
write(236,*)'realNH4',NGL,K, RINHP,FNH4S,mBiomeHeter(ielmc,MID3,K),rNCOMC(3,NGL,K),mBiomeHeter(ielmn,MID3,K)/mBiomeHeter(ielmc,MID3,K)
endif
ENDIF

NetNH4Mineralize=NetNH4Mineralize+(RNH4TransfSoilHeter(NGL,K)+RNH4TransfBandHeter(NGL,K))
!
! MINERALIZATION-IMMOBILIZATION OF NO3 IN SOIL FROM MICROBIAL
Expand Down
1 change: 1 addition & 0 deletions f90src/Microbial_bgc/Box_Micmodel/MicStateTraitTypeMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ module MicStateTraitTypeMod
real(r8) :: TSolidOMActC
real(r8) :: TSolidOMC
real(r8) :: tOMActC
integer :: Lay
real(r8),allocatable :: FracBulkSOMC(:)
real(r8),allocatable :: DOM(:,:)
real(r8),allocatable :: SorbedOM(:,:)
Expand Down
3 changes: 2 additions & 1 deletion f90src/Modelforc/Hour1Mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1554,7 +1554,7 @@ subroutine ApplyFertilizerAtNoon(I,J,NHW,NHE,NVN,NVS)
D8990: DO NX=NHW,NHE
D8995: DO NY=NVN,NVS
IF(J.EQ.INT(SolarNoonHour_col(NY,NX)))THEN
if(lverb)write(iulog,*)'ApplyMineralFertilizer'
write(114,*)'ApplyMineralFertilizer'
call ApplyMineralFertilizer(I,J,NY,NX,LFDPTH,OFC,OFN,OFP)
!
! SOIL LAYER NUMBER IN WHICH PLANT OR ANIMAL RESIDUES ARE APPLIED
Expand Down Expand Up @@ -2005,6 +2005,7 @@ subroutine ApplyMineralFertilizer(I,J,NY,NX,LFDPTH,OFC,OFN,OFP)
ENDIF
ENDDO D65
ENDIF
write(114,*)'aaplyfert',LFDPTH
BAREF=1.0_r8-CVRDF
!
! RESET WIDTH AND DEPTH OF NH4 FERTILIZER BAND IF NEW BAND
Expand Down
5 changes: 5 additions & 0 deletions f90src/Transport/Nonsalt/BoundaryTranspMod.F90
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
module BoundaryTranspMod
use data_kind_mod, only: r8 => DAT_KIND_R8
use abortutils, only: endrun
use minimathmod, only: isclose, AZMAX1
use TracerPropMod, only: MolecularWeight
use ClimForcDataType
Expand Down Expand Up @@ -367,6 +368,10 @@ subroutine BoundaryRunoffandSnowZM(M,N,NN,M1,M2,M3,M4,M5,M6)
DO ids=ids_beg,ids_end
trcs_TransptMicP_3D(ids,N,M6,M5,M4)=trcs_TransptMicP_3D(ids,N,M6,M5,M4)+trcs_MicpTranspFlxM_3D(ids,N,M6,M5,M4)
trcs_TransptMacP_3D(ids,N,M6,M5,M4)=trcs_TransptMacP_3D(ids,N,M6,M5,M4)+trcs_MacpTranspFlxM_3D(ids,N,M6,M5,M4)
if(abs(trcs_TransptMicP_3D(ids,N,M6,M5,M4))>1.e10)then
write(*,*)ids,N,M6,M5,M4,trcs_MicpTranspFlxM_3D(ids,N,M6,M5,M4)
call endrun(trim(mod_filename)//' at line',__LINE__)
endif
ENDDO

end subroutine BoundaryRunoffandSnowZM
Expand Down
19 changes: 18 additions & 1 deletion f90src/Transport/Nonsalt/InsideTranspMod.F90
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module InsideTranspMod
use data_kind_mod, only: r8 => DAT_KIND_R8
use abortutils, only: destroy
use abortutils, only: destroy,endrun
use minimathmod, only: safe_adb, AZMAX1, AZMIN1
use TracerPropMod, only: MolecularWeight
use DebugToolMod
Expand Down Expand Up @@ -191,6 +191,10 @@ subroutine ResetFluxAccumulatorsMM(I,J,M,NY,NX,MX)
! include NH3 and band nutrients
DO ids=ids_nuts_beg,ids_nuts_end
trcs_solml2_vr(ids,L,NY,NX)=trcs_solml2_vr(ids,L,NY,NX)-RBGCSinkSoluteM_vr(ids,L,NY,NX)
if(abs(trcs_solml2_vr(ids,L,NY,NX))>1.e10)then
write(*,*)ids,L,NY,NX,trcs_solml2_vr(ids,L,NY,NX),RBGCSinkSoluteM_vr(ids,L,NY,NX)
call endrun(trim(mod_filename)//' at line',__LINE__)
endif
ENDDO
!add oxygen uptake here
RBGCSinkGasMM_vr(idg_O2,L,NY,NX)=RO2UptkSoilM_vr(M,L,NY,NX)*dt_GasCyc
Expand Down Expand Up @@ -404,6 +408,11 @@ subroutine MicroporeSoluteAdvectionM(M,N,N1,N2,N3,N4,N5,N6,DOM_Adv2MicP_flx)

DO ids=ids_beg,ids_end
trcs_MicpTranspFlxM_3D(ids,N,N6,N5,N4)=trcs_adv_flx(ids)
if(abs(trcs_MicpTranspFlxM_3D(ids,N,N6,N5,N4))>1.e10)then
write(*,*)ids,N,N6,N5,N4,trcs_adv_flx(ids)
write(*,*)VFLW,trcs_solml2_vr(ids,N6,N5,N4),trcs_solml2_vr(ids,N3,N2,N1)
call endrun(trim(mod_filename)//' at line',__LINE__)
endif
ENDDO

end subroutine MicroporeSoluteAdvectionM
Expand Down Expand Up @@ -618,6 +627,10 @@ subroutine MicroporeSoluteDiffusionM(M,N,N1,N2,N3,N4,N5,N6,THETW1_vr,DOM_Difus_M

DO ids=ids_beg,ids_end
trcs_MicpTranspFlxM_3D(ids,N,N6,N5,N4)=trcs_MicpTranspFlxM_3D(ids,N,N6,N5,N4)+SDifFlx(ids)
if(abs(trcs_MicpTranspFlxM_3D(ids,N,N6,N5,N4))>1.e10)then
write(*,*)ids,N,N6,N5,N4,trcs_MicpTranspFlxM_3D(ids,N,N6,N5,N4),SDifFlx(ids)
call endrun(trim(mod_filename)//' at line',__LINE__)
endif
ENDDO

end subroutine MicroporeSoluteDiffusionM
Expand Down Expand Up @@ -1018,6 +1031,10 @@ subroutine SoluteAdvDifusTranspM(M,N,N1,N2,N3,N4,N5,N6)
DO ids=ids_beg,ids_end
trcs_TransptMicP_3D(ids,N,N6,N5,N4)=trcs_TransptMicP_3D(ids,N,N6,N5,N4)+trcs_MicpTranspFlxM_3D(ids,N,N6,N5,N4)
trcs_TransptMacP_3D(ids,N,N6,N5,N4)=trcs_TransptMacP_3D(ids,N,N6,N5,N4)+trcs_MacpTranspFlxM_3D(ids,N,N6,N5,N4)
if(abs(trcs_TransptMicP_3D(ids,N,N6,N5,N4))>1.e10)then
write(*,*)ids,N,N6,N5,N4,trcs_MicpTranspFlxM_3D(ids,N,N6,N5,N4)
call endrun(trim(mod_filename)//' at line',__LINE__)
endif
ENDDO

end subroutine SoluteAdvDifusTranspM
Expand Down
14 changes: 12 additions & 2 deletions f90src/Transport/Nonsalt/TranspNoSaltMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module TranspNoSaltMod
! Description:
!
use data_kind_mod, only: r8 => DAT_KIND_R8
use abortutils, only: destroy
use abortutils, only: destroy,endrun
USE MiniMathMod, ONLY: AZMAX1, fixnegmass, flux_mass_limiter
use TracerPropMod, only: MolecularWeight
use EcoSiMParDataMod, only: micpar
Expand Down Expand Up @@ -357,6 +357,12 @@ subroutine UpdateSoilTracersMM(I,J,M,MX,NY,NX,trcsol_Irrig_flxM_vr)

trcs_solml2_vr(ids,L,NY,NX) = trcs_solml2_vr(ids,L,NY,NX)+trcs_Mac2MicPore_flxM_vr(ids,L,NY,NX)
trcs_soHml2_vr(ids,L,NY,NX) = trcs_soHml2_vr(ids,L,NY,NX)-trcs_Mac2MicPore_flxM_vr(ids,L,NY,NX)
if(abs(trcs_solml2_vr(ids,L,NY,NX))>1.e10)then
write(*,*)ids,L,NY,NX
write(*,*)trcs_solml2_vr(ids,L,NY,NX),trcs_Transp2Micp_flxM_vr(ids,L,NY,NX),&
trcs_Mac2MicPore_flxM_vr(ids,L,NY,NX)
call endrun(trim(mod_filename)//' at line',__LINE__)
endif
ENDDO
ENDIF
ENDDO
Expand Down Expand Up @@ -632,7 +638,11 @@ subroutine ImportFluxFromOtherModules(I,NY,NX,trcsol_Irrig_flxM_vr)
RBGCSinkSoluteM_vr(ids_NO2,L,NY,NX) = (-RNut_MicbRelease_vr(ids_NO2,L,NY,NX)-trcn_GeoChem_soil_vr(ids_NO2,L,NY,NX))*dts_HeatWatTP
RBGCSinkSoluteM_vr(ids_H2PO4,L,NY,NX) = (-RNut_MicbRelease_vr(ids_H2PO4,L,NY,NX)-trcn_GeoChem_soil_vr(ids_H2PO4,L,NY,NX)+trcs_plant_uptake_vr(ids_H2PO4,L,NY,NX))*dts_HeatWatTP
RBGCSinkSoluteM_vr(ids_H1PO4,L,NY,NX) = (-RNut_MicbRelease_vr(ids_H1PO4,L,NY,NX)-trcn_GeoChem_soil_vr(ids_H1PO4,L,NY,NX)+trcs_plant_uptake_vr(ids_H1PO4,L,NY,NX))*dts_HeatWatTP

if(L<=3)then
write(115,*)L,NY,NX,ids_NH4,RBGCSinkSoluteM_vr(ids_NH4,L,NY,NX),RNut_MicbRelease_vr(ids_NH4,L,NY,NX),trcn_GeoChem_soil_vr(ids_NH4,L,NY,NX),trcs_plant_uptake_vr(ids_NH4,L,NY,NX)
write(116,*)L,NY,NX,ids_NO3,RBGCSinkSoluteM_vr(ids_NO3,L,NY,NX),RNut_MicbRelease_vr(ids_NO3,L,NY,NX),trcn_GeoChem_soil_vr(ids_NO3,L,NY,NX),trcs_plant_uptake_vr(ids_NO3,L,NY,NX)
write(117,*)L,NY,NX,ids_NO2,RBGCSinkSoluteM_vr(ids_NO2,L,NY,NX),RNut_MicbRelease_vr(ids_NO2,L,NY,NX),trcn_GeoChem_soil_vr(ids_NO2,L,NY,NX)
endif
RBGCSinkSoluteM_vr(ids_NH4B,L,NY,NX) = (-RNut_MicbRelease_vr(ids_NH4B,L,NY,NX)-trcn_RChem_band_soil_vr(ids_NH4B,L,NY,NX)+trcs_plant_uptake_vr(ids_NH4B,L,NY,NX))*dts_HeatWatTP
RBGCSinkSoluteM_vr(idg_NH3B,L,NY,NX) = (-trcn_RChem_band_soil_vr(idg_NH3B,L,NY,NX)+trcs_plant_uptake_vr(idg_NH3B,L,NY,NX))*dts_HeatWatTP
RBGCSinkSoluteM_vr(ids_NO3B,L,NY,NX) = (-RNut_MicbRelease_vr(ids_NO3B,L,NY,NX)-trcn_RChem_band_soil_vr(ids_NO3B,L,NY,NX)+trcs_plant_uptake_vr(ids_NO3B,L,NY,NX))*dts_HeatWatTP
Expand Down

0 comments on commit 514c3da

Please sign in to comment.