Changeset 3448 for branches/2012/dev_r3438_LOCEAN15_PISLOB/NEMOGCM
- Timestamp:
- 2012-08-10T15:18:09+02:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_r3438_LOCEAN15_PISLOB/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90
r3446 r3448 85 85 ! 86 86 ! Allocate temporary workspace 87 CALL wrk_alloc( jpi, jpj, jpk, zFe3, zTL1, ztotlig ) 88 IF( ln_diatrc .AND. lk_iomput ) CALL wrk_alloc( jpi, jpj, jpk, zFeL1 ) 89 ! 90 IF( ln_fechem ) THEN 91 CALL wrk_alloc( jpi, jpj, jpk, zTL2, zFeP ) 92 IF( ln_diatrc .AND. lk_iomput ) CALL wrk_alloc( jpi, jpj, jpk, zFe2, zFeL2 ) 93 ENDIF 87 CALL wrk_alloc( jpi, jpj, jpk, zFe3, zFeL1, zTL1, ztotlig ) 88 IF( ln_fechem ) CALL wrk_alloc( jpi, jpj, jpk, zFe2, zFeL2, zTL2, zFeP ) 94 89 ! Total ligand concentration : Ligands can be chosen to be constant or variable 95 90 ! Parameterization from Tagliabue and Voelker (2011) … … 179 174 zFe3(ji,jj,jk) = MAX( 0., zxs ) 180 175 zFep(ji,jj,jk) = MAX( 0., ( ks * zFe3(ji,jj,jk) / kpr ) ) 181 IF( ln_diatrc .AND. lk_iomput ) THEN 182 zkappa2 = ( kb2 + zkph2 ) / kl2 183 zFeL2(ji,jj,jk) = MAX( 0., ( zFe3(ji,jj,jk) * zTL2(ji,jj,jk) ) / ( zkappa2 + zFe3(ji,jj,jk) ) ) 184 zFeL1(ji,jj,jk) = MAX( 0., ( ztfe / zb - za / zb * zFe3(ji,jj,jk) - zc / zb * zFeL2(ji,jj,jk) ) ) 185 zFe2 (ji,jj,jk) = MAX( 0., ( ( zkph1 * zFeL1(ji,jj,jk) + zkph2 * zFeL2(ji,jj,jk) ) / zkox ) ) 186 ENDIF 176 zkappa2 = ( kb2 + zkph2 ) / kl2 177 zFeL2(ji,jj,jk) = MAX( 0., ( zFe3(ji,jj,jk) * zTL2(ji,jj,jk) ) / ( zkappa2 + zFe3(ji,jj,jk) ) ) 178 zFeL1(ji,jj,jk) = MAX( 0., ( ztfe / zb - za / zb * zFe3(ji,jj,jk) - zc / zb * zFeL2(ji,jj,jk) ) ) 179 zFe2 (ji,jj,jk) = MAX( 0., ( ( zkph1 * zFeL1(ji,jj,jk) + zkph2 * zFeL2(ji,jj,jk) ) / zkox ) ) 187 180 END DO 188 181 END DO … … 202 195 ztfe = trn(ji,jj,jk,jpfer) 203 196 ! Fe' is the root of a 2nd order polynom 204 zFe3 (ji,jj,jk) = ( -( 1. + zfesatur * zkeq - zkeq * ztfe ) &197 zFe3 (ji,jj,jk) = ( -( 1. + zfesatur * zkeq - zkeq * ztfe ) & 205 198 & + SQRT( ( 1. + zfesatur * zkeq - zkeq * ztfe )**2 & 206 199 & + 4. * ztfe * zkeq) ) / ( 2. * zkeq ) 207 zFe3(ji,jj,jk) = zFe3(ji,jj,jk) * 1E9 200 zFe3 (ji,jj,jk) = zFe3(ji,jj,jk) * 1E9 201 zFeL1(ji,jj,jk) = MAX( 0., trn(ji,jj,jk,jpfer) * 1E9 - zFe3(ji,jj,jk) ) 208 202 END DO 209 203 END DO 210 204 END DO 211 IF( ln_diatrc .AND. lk_iomput ) &212 & zFeL1(:,:,1:jpkm1) = MAX( 0., trn(:,:,1:jpkm1,jpfer) * 1E9 - zFe3(:,:,1:jpkm1) )213 205 ! 214 206 ENDIF … … 328 320 ENDIF 329 321 ! 330 CALL wrk_dealloc( jpi, jpj, jpk, zFe3, zTL1, ztotlig ) 331 IF( ln_diatrc .AND. lk_iomput ) CALL wrk_dealloc( jpi, jpj, jpk, zFeL1 ) 332 IF( ln_fechem ) THEN 333 CALL wrk_dealloc( jpi, jpj, jpk, zTL2, zFeP ) 334 IF( ln_diatrc .AND. lk_iomput ) CALL wrk_dealloc( jpi, jpj, jpk, zFe2, zFeL2 ) 335 ENDIF 322 CALL wrk_dealloc( jpi, jpj, jpk, zFe3, zFeL1, zTL1, ztotlig ) 323 IF( ln_fechem ) CALL wrk_dealloc( jpi, jpj, jpk, zFe2, zFeL2, zTL2, zFeP ) 336 324 ! 337 325 IF( nn_timing == 1 ) CALL timing_stop('p4z_fechem')
Note: See TracChangeset
for help on using the changeset viewer.