Changeset 2774 for trunk/NEMOGCM/NEMO/TOP_SRC/PISCES
- Timestamp:
- 2011-06-01T15:13:02+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/p4zsed.F90
r2715 r2774 370 370 !! 371 371 !!---------------------------------------------------------------------- 372 372 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 373 USE wrk_nemo, ONLY: zriverdoc => wrk_2d_1, zriver => wrk_2d_2, zndepo => wrk_2d_3 374 USE wrk_nemo, ONLY: zcmask => wrk_3d_2 375 ! 373 376 INTEGER :: ji, jj, jk, jm 374 377 INTEGER :: numriv, numbath, numdep 375 376 377 378 REAL(wp) :: zcoef 378 379 REAL(wp) :: expide, denitide,zmaskt 379 REAL(wp) , DIMENSION (jpi,jpj) :: riverdoc, river, ndepo 380 REAL(wp) , DIMENSION (jpi,jpj,jpk) :: cmask 381 380 ! 382 381 NAMELIST/nampissed/ ln_dustfer, ln_river, ln_ndepo, ln_sedinput, sedfeinput, dustsolub 383 384 382 !!---------------------------------------------------------------------- 383 384 IF( ( wrk_in_use(2, 1,2,3) ) .OR. ( wrk_in_use(3, 2) ) ) THEN 385 CALL ctl_stop('p4z_sed_init: requested workspace arrays unavailable') ; RETURN 386 END IF 387 ! 385 388 REWIND( numnat ) ! read numnat 386 389 READ ( numnat, nampissed ) … … 419 422 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' 420 423 CALL iom_open ( 'river.orca.nc', numriv ) 421 CALL iom_get ( numriv, jpdom_data, 'riverdic', river (:,:), jpyr )422 CALL iom_get ( numriv, jpdom_data, 'riverdoc', riverdoc(:,:), jpyr )424 CALL iom_get ( numriv, jpdom_data, 'riverdic', zriver (:,:), jpyr ) 425 CALL iom_get ( numriv, jpdom_data, 'riverdoc', zriverdoc(:,:), jpyr ) 423 426 CALL iom_close( numriv ) 424 427 ELSE 425 river (:,:) = 0.e0426 riverdoc(:,:) = 0.e0428 zriver (:,:) = 0.e0 429 zriverdoc(:,:) = 0.e0 427 430 endif 428 431 … … 433 436 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' 434 437 CALL iom_open ( 'ndeposition.orca.nc', numdep ) 435 CALL iom_get ( numdep, jpdom_data, 'ndep', ndepo(:,:), jpyr )438 CALL iom_get ( numdep, jpdom_data, 'ndep', zndepo(:,:), jpyr ) 436 439 CALL iom_close( numdep ) 437 440 ELSE 438 ndepo(:,:) = 0.e0441 zndepo(:,:) = 0.e0 439 442 ENDIF 440 443 … … 446 449 IF(lwp) WRITE(numout,*) ' from bathy.orca.nc file ' 447 450 CALL iom_open ( 'bathy.orca.nc', numbath ) 448 CALL iom_get ( numbath, jpdom_data, 'bathy', cmask(:,:,:), jpyr )451 CALL iom_get ( numbath, jpdom_data, 'bathy', zcmask(:,:,:), jpyr ) 449 452 CALL iom_close( numbath ) 450 453 ! … … 455 458 zmaskt = tmask(ji+1,jj,jk) * tmask(ji-1,jj,jk) * tmask(ji,jj+1,jk) & 456 459 & * tmask(ji,jj-1,jk) * tmask(ji,jj,jk+1) 457 IF( zmaskt == 0. ) cmask(ji,jj,jk ) = MAX( 0.1,cmask(ji,jj,jk) )460 IF( zmaskt == 0. ) zcmask(ji,jj,jk ) = MAX( 0.1, zcmask(ji,jj,jk) ) 458 461 ENDIF 459 462 END DO … … 465 468 expide = MIN( 8.,( fsdept(ji,jj,jk) / 500. )**(-1.5) ) 466 469 denitide = -0.9543 + 0.7662 * LOG( expide ) - 0.235 * LOG( expide )**2 467 cmask(ji,jj,jk) =cmask(ji,jj,jk) * MIN( 1., EXP( denitide ) / 0.5 )470 zcmask(ji,jj,jk) = zcmask(ji,jj,jk) * MIN( 1., EXP( denitide ) / 0.5 ) 468 471 END DO 469 472 END DO 470 473 END DO 471 474 ELSE 472 cmask(:,:,:) = 0.e0475 zcmask(:,:,:) = 0.e0 473 476 ENDIF 474 477 475 CALL lbc_lnk( cmask , 'T', 1. ) ! Lateral boundary conditions oncmask (sign unchanged)478 CALL lbc_lnk( zcmask , 'T', 1. ) ! Lateral boundary conditions on zcmask (sign unchanged) 476 479 477 480 … … 496 499 DO ji = 1, jpi 497 500 zcoef = ryyss * e1e2t(ji,jj) * fse3t(ji,jj,1) * tmask(ji,jj,1) 498 cotdep(ji,jj) = river(ji,jj) *1E9 / ( 12. * zcoef + rtrn )499 rivinp(ji,jj) = ( river(ji,jj)+riverdoc(ji,jj)) *1E9 / ( 31.6* zcoef + rtrn )500 nitdep(ji,jj) = 7.6 * ndepo(ji,jj) / ( 14E6*ryyss*fse3t(ji,jj,1) + rtrn )501 cotdep(ji,jj) = zriver(ji,jj) *1E9 / ( 12. * zcoef + rtrn ) 502 rivinp(ji,jj) = (zriver(ji,jj)+zriverdoc(ji,jj)) *1E9 / ( 31.6* zcoef + rtrn ) 503 nitdep(ji,jj) = 7.6 * zndepo(ji,jj) / ( 14E6*ryyss*fse3t(ji,jj,1) + rtrn ) 501 504 END DO 502 505 END DO … … 512 515 ! ------------------------- 513 516 DO jk = 1, jpkm1 514 ironsed(:,:,jk) = sedfeinput * cmask(:,:,jk) / ( fse3t(:,:,jk) * rday )517 ironsed(:,:,jk) = sedfeinput * zcmask(:,:,jk) / ( fse3t(:,:,jk) * rday ) 515 518 END DO 516 519 CALL lbc_lnk( ironsed , 'T', 1. ) ! Lateral boundary conditions on ( ironsed ) (sign unchanged) 517 520 521 IF( ( wrk_not_released(2, 1,2,3) ) .OR. ( wrk_not_released(3, 2) ) ) & 522 & CALL ctl_stop('p4z_sed_init: failed to release workspace arrays') 518 523 519 524 END SUBROUTINE p4z_sed_init
Note: See TracChangeset
for help on using the changeset viewer.