diff --git a/components/data_comps/docn/docn_comp_mod.F90 b/components/data_comps/docn/docn_comp_mod.F90 index 6ee917f6d00..71bfbe0490d 100644 --- a/components/data_comps/docn/docn_comp_mod.F90 +++ b/components/data_comps/docn/docn_comp_mod.F90 @@ -547,6 +547,8 @@ subroutine docn_comp_run( EClock, cdata, x2o, o2x) integer(IN) :: nflds_x2o type(seq_infodata_type), pointer :: infodata + real(R8), parameter :: swp = 0.67_R8*(exp((-1._R8*shr_const_zsrflyr) & + /1.0_R8)) + 0.33_R8*exp((-1._R8*shr_const_zsrflyr)/17.0_R8) character(*), parameter :: F00 = "('(docn_comp_run) ',8a)" character(*), parameter :: F04 = "('(docn_comp_run) ',2a,2i8,'s')" character(*), parameter :: subName = "(docn_comp_run) " @@ -570,7 +572,7 @@ subroutine docn_comp_run( EClock, cdata, x2o, o2x) call seq_timemgr_EClockGetData( EClock, curr_ymd=CurrentYMD, curr_tod=CurrentTOD) call seq_timemgr_EClockGetData( EClock, curr_yr=yy, curr_mon=mm, curr_day=dd) call seq_timemgr_EClockGetData( EClock, dtime=idt) - dt = idt * 1.0_r8 + dt = idt * 1.0_R8 write_restart = seq_timemgr_RestartAlarmIsOn(EClock) call t_stopf('docn_run1') @@ -608,13 +610,12 @@ subroutine docn_comp_run( EClock, cdata, x2o, o2x) do n = 1,lsize o2x%rAttr(kt ,n) = TkFrz o2x%rAttr(ks ,n) = ocnsalt - o2x%rAttr(ku ,n) = 0.0_r8 - o2x%rAttr(kv ,n) = 0.0_r8 - o2x%rAttr(kdhdx,n) = 0.0_r8 - o2x%rAttr(kdhdy,n) = 0.0_r8 - o2x%rAttr(kq ,n) = 0.0_r8 - o2x%rAttr(kswp ,n) = 0.67_R8*(exp((-1._R8*shr_const_zsrflyr)/1.0_R8)) + & - 0.33_R8*exp((-1._R8*shr_const_zsrflyr)/17.0_R8) + o2x%rAttr(ku ,n) = 0.0_R8 + o2x%rAttr(kv ,n) = 0.0_R8 + o2x%rAttr(kdhdx,n) = 0.0_R8 + o2x%rAttr(kdhdy,n) = 0.0_R8 + o2x%rAttr(kq ,n) = 0.0_R8 + o2x%rAttr(kswp ,n) = swp enddo !--- copy streams to o2x --- @@ -643,13 +644,12 @@ subroutine docn_comp_run( EClock, cdata, x2o, o2x) do n = 1,lsize o2x%rAttr(kt ,n) = o2x%rAttr(kt,n) + TkFrz o2x%rAttr(ks ,n) = ocnsalt - o2x%rAttr(ku ,n) = 0.0_r8 - o2x%rAttr(kv ,n) = 0.0_r8 - o2x%rAttr(kdhdx,n) = 0.0_r8 - o2x%rAttr(kdhdy,n) = 0.0_r8 - o2x%rAttr(kq ,n) = 0.0_r8 - o2x%rAttr(kswp ,n) = 0.67_R8*(exp((-1._R8*shr_const_zsrflyr)/1.0_R8)) + & - 0.33_R8*exp((-1._R8*shr_const_zsrflyr)/17.0_R8) + o2x%rAttr(ku ,n) = 0.0_R8 + o2x%rAttr(kv ,n) = 0.0_R8 + o2x%rAttr(kdhdx,n) = 0.0_R8 + o2x%rAttr(kdhdy,n) = 0.0_R8 + o2x%rAttr(kq ,n) = 0.0_R8 + o2x%rAttr(kswp ,n) = swp enddo case('SOM') @@ -663,7 +663,7 @@ subroutine docn_comp_run( EClock, cdata, x2o, o2x) somtp(n) = o2x%rAttr(kt,n) + TkFrz endif o2x%rAttr(kt,n) = somtp(n) - o2x%rAttr(kq,n) = 0.0_r8 + o2x%rAttr(kq,n) = 0.0_R8 enddo else ! firstcall do n = 1,lsize diff --git a/driver_cpl/driver/seq_flux_mct.F90 b/driver_cpl/driver/seq_flux_mct.F90 index d025e399884..104c5767898 100644 --- a/driver_cpl/driver/seq_flux_mct.F90 +++ b/driver_cpl/driver/seq_flux_mct.F90 @@ -139,26 +139,26 @@ module seq_flux_mct integer :: index_xao_So_ssq integer :: index_xao_So_duu10n integer :: index_xao_So_u10 - integer :: index_xao_So_fswpen ! NEW, Bill Large - integer :: index_xao_So_warm_diurn ! NEW, Bill Large - integer :: index_xao_So_salt_diurn ! NEW, Bill Large - integer :: index_xao_So_speed_diurn ! NEW, Bill Large - integer :: index_xao_So_regime_diurn ! NEW, Bill Large - integer :: index_xao_So_tskin_diurn ! NEW, Bill Large - integer :: index_xao_So_tskin_day_diurn ! NEW, Bill Large - integer :: index_xao_So_tskin_night_diurn ! NEW, Bill Large - integer :: index_xao_So_cskin_diurn ! NEW, Bill Large - integer :: index_xao_So_cskin_night_diurn ! NEW, Bill Large - integer :: index_xao_So_tbulk_diurn ! NEW, Bill Large - integer :: index_xao_So_warmmax_diurn ! NEW, Bill Large - integer :: index_xao_So_windmax_diurn ! NEW, Bill Large - integer :: index_xao_So_qsolavg_diurn ! NEW, Bill Large - integer :: index_xao_So_windavg_diurn ! NEW, Bill Large - integer :: index_xao_So_warmmaxinc_diurn ! NEW, Bill Large - integer :: index_xao_So_windmaxinc_diurn ! NEW, Bill Large - integer :: index_xao_So_qsolinc_diurn ! NEW, Bill Large - integer :: index_xao_So_windinc_diurn ! NEW, Bill Large - integer :: index_xao_So_ninc_diurn ! NEW, Bill Large + integer :: index_xao_So_fswpen + integer :: index_xao_So_warm_diurn + integer :: index_xao_So_salt_diurn + integer :: index_xao_So_speed_diurn + integer :: index_xao_So_regime_diurn + integer :: index_xao_So_tskin_diurn + integer :: index_xao_So_tskin_day_diurn + integer :: index_xao_So_tskin_night_diurn + integer :: index_xao_So_cskin_diurn + integer :: index_xao_So_cskin_night_diurn + integer :: index_xao_So_tbulk_diurn + integer :: index_xao_So_warmmax_diurn + integer :: index_xao_So_windmax_diurn + integer :: index_xao_So_qsolavg_diurn + integer :: index_xao_So_windavg_diurn + integer :: index_xao_So_warmmaxinc_diurn + integer :: index_xao_So_windmaxinc_diurn + integer :: index_xao_So_qsolinc_diurn + integer :: index_xao_So_windinc_diurn + integer :: index_xao_So_ninc_diurn character(len=16) :: fluxsetting = 'unknown' character(len=*),parameter :: fluxsetting_atmocn = 'atmocn' @@ -1303,19 +1303,19 @@ subroutine seq_flux_atmocn_mct(infodata, tod, dt, a2x, o2x, xao) warmMaxInc, windMaxInc, qSolInc, windInc, nInc, & tbulk, tskin, tskin_day, tskin_night, & cskin, cskin_night, tod, dt, & + duu10n,ustar, re , ssq) !missval should not be needed if flux calc !consistent with mrgx2a fraction !duu10n,ustar, re , ssq, missval = 0.0_r8 ) - duu10n,ustar, re , ssq) else call shr_flux_atmocn (nloc , zbot , ubot, vbot, thbot, & shum , dens , tbot, uocn, vocn , & tocn , emask, sen , lat , lwup , & evap , taux , tauy, tref, qref , & + duu10n,ustar, re , ssq) !missval should not be needed if flux calc !consistent with mrgx2a fraction !duu10n,ustar, re , ssq, missval = 0.0_r8 ) - duu10n,ustar, re , ssq) endif do n = 1,nloc