Changeset 12340 for NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/CFC
- Timestamp:
- 2020-01-27T15:31:53+01:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/CFC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/CFC/trcini_cfc.F90
r11949 r12340 24 24 REAL(wp) :: ylatn = 10. ! 10 degrees north 25 25 26 !! * Substitutions 27 # include "do_loop_substitute.h90" 26 28 !!---------------------------------------------------------------------- 27 29 !! NEMO/TOP 4.0 , NEMO Consortium (2018) … … 130 132 !--------------------------------------------------------------------------------------- 131 133 zyd = ylatn - ylats 132 DO jj = 1 , jpj 133 DO ji = 1 , jpi 134 IF( gphit(ji,jj) >= ylatn ) THEN ; xphem(ji,jj) = 1.e0 135 ELSEIF( gphit(ji,jj) <= ylats ) THEN ; xphem(ji,jj) = 0.e0 136 ELSE ; xphem(ji,jj) = ( gphit(ji,jj) - ylats) / zyd 137 ENDIF 138 END DO 139 END DO 134 DO_2D_11_11 135 IF( gphit(ji,jj) >= ylatn ) THEN ; xphem(ji,jj) = 1.e0 136 ELSEIF( gphit(ji,jj) <= ylats ) THEN ; xphem(ji,jj) = 0.e0 137 ELSE ; xphem(ji,jj) = ( gphit(ji,jj) - ylats) / zyd 138 ENDIF 139 END_2D 140 140 ! 141 141 IF(lwp) WRITE(numout,*) 'Initialization of CFC tracers done' -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/CFC/trcsms_cfc.F90
r12301 r12340 47 47 REAL(wp) :: xconv4 = 1.0e-12 ! conversion from mol/m3/atm to mol/m3/pptv 48 48 49 !! * Substitutions 50 # include "do_loop_substitute.h90" 49 51 !!---------------------------------------------------------------------- 50 52 !! NEMO/TOP 4.0 , NEMO Consortium (2018) … … 123 125 124 126 ! !------------! 125 DO jj = 1, jpj ! i-j loop ! 126 DO ji = 1, jpi !------------! 127 DO_2D_11_11 127 128 128 ! space interpolation 129 zpp_cfc = xphem(ji,jj) * zpatm(1,jl) & 130 & + ( 1.- xphem(ji,jj) ) * zpatm(2,jl) 131 132 ! Computation of concentration at equilibrium : in picomol/l 133 ! coefficient for solubility for CFC-11/12 in mol/l/atm 134 IF( tmask(ji,jj,1) .GE. 0.5 ) THEN 135 ztap = ( ts(ji,jj,1,jp_tem,Kmm) + 273.16 ) * 0.01 136 zdtap = sob(1,jl) + ztap * ( sob(2,jl) + ztap * sob(3,jl) ) 137 zsol = EXP( soa(1,jl) + soa(2,jl) / ztap + soa(3,jl) * LOG( ztap ) & 138 & + soa(4,jl) * ztap * ztap + ts(ji,jj,1,jp_sal,Kmm) * zdtap ) 139 ELSE 140 zsol = 0.e0 141 ENDIF 142 ! conversion from mol/l/atm to mol/m3/atm and from mol/m3/atm to mol/m3/pptv 143 zsol = xconv4 * xconv3 * zsol * tmask(ji,jj,1) 144 ! concentration at equilibrium 145 zca_cfc = xconv1 * zpp_cfc * zsol * tmask(ji,jj,1) 146 147 ! Computation of speed transfert 148 ! Schmidt number revised in Wanninkhof (2014) 149 zt1 = ts(ji,jj,1,jp_tem,Kmm) 150 zt2 = zt1 * zt1 151 zt3 = zt1 * zt2 152 zt4 = zt2 * zt2 153 zsch = sca(1,jl) + sca(2,jl) * zt1 + sca(3,jl) * zt2 + sca(4,jl) * zt3 + sca(5,jl) * zt4 154 155 ! speed transfert : formulae revised in Wanninkhof (2014) 156 zv2 = wndm(ji,jj) * wndm(ji,jj) 157 zsch = zsch / 660. 158 zak_cfc = ( 0.251 * xconv2 * zv2 / SQRT(zsch) ) * tmask(ji,jj,1) 159 160 ! Input function : speed *( conc. at equil - concen at surface ) 161 ! tr(:,:,:,:,Kmm) in pico-mol/l idem qtr; ak in en m/a 162 qtr_cfc(ji,jj,jl) = -zak_cfc * ( tr(ji,jj,1,jn,Kbb) - zca_cfc ) & 163 & * tmask(ji,jj,1) * ( 1. - fr_i(ji,jj) ) 164 ! Add the surface flux to the trend 165 tr(ji,jj,1,jn,Krhs) = tr(ji,jj,1,jn,Krhs) + qtr_cfc(ji,jj,jl) / e3t(ji,jj,1,Kmm) 166 167 ! cumulation of surface flux at each time step 168 qint_cfc(ji,jj,jl) = qint_cfc(ji,jj,jl) + qtr_cfc(ji,jj,jl) * rdt 169 ! !----------------! 170 END DO ! end i-j loop ! 171 END DO !----------------! 129 ! space interpolation 130 zpp_cfc = xphem(ji,jj) * zpatm(1,jl) & 131 & + ( 1.- xphem(ji,jj) ) * zpatm(2,jl) 132 133 ! Computation of concentration at equilibrium : in picomol/l 134 ! coefficient for solubility for CFC-11/12 in mol/l/atm 135 IF( tmask(ji,jj,1) .GE. 0.5 ) THEN 136 ztap = ( ts(ji,jj,1,jp_tem,Kmm) + 273.16 ) * 0.01 137 zdtap = sob(1,jl) + ztap * ( sob(2,jl) + ztap * sob(3,jl) ) 138 zsol = EXP( soa(1,jl) + soa(2,jl) / ztap + soa(3,jl) * LOG( ztap ) & 139 & + soa(4,jl) * ztap * ztap + ts(ji,jj,1,jp_sal,Kmm) * zdtap ) 140 ELSE 141 zsol = 0.e0 142 ENDIF 143 ! conversion from mol/l/atm to mol/m3/atm and from mol/m3/atm to mol/m3/pptv 144 zsol = xconv4 * xconv3 * zsol * tmask(ji,jj,1) 145 ! concentration at equilibrium 146 zca_cfc = xconv1 * zpp_cfc * zsol * tmask(ji,jj,1) 147 ! Computation of speed transfert 148 ! Schmidt number revised in Wanninkhof (2014) 149 zt1 = ts(ji,jj,1,jp_tem,Kmm) 150 zt2 = zt1 * zt1 151 zt3 = zt1 * zt2 152 zt4 = zt2 * zt2 153 zsch = sca(1,jl) + sca(2,jl) * zt1 + sca(3,jl) * zt2 + sca(4,jl) * zt3 + sca(5,jl) * zt4 154 155 ! speed transfert : formulae revised in Wanninkhof (2014) 156 zv2 = wndm(ji,jj) * wndm(ji,jj) 157 zsch = zsch / 660. 158 zak_cfc = ( 0.251 * xconv2 * zv2 / SQRT(zsch) ) * tmask(ji,jj,1) 159 160 ! Input function : speed *( conc. at equil - concen at surface ) 161 ! tr(:,:,:,:,Kmm) in pico-mol/l idem qtr; ak in en m/a 162 qtr_cfc(ji,jj,jl) = -zak_cfc * ( tr(ji,jj,1,jn,Kbb) - zca_cfc ) & 163 & * tmask(ji,jj,1) * ( 1. - fr_i(ji,jj) ) 164 ! Add the surface flux to the trend 165 tr(ji,jj,1,jn,Krhs) = tr(ji,jj,1,jn,Krhs) + qtr_cfc(ji,jj,jl) / e3t(ji,jj,1,Kmm) 166 167 ! cumulation of surface flux at each time step 168 qint_cfc(ji,jj,jl) = qint_cfc(ji,jj,jl) + qtr_cfc(ji,jj,jl) * rdt 169 ! !----------------! 170 END_2D 172 171 ! !----------------! 173 172 END DO ! end CFC loop !
Note: See TracChangeset
for help on using the changeset viewer.