- Timestamp:
- 2020-01-27T15:31:53+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zflx.F90
r12258 r12340 52 52 REAL(wp) :: xconv = 0.01_wp / 3600._wp !: coefficients for conversion 53 53 54 !! * Substitutions 55 # include "do_loop_substitute.h90" 54 56 !!---------------------------------------------------------------------- 55 57 !! NEMO/TOP 4.0 , NEMO Consortium (2018) … … 107 109 IF( l_co2cpl ) satmco2(:,:) = atm_co2(:,:) 108 110 109 DO jj = 1, jpj 110 DO ji = 1, jpi 111 ! DUMMY VARIABLES FOR DIC, H+, AND BORATE 112 zfact = rhop(ji,jj,1) / 1000. + rtrn 113 zdic = tr(ji,jj,1,jpdic,Kbb) 114 zph = MAX( hi(ji,jj,1), 1.e-10 ) / zfact 115 ! CALCULATE [H2CO3] 116 zh2co3(ji,jj) = zdic/(1. + ak13(ji,jj,1)/zph + ak13(ji,jj,1)*ak23(ji,jj,1)/zph**2) 117 END DO 118 END DO 111 DO_2D_11_11 112 ! DUMMY VARIABLES FOR DIC, H+, AND BORATE 113 zfact = rhop(ji,jj,1) / 1000. + rtrn 114 zdic = tr(ji,jj,1,jpdic,Kbb) 115 zph = MAX( hi(ji,jj,1), 1.e-10 ) / zfact 116 ! CALCULATE [H2CO3] 117 zh2co3(ji,jj) = zdic/(1. + ak13(ji,jj,1)/zph + ak13(ji,jj,1)*ak23(ji,jj,1)/zph**2) 118 END_2D 119 119 120 120 ! -------------- … … 125 125 ! ------------------------------------------- 126 126 127 DO jj = 1, jpj 128 DO ji = 1, jpi 129 ztc = MIN( 35., ts(ji,jj,1,jp_tem,Kmm) ) 130 ztc2 = ztc * ztc 131 ztc3 = ztc * ztc2 132 ztc4 = ztc2 * ztc2 133 ! Compute the schmidt Number both O2 and CO2 134 zsch_co2 = 2116.8 - 136.25 * ztc + 4.7353 * ztc2 - 0.092307 * ztc3 + 0.0007555 * ztc4 135 zsch_o2 = 1920.4 - 135.6 * ztc + 5.2122 * ztc2 - 0.109390 * ztc3 + 0.0009377 * ztc4 136 ! wind speed 137 zws = wndm(ji,jj) * wndm(ji,jj) 138 ! Compute the piston velocity for O2 and CO2 139 zkgwan = 0.251 * zws 140 zkgwan = zkgwan * xconv * ( 1.- fr_i(ji,jj) ) * tmask(ji,jj,1) 141 ! compute gas exchange for CO2 and O2 142 zkgco2(ji,jj) = zkgwan * SQRT( 660./ zsch_co2 ) 143 zkgo2 (ji,jj) = zkgwan * SQRT( 660./ zsch_o2 ) 144 END DO 145 END DO 146 147 148 DO jj = 1, jpj 149 DO ji = 1, jpi 150 ztkel = tempis(ji,jj,1) + 273.15 151 zsal = salinprac(ji,jj,1) + ( 1.- tmask(ji,jj,1) ) * 35. 152 zvapsw = EXP(24.4543 - 67.4509*(100.0/ztkel) - 4.8489*LOG(ztkel/100) - 0.000544*zsal) 153 zpco2atm(ji,jj) = satmco2(ji,jj) * ( patm(ji,jj) - zvapsw ) 154 zxc2 = ( 1.0 - zpco2atm(ji,jj) * 1E-6 )**2 155 zfugcoeff = EXP( patm(ji,jj) * (chemc(ji,jj,2) + 2.0 * zxc2 * chemc(ji,jj,3) ) & 156 & / ( 82.05736 * ztkel )) 157 zfco2 = zpco2atm(ji,jj) * zfugcoeff 158 159 ! Compute CO2 flux for the sea and air 160 zfld = zfco2 * chemc(ji,jj,1) * zkgco2(ji,jj) ! (mol/L) * (m/s) 161 zflu = zh2co3(ji,jj) * zkgco2(ji,jj) ! (mol/L) (m/s) ? 162 oce_co2(ji,jj) = ( zfld - zflu ) * tmask(ji,jj,1) 163 ! compute the trend 164 tr(ji,jj,1,jpdic,Krhs) = tr(ji,jj,1,jpdic,Krhs) + oce_co2(ji,jj) * rfact2 / e3t(ji,jj,1,Kmm) 165 166 ! Compute O2 flux 167 zfld16 = patm(ji,jj) * chemo2(ji,jj,1) * zkgo2(ji,jj) ! (mol/L) * (m/s) 168 zflu16 = tr(ji,jj,1,jpoxy,Kbb) * zkgo2(ji,jj) 169 zoflx(ji,jj) = ( zfld16 - zflu16 ) * tmask(ji,jj,1) 170 tr(ji,jj,1,jpoxy,Krhs) = tr(ji,jj,1,jpoxy,Krhs) + zoflx(ji,jj) * rfact2 / e3t(ji,jj,1,Kmm) 171 END DO 172 END DO 127 DO_2D_11_11 128 ztc = MIN( 35., ts(ji,jj,1,jp_tem,Kmm) ) 129 ztc2 = ztc * ztc 130 ztc3 = ztc * ztc2 131 ztc4 = ztc2 * ztc2 132 ! Compute the schmidt Number both O2 and CO2 133 zsch_co2 = 2116.8 - 136.25 * ztc + 4.7353 * ztc2 - 0.092307 * ztc3 + 0.0007555 * ztc4 134 zsch_o2 = 1920.4 - 135.6 * ztc + 5.2122 * ztc2 - 0.109390 * ztc3 + 0.0009377 * ztc4 135 ! wind speed 136 zws = wndm(ji,jj) * wndm(ji,jj) 137 ! Compute the piston velocity for O2 and CO2 138 zkgwan = 0.251 * zws 139 zkgwan = zkgwan * xconv * ( 1.- fr_i(ji,jj) ) * tmask(ji,jj,1) 140 ! compute gas exchange for CO2 and O2 141 zkgco2(ji,jj) = zkgwan * SQRT( 660./ zsch_co2 ) 142 zkgo2 (ji,jj) = zkgwan * SQRT( 660./ zsch_o2 ) 143 END_2D 144 145 146 DO_2D_11_11 147 ztkel = tempis(ji,jj,1) + 273.15 148 zsal = salinprac(ji,jj,1) + ( 1.- tmask(ji,jj,1) ) * 35. 149 zvapsw = EXP(24.4543 - 67.4509*(100.0/ztkel) - 4.8489*LOG(ztkel/100) - 0.000544*zsal) 150 zpco2atm(ji,jj) = satmco2(ji,jj) * ( patm(ji,jj) - zvapsw ) 151 zxc2 = ( 1.0 - zpco2atm(ji,jj) * 1E-6 )**2 152 zfugcoeff = EXP( patm(ji,jj) * (chemc(ji,jj,2) + 2.0 * zxc2 * chemc(ji,jj,3) ) & 153 & / ( 82.05736 * ztkel )) 154 zfco2 = zpco2atm(ji,jj) * zfugcoeff 155 156 ! Compute CO2 flux for the sea and air 157 zfld = zfco2 * chemc(ji,jj,1) * zkgco2(ji,jj) ! (mol/L) * (m/s) 158 zflu = zh2co3(ji,jj) * zkgco2(ji,jj) ! (mol/L) (m/s) ? 159 oce_co2(ji,jj) = ( zfld - zflu ) * tmask(ji,jj,1) 160 ! compute the trend 161 tr(ji,jj,1,jpdic,Krhs) = tr(ji,jj,1,jpdic,Krhs) + oce_co2(ji,jj) * rfact2 / e3t(ji,jj,1,Kmm) 162 163 ! Compute O2 flux 164 zfld16 = patm(ji,jj) * chemo2(ji,jj,1) * zkgo2(ji,jj) ! (mol/L) * (m/s) 165 zflu16 = tr(ji,jj,1,jpoxy,Kbb) * zkgo2(ji,jj) 166 zoflx(ji,jj) = ( zfld16 - zflu16 ) * tmask(ji,jj,1) 167 tr(ji,jj,1,jpoxy,Krhs) = tr(ji,jj,1,jpoxy,Krhs) + zoflx(ji,jj) * rfact2 / e3t(ji,jj,1,Kmm) 168 END_2D 173 169 174 170 IF( iom_use("tcflx") .OR. iom_use("tcflxcum") .OR. kt == nitrst &
Note: See TracChangeset
for help on using the changeset viewer.