Changeset 2715 for trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/p4zrem.F90
- Timestamp:
- 2011-03-30T17:58:35+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/p4zrem.F90
r2528 r2715 29 29 PUBLIC p4z_rem ! called in p4zbio.F90 30 30 PUBLIC p4z_rem_init ! called in trcsms_pisces.F90 31 32 !! * Shared module variables 31 PUBLIC p4z_rem_alloc 32 33 33 REAL(wp), PUBLIC :: & 34 34 xremik = 0.3_wp , & !: … … 39 39 oxymin = 1.e-6_wp !: 40 40 41 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: & !: 42 & denitr !: denitrification array 41 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: denitr !: denitrification array 43 42 44 43 … … 48 47 !! NEMO/TOP 3.3 , NEMO Consortium (2010) 49 48 !! $Id$ 50 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 51 !!---------------------------------------------------------------------- 52 49 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 50 !!---------------------------------------------------------------------- 53 51 CONTAINS 54 52 … … 61 59 !! ** Method : - ??? 62 60 !!--------------------------------------------------------------------- 61 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 62 USE wrk_nemo, ONLY: ztempbac => wrk_2d_1 63 USE wrk_nemo, ONLY: zdepbac => wrk_3d_2 , zfesatur => wrk_3d_2 , zolimi => wrk_3d_4 64 ! 63 65 INTEGER, INTENT(in) :: kt ! ocean time step 66 ! 64 67 INTEGER :: ji, jj, jk 65 68 REAL(wp) :: zremip, zremik , zlam1b … … 72 75 #endif 73 76 REAL(wp) :: zlamfac, zonitr, zstep 74 REAL(wp), DIMENSION(jpi,jpj) :: ztempbac75 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdepbac, zfesatur, zolimi76 77 CHARACTER (len=25) :: charout 77 78 78 !!--------------------------------------------------------------------- 79 79 80 IF( wrk_in_use(2, 1) .OR. wrk_in_use(3, 2,3,4) ) THEN 81 CALL ctl_stop('p4z_rem: requested workspace arrays unavailable') ; RETURN 82 ENDIF 80 83 81 84 ! Initialisation of temprary arrys 82 zdepbac (:,:,:) = 0. 083 zfesatur(:,:,:) = 0. 084 zolimi (:,:,:) = 0. 085 ztempbac(:,:) = 0. 085 zdepbac (:,:,:) = 0._wp 86 zfesatur(:,:,:) = 0._wp 87 zolimi (:,:,:) = 0._wp 88 ztempbac(:,:) = 0._wp 86 89 87 90 ! Computation of the mean phytoplankton concentration as 88 91 ! a crude estimate of the bacterial biomass 89 92 ! -------------------------------------------------- 90 91 93 DO jk = 1, jpkm1 92 94 DO jj = 1, jpj … … 362 364 tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zscave * zdenom2 363 365 #endif 364 365 END DO 366 END DO 367 END DO 368 ! 369 370 IF(ln_ctl) THEN ! print mean trends (used for debugging) 366 END DO 367 END DO 368 END DO 369 ! 370 371 IF(ln_ctl) THEN ! print mean trends (used for debugging) 371 372 WRITE(charout, FMT="('rem5')") 372 373 CALL prt_ctl_trc_info(charout) 373 374 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 374 375 376 377 375 ENDIF 376 377 ! Update the arrays TRA which contain the biological sources and sinks 378 ! -------------------------------------------------------------------- 378 379 379 380 DO jk = 1, jpkm1 … … 385 386 tra(:,:,jk,jpdic) = tra(:,:,jk,jpdic) + zolimi(:,:,jk) + denitr(:,:,jk) 386 387 tra(:,:,jk,jptal) = tra(:,:,jk,jptal) + denitr(:,:,jk) * rno3 * rdenit 387 END DO388 389 388 END DO 389 390 IF(ln_ctl) THEN ! print mean trends (used for debugging) 390 391 WRITE(charout, FMT="('rem6')") 391 392 CALL prt_ctl_trc_info(charout) 392 393 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 393 ENDIF 394 394 ENDIF 395 ! 396 IF( wrk_not_released(2, 1) .OR. & 397 wrk_not_released(3, 2,3,4) ) CALL ctl_stop('p4z_rem: failed to release workspace arrays') 398 ! 395 399 END SUBROUTINE p4z_rem 396 400 401 397 402 SUBROUTINE p4z_rem_init 398 399 403 !!---------------------------------------------------------------------- 400 404 !! *** ROUTINE p4z_rem_init *** … … 408 412 !! 409 413 !!---------------------------------------------------------------------- 410 411 414 NAMELIST/nampisrem/ xremik, xremip, nitrif, xsirem, xlam1, oxymin 415 !!---------------------------------------------------------------------- 412 416 413 417 REWIND( numnat ) ! read numnat … … 425 429 WRITE(numout,*) ' halk saturation constant for anoxia oxymin =', oxymin 426 430 ENDIF 427 428 nitrfac(:,:,:) = 0. 0429 denitr (:,:,:) = 0. 0430 431 ! 432 nitrfac(:,:,:) = 0._wp 433 denitr (:,:,:) = 0._wp 434 ! 431 435 END SUBROUTINE p4z_rem_init 436 437 438 INTEGER FUNCTION p4z_rem_alloc() 439 !!---------------------------------------------------------------------- 440 !! *** ROUTINE p4z_rem_alloc *** 441 !!---------------------------------------------------------------------- 442 ALLOCATE( denitr(jpi,jpj,jpk), STAT=p4z_rem_alloc ) 443 ! 444 IF( p4z_rem_alloc /= 0 ) CALL ctl_warn('p4z_rem_alloc: failed to allocate arrays') 445 ! 446 END FUNCTION p4z_rem_alloc 432 447 433 448 #else
Note: See TracChangeset
for help on using the changeset viewer.