- Timestamp:
- 2016-04-08T10:57:55+02:00 (8 years ago)
- Location:
- branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zche.F90
r6453 r6455 121 121 REAL(wp) :: devk510 = 0.0 122 122 ! 123 124 125 123 ! General parameters 126 124 REAL(wp), PARAMETER :: pp_rdel_ah_target = 1.E-4_wp … … 133 131 ! - SOLVE_AT_GENERAL 134 132 INTEGER :: niter_atgen = jp_maxniter_atgen 135 136 137 133 138 134 !!* Substitution … … 182 178 zcek1 = 9345.17/ztkel - 60.2409 + 23.3585 * LOG(zt) + zsal*(0.023517 - 0.00023656*ztkel & 183 179 & + 0.0047036e-4*ztkel**2) 184 ! ! SET SOLUBILITIES OF O2 AND CO2185 180 chemc(ji,jj,1) = EXP( zcek1 ) * 1E-6 ! mol/(kg atm) 186 181 chemc(ji,jj,2) = -1636.75 + 12.0408*ztkel - 0.0327957*ztkel**2 + 0.0000316528*ztkel**3 … … 261 256 & + LOG(1.0 - 0.001005 * zsal)) 262 257 263 264 258 ! DISSOCIATION CONSTANT FOR FLUORIDES on free H scale (Dickson and Riley 79) 265 259 zckf = EXP( 1590.2*ztr - 12.641 + 1.525*zisqrt & … … 267 261 & + LOG(1.0d0 + zst/zcks)) 268 262 269 270 ! DISSOCIATION CONSTANT FOR BORATE 263 ! DISSOCIATION CONSTANT FOR CARBONATE AND BORATE 271 264 zckb= (-8966.90 - 2890.53*zsqrt - 77.942*zsal & 272 265 & + 1.728*zsal15 - 0.0996*zsal*zsal)*ztr & 273 266 & + (148.0248 + 137.1942*zsqrt + 1.62142*zsal) & 274 & + (-24.4344 - 25.085*zsqrt - 0.2474*zsal) & 267 & + (-24.4344 - 25.085*zsqrt - 0.2474*zsal) & 275 268 & * zlogt + 0.053105*zsqrt*ztkel 276 269 … … 281 274 zck2 = -1.0*(471.78*ztr + 25.9290 - 3.16967*zlogt & 282 275 - 0.01781*zsal + 0.0001122*zsal*zsal) 283 284 276 285 277 ! PKW (H2O) (MILLERO, 1995) from composite data -
branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zflx.F90
r6453 r6455 178 178 zfco2 = satmco2(ji,jj) * ( patm(ji,jj) - zvapsw ) * zfugcoeff 179 179 ! Compute CO2 flux for the sea and air 180 zfld = zfco2* tmask(ji,jj,1) * chemc(ji,jj,1) * zkgco2(ji,jj) ! (mol/L) * (m/s)180 zfld = satmco2(ji,jj) * patm(ji,jj) * tmask(ji,jj,1) * chemc(ji,jj,1) * zkgco2(ji,jj) ! (mol/L) * (m/s) 181 181 zflu = zh2co3(ji,jj) * tmask(ji,jj,1) * zkgco2(ji,jj) ! (mol/L) (m/s) ? 182 182 oce_co2(ji,jj) = ( zfld - zflu ) * rfact2 * e1e2t(ji,jj) * tmask(ji,jj,1) * 1000. … … 216 216 ENDIF 217 217 IF( iom_use( "Dpco2" ) ) THEN 218 zw2d(:,:) = oce_co2(:,:) / e1e2t(:,:) / 1000. * rfact2r * tmask(:,:,1) / ( zkgco2(:,:) * chemc(:,:,1) + rtrn)218 zw2d(:,:) = ( satmco2(:,:) * patm(:,:) - zh2co3(:,:) / ( chemc(:,:,1) + rtrn ) ) * tmask(:,:,1) 219 219 CALL iom_put( "Dpco2" , zw2d ) 220 220 ENDIF … … 233 233 trc2d(:,:,jp_pcs0_2d + 2) = zkgco2(:,:) * tmask(:,:,1) 234 234 trc2d(:,:,jp_pcs0_2d + 3) = ( satmco2(:,:) * patm(:,:) - zh2co3(:,:) / ( chemc(:,:,1) + rtrn ) ) * tmask(:,:,1) 235 ENDIF236 ENDIF237 238 IF( ln_diatrc ) THEN239 IF( lk_iomput .AND. knt == nrdttrc ) THEN240 CALL iom_put( "Cflx" , oce_co2(:,:) / e1e2t(:,:) / rfact )241 CALL iom_put( "Oflx" , zoflx(:,:) * 1000 * tmask(:,:,1) )242 CALL iom_put( "Kg" , zkgco2(:,:) * tmask(:,:,1) )243 CALL iom_put( "Dpco2", ( satmco2(:,:) * patm(:,:) - zh2co3(:,:) / ( chemc(:,:,1) + rtrn ) ) * tmask(:,:,1) )244 CALL iom_put( "Dpo2" , ( atcox * patm(:,:) - trb(:,:,1,jpoxy) * atcox / ( chemo2(:,:,1) + rtrn ) ) * tmask(:,:,1) )245 ELSE246 trc2d(:,:,jp_pcs0_2d ) = oce_co2(:,:) / e1e2t(:,:) / rfact247 trc2d(:,:,jp_pcs0_2d + 1) = zoflx(:,:) * 1000 * tmask(:,:,1)248 trc2d(:,:,jp_pcs0_2d + 2) = zkgco2(:,:) * tmask(:,:,1)249 trc2d(:,:,jp_pcs0_2d + 3) = ( satmco2(:,:) * patm(:,:) - zh2co3(:,:) / ( chemc(:,:,1) + rtrn ) ) * tmask(:,:,1)250 235 ENDIF 251 236 ENDIF -
branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90
r6453 r6455 72 72 CHARACTER (len=25) :: charout 73 73 REAL(wp), POINTER, DIMENSION(:,: ) :: zpdep, zsidep, zwork1, zwork2, zwork3 74 REAL(wp), POINTER, DIMENSION(:,:) :: zsedcal, zsedsi, zsedc 74 75 REAL(wp), POINTER, DIMENSION(:,: ) :: zdenit2d, zironice, zbureff 75 76 REAL(wp), POINTER, DIMENSION(:,: ) :: zwsbio3, zwsbio4, zwscal … … 87 88 ! Allocate temporary workspace 88 89 CALL wrk_alloc( jpi, jpj, zdenit2d, zwork1, zwork2, zwork3, zbureff ) 90 CALL wrk_alloc( jpi, jpj, zsedcal, zsedsi, zsedc ) 89 91 CALL wrk_alloc( jpi, jpj, zwsbio3, zwsbio4, zwscal ) 90 92 CALL wrk_alloc( jpi, jpj, jpk, zsoufer ) … … 98 100 zwork2 (:,:) = 0.e0 99 101 zwork3 (:,:) = 0.e0 102 zsedsi (:,:) = 0.e0 103 zsedcal (:,:) = 0.e0 104 zsedc (:,:) = 0.e0 100 105 101 106 ! Iron input/uptake due to sea ice : Crude parameterization based on Lancelot et al. … … 315 320 tra(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + zcaloss * zrivalk * 2.0 316 321 tra(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zcaloss * zrivalk 322 zsedcal(ji,jj) = (1.0 - zrivalk) * zcaloss / zdep 323 zsedsi (ji,jj) = (1.0 - zrivsil) * zsiloss / zdep 317 324 #endif 318 325 END DO … … 362 369 tra(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + rno3 * (zolimit + (1.+rdenit) * (zpdenit + zdenitt) ) 363 370 tra(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zpdenit + zolimit + zdenitt 364 sdenit(ji,jj) = rdenit * zpdenit * fse3t(ji,jj,ikt) 371 sdenit(ji,jj) = rdenit * zpdenit / zdep 372 zsedc(ji,jj) = (1. - zrivno3) * zwstpoc / zdep 365 373 #endif 366 374 END DO … … 418 426 CALL iom_put( "INTNFIX" , zwork1 ) 419 427 ENDIF 428 IF( iom_use("SedCal" ) ) CALL iom_put( "SedCal", zsedcal(:,:) * 1.e+3 ) 429 IF( iom_use("SedSi" ) ) CALL iom_put( "SedSi", zsedsi (:,:) * 1.e+3 ) 430 IF( iom_use("SedC" ) ) CALL iom_put( "SedC", zsedc (:,:) * 1.e+3 ) 431 IF( iom_use("Sdenit" ) ) CALL iom_put( "Sdenit", sdenit (:,:) * 1.e+3 * rno3 ) 420 432 ENDIF 421 433 ELSE … … 431 443 ! 432 444 CALL wrk_dealloc( jpi, jpj, zdenit2d, zwork1, zwork2, zwork3, zbureff ) 445 CALL wrk_dealloc( jpi, jpj, zsedcal , zsedsi, zsedc ) 433 446 CALL wrk_dealloc( jpi, jpj, zwsbio3, zwsbio4, zwscal ) 434 447 CALL wrk_dealloc( jpi, jpj, jpk, zsoufer )
Note: See TracChangeset
for help on using the changeset viewer.