Recently, I am trying to output a new diagnostics_bio variable, which is the pCO2 in the vertical of seawater using Bio_Fennel Model. And the output routine in bio_Fennel.h was added as follow:
#ifdef CARBON
!----------------------------------------------------------------------
! CALCULATING
! pCO2 at all depth
!----------------------------------------------------------------------
Do k=1,N(ng)
CALL pCO2_water_vertical (Istr, Iend, LBi, UBi, LBj, UBj, &
& IminS, ImaxS, j, DoNewton, &
# ifdef MASKING
& rmask, &
# endif
& Bio(IminS:,k,itemp), Bio(IminS:,k,isalt), &
& Bio(IminS:,k,iTIC_), Bio(IminS:,k,iTAlk), &
& Bio(IminS:,k,iPO4_), Bio(IminS:,k,iSiOH), &
& pH, pHv, pCO2v)
Do i=Istr,Iend
# ifdef DIAGNOSTICS_BIO
DiaBio3d(i,j,k,ipHsea)=DiaBio3d(i,j,k,ipHsea)+ &
# ifdef WET_DRY
& rmask_io(i,j)* &
# endif
& pHv(i)*dtdays
!
DiaBio3d(i,j,k,ipCO2ver)=pCO2v(i)
# ifdef WET_DRY
DiaBio3d(i,j,k,ipCO2ver)=pCO2v(i)*rmask_io(i,j)
# endif
# endif
END DO
#endif
I also add the dia_output variable for ipCO2ver in other Fennel_mod.h, Fennel_var.h, and so on.
After running for a month, I found the data of vertical pCO2 is very small value, about 11-30, while pH has a normal value, as shown in the uploaded file.
When I use the same subrountine to calculate the vertical pCO2 using Matlab, it shows a normal value.
What results in the wrong pCO2 value in the seawater? Was it a wrong rountine?
Problems about output vertical pCO2 into dia.nc from Fennel
-
- Posts: 10
- Joined: Tue Aug 02, 2011 5:18 am
- Location: national marine environmental forcasting center
Problems about output vertical pCO2 into dia.nc from Fennel
- Attachments
-
- pH in surface distribution from model results, value ranges from 7.8 to 8.2
- )O[P2)0ACEKR)MCEYG[FP}Q.png (89.67 KiB) Viewed 2040 times
-
- pCO2 in surface distribution from model results, value ranges from 20 to 30
- [V``UPEA(BWE9$9O7NM]7_M.png (82.64 KiB) Viewed 2040 times
Re: Problems about output vertical pCO2 into dia.nc from Fen
Hi Kent,
There is no problem. The behavior you are describing is to be expected since pCO2 is only calculated in the surface layer.
During ROMS time-stepping, knowledge of pCO2 is only required at the surface for the calculation of the air-sea CO2 flux. Since the calculation of pCO2 from DIC and alkalinity is computationally expensive, there is no point calculating it for the whole 3D field.
I would suggest you remove the code you have added. If you want to know 3D pCO2, you can easily calculate it offline from DIC and alkalinity.
Best, Katja
There is no problem. The behavior you are describing is to be expected since pCO2 is only calculated in the surface layer.
During ROMS time-stepping, knowledge of pCO2 is only required at the surface for the calculation of the air-sea CO2 flux. Since the calculation of pCO2 from DIC and alkalinity is computationally expensive, there is no point calculating it for the whole 3D field.
I would suggest you remove the code you have added. If you want to know 3D pCO2, you can easily calculate it offline from DIC and alkalinity.
Best, Katja