Sea surface pressure

Dear users of Croco, I would like to ask a question. When BULK_FLUX and ONLINE are enabled, is sea surface pressure used? First of all, my ERA5_request has not downloaded any nc files related to pressure. So, logically speaking, the model should not have used pressure. However, I saw the pair part in line 779-830 of the source code bulk_flux.F. So, is this used? If not used, then there is no pressure field in the model. Wouldn’t that cause significant problems with water levels and sea levels?

!======================================================================
! EXTERNAL FUNCTIONS
!======================================================================

!=======================================================================
! Compute specific humidity from relative humidity
!=======================================================================
FUNCTION spec_hum (RH,psfc,TairC)
!$acc routine(spec_hum) seq
IMPLICIT NONE

include “params_bulk.h”

  REAL       ::  RH   , spec_hum , cff
  REAL       ::  psfc, TairC

!$acc declare create( RH,psfc,TairC )
! !++ Compute air saturation vapor pressure (mb), using Teten formula.
cff=(1.0007+3.46e-60.01psfc)6.1121
& exp(17.502TairC/(240.97+TairC))
!++ Compute specific humidity, Q (kg/kg).
IF (RH.lt.2.0) then ! RH fraction
cff=cff
RH ! Vapor pres (mb)
spec_hum=MvoMa*(cff/(psfc0.01-0.378cff)) ! Spec hum (kg/kg)
ELSE !RH input was actually specific humidity in g/kg
spec_hum=0.001*RH ! Spec Hum (kg/kg)
ENDIF
END FUNCTION spec_hum
!=======================================================================
! Compute Exner function from absolute air temperature
!=======================================================================
SUBROUTINE exner_patm_from_tairabs (iexn,pair,q,tairabs,z,psfc)
!$acc routine(exner_patm_from_tairabs) seq
IMPLICIT NONE

include “params_bulk.h”

  REAL,INTENT(  out)   :: iexn,pair
  REAL,INTENT(in   )   :: q, tairabs, z, psfc

!++ Local variable declarations.
REAL :: xm,q_sat,qsat
REAL, PARAMETER :: g = 9.80665
INTEGER :: iter
INTEGER, PARAMETER :: Niter = 3
!
pair = psfc
!$acc loop seq
DO Iter = 1, Niter
q_sat = qsat(tairabs, pair, 1.)
xm = mm_dryair + (q/q_sat) * ( mm_water - mm_dryair )
pair = psfc * EXP( -g * xm * z / ( r_gas * tairabs ) )
#ifdef OPENACCNUMERIC
pair=real(pair,kind=4)
#endif
ENDDO
iexn = (pair*ip00)**(-rdocpd)
!
return
END SUBROUTINE exner_patm_from_tairabs

After my inspection, I found that I had not enabled READ_PATM and OBC_PATM, so I wouldn’t be using atmospheric pressure. However, when I read the posts of other scholars, I discovered that even if these two options were enabled, an error would occur because there were no nc files related to pressure downloaded in ERA5. So, how should this be resolved?

1 Like