Changeset 1457 for trunk/NEMO/TOP_SRC/PISCES/p4zflx.F90
- Timestamp:
- 2009-05-23T10:16:38+02:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/TOP_SRC/PISCES/p4zflx.F90
r1329 r1457 23 23 USE prtctl_trc 24 24 USE p4zche 25 USE iom 25 26 26 27 USE lib_mpp … … 32 33 33 34 REAL(wp) :: & ! pre-industrial atmospheric [co2] (ppm) 34 atcox = 0.20946 , & !: 35 atcco2 = 278. !: 36 37 REAL(wp) :: & 38 tco2flx !: Total flux of carbon per year 35 atcox = 0.20946 , & !: 36 atcco2 = 278. !: 37 38 REAL(wp) :: & 39 xconv = 0.01/3600., & ! coefficients for conversion 40 tco2flx !: Total flux of carbon per year 39 41 40 42 !!* Substitution … … 58 60 INTEGER, INTENT(in) :: kt 59 61 INTEGER :: ji, jj, jrorr, nspyr 60 REAL(wp) :: zt tc, zws, zkgwan62 REAL(wp) :: ztc, ztc2, ztc3, zws, zkgwan 61 63 REAL(wp) :: zfld, zflu, zfld16, zflu16, zfact 62 REAL(wp) :: zph, zah2, zbot, zdic, zalk, zsch mitto2, zalka, zschmittco264 REAL(wp) :: zph, zah2, zbot, zdic, zalk, zsch_o2, zalka, zsch_co2 63 65 REAL(wp), DIMENSION(jpi,jpj) :: zkgco2, zkgo2, zh2co3, ztco2flx 66 #if defined key_trc_diaadd && defined key_iomput 67 REAL(wp), DIMENSION(jpi,jpj) :: zcflx, zoflx, zkg, zdelc 68 #endif 64 69 CHARACTER (len=25) :: charout 65 70 … … 120 125 !CDIR NOVERRCHK 121 126 DO ji = 1, jpi 122 123 zttc = MIN( 35., tn(ji,jj,1) ) 124 125 ! Compute the schmidt Number both O2 and CO2 126 ! ------------------------------------------ 127 128 zschmittco2 = 2073.1 - 125.62 * zttc + 3.6276 * zttc**2 - 0.043126 * zttc**3 129 zschmitto2 = 1953.4 - 128.0 * zttc + 3.9918 * zttc**2 - 0.050091 * zttc**3 130 127 ztc = MIN( 35., tn(ji,jj,1) ) 128 ztc2 = ztc * ztc 129 ztc3 = ztc * ztc2 130 ! Compute the schmidt Number both O2 and CO2 131 zsch_co2 = 2073.1 - 125.62 * ztc + 3.6276 * ztc2 - 0.043126 * ztc3 132 zsch_o2 = 1953.4 - 128.0 * ztc + 3.9918 * ztc2 - 0.050091 * ztc3 131 133 ! wind speed 132 zws = wndm(ji,jj) 133 134 ! Compute the piston velocity for O2 and CO2 135 ! ------------------------------------------ 136 137 zkgwan = ( 0.3 * zws * zws & 138 & + 2.5 * ( 0.5246 + zttc * ( 0.016256+zttc*0.00049946 ) ) ) & 134 zws = wndm(ji,jj) * wndm(ji,jj) 135 ! Compute the piston velocity for O2 and CO2 136 zkgwan = 0.3 * zws + 2.5 * ( 0.5246 + 0.016256 * ztc + 0.00049946 * ztc2 ) 139 137 # if defined key_off_degrad 140 & * facvol(ji,jj,1) & 141 # endif 142 & / (100. * 3600.)* ( 1.- fr_i(ji,jj) ) * tmask(ji,jj,1) 143 144 ! COMPUTE GAS EXCHANGE FOR CO2 145 zkgco2(ji,jj) = zkgwan * SQRT( 660./ zschmittco2 ) 146 zkgo2(ji,jj) = zkgwan * SQRT( 660./ zschmitto2 ) 147 148 END DO 149 END DO 150 151 ztco2flx(:,:) = 0. 138 zkgwan = zkgwan * xconv * ( 1.- fr_i(ji,jj) ) * tmask(ji,jj,1) * facvol(ji,jj,1) 139 #else 140 zkgwan = zkgwan * xconv * ( 1.- fr_i(ji,jj) ) * tmask(ji,jj,1) 141 #endif 142 ! compute gas exchange for CO2 and O2 143 zkgco2(ji,jj) = zkgwan * SQRT( 660./ zsch_co2 ) 144 zkgo2 (ji,jj) = zkgwan * SQRT( 660./ zsch_o2 ) 145 END DO 146 END DO 147 148 #if ! defined key_iomput 152 149 DO jj = 1, jpj 153 150 DO ji = 1, jpi … … 167 164 tra(ji,jj,1,jpoxy) = tra(ji,jj,1,jpoxy) + ( zfld16 - zflu16 ) / fse3t(ji,jj,1) 168 165 169 # if defined key_trc_diaadd 166 # if defined key_trc_diaadd 170 167 ! Save diagnostics 171 168 trc2d(ji,jj,jp_pcs0_2d ) = ( zfld - zflu ) * 1000. * tmask(ji,jj,1) … … 177 174 END DO 178 175 ! 176 #else 177 DO jj = 1, jpj 178 DO ji = 1, jpi 179 ! Compute CO2 flux for the sea and air 180 zfld = atcco2 * tmask(ji,jj,1) * chemc(ji,jj,1) * zkgco2(ji,jj) 181 zflu = zh2co3(ji,jj) * tmask(ji,jj,1) * zkgco2(ji,jj) 182 tra(ji,jj,1,jpdic) = tra(ji,jj,1,jpdic) + ( zfld - zflu ) / fse3t(ji,jj,1) 183 184 ! compute flux of carbon 185 ztco2flx(ji,jj) = ( zfld - zflu ) * rfact & 186 & * e1t(ji,jj) * e2t(ji,jj) * tmask(ji,jj,1) * 1000. 187 188 ! Compute O2 flux 189 zfld16 = atcox * chemc(ji,jj,2) *tmask(ji,jj,1) * zkgo2(ji,jj) 190 zflu16 = trn(ji,jj,1,jpoxy) * tmask(ji,jj,1) * zkgo2(ji,jj) 191 tra(ji,jj,1,jpoxy) = tra(ji,jj,1,jpoxy) + ( zfld16 - zflu16 ) / fse3t(ji,jj,1) 192 # if defined key_trc_diaadd 193 ! Save diagnostics 194 zcflx(ji,jj) = ( zfld - zflu ) * 1000. * tmask(ji,jj,1) 195 zoflx(ji,jj) = ( zfld16 - zflu16 ) * 1000. * tmask(ji,jj,1) 196 zkg (ji,jj) = zkgco2(ji,jj) * tmask(ji,jj,1) 197 zdelc(ji,jj) = atcco2 - zh2co3(ji,jj) / ( chemc(ji,jj,1) + rtrn ) * tmask(ji,jj,1) 198 # endif 199 END DO 200 END DO 201 #endif 179 202 180 203 ! Total Flux of Carbon … … 203 226 ENDIF 204 227 228 # if defined key_trc_diaadd && defined key_iomput 229 CALL iom_put( "Cflx", zcflx ) 230 CALL iom_put( "Oflx", zoflx ) 231 CALL iom_put( "Kg" , zkg ) 232 CALL iom_put( "DelC", zdelc ) 233 #endif 205 234 206 235 END SUBROUTINE p4z_flx
Note: See TracChangeset
for help on using the changeset viewer.