- Timestamp:
- 2018-11-16T15:59:30+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zsms.F90
- Property svn:keywords set to Id
r9950 r10321 40 40 41 41 !!---------------------------------------------------------------------- 42 !! NEMO/TOP 3.3, NEMO Consortium (2018)42 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 43 43 !! $Id$ 44 !! Software governed by the CeCILL licen ce (./LICENSE)44 !! Software governed by the CeCILL license (see ./LICENSE) 45 45 !!---------------------------------------------------------------------- 46 46 CONTAINS … … 101 101 ENDIF 102 102 ! 103 IF( ll_sbc ) CALL p4z_sbc( kt ) ! external sources of nutrients 104 ! 105 #if ! defined key_sed_off 103 106 CALL p4z_che ! computation of chemical constants 104 107 CALL p4z_int( kt ) ! computation of various rates for biogeochemistry 105 108 ! 106 IF( ll_sbc ) CALL p4z_sbc( kt ) ! external sources of nutrients107 108 109 DO jnt = 1, nrdttrc ! Potential time splitting if requested 109 110 ! … … 149 150 END DO 150 151 END IF 151 ! 152 IF( lk_sed ) THEN 152 #endif 153 ! 154 IF( ln_sediment ) THEN 153 155 ! 154 156 CALL sed_model( kt ) ! Main program of Sediment model 157 ! 158 IF( ln_top_euler ) THEN 159 DO jn = jp_pcs0, jp_pcs1 160 trn(:,:,:,jn) = trb(:,:,:,jn) 161 END DO 162 ENDIF 155 163 ! 156 164 ENDIF … … 352 360 IF(lwp) WRITE(numout,*) 353 361 354 IF( cn_cfg == "orca" .AND. .NOT. lk_c1d ) THEN ! ORCA configuration (not 1D) ! 355 ! ! --------------------------- ! 356 ! set total alkalinity, phosphate, nitrate & silicate 357 zarea = 1._wp / glob_sum( cvol(:,:,:) ) * 1e6 358 359 zalksumn = glob_sum( trn(:,:,:,jptal) * cvol(:,:,:) ) * zarea 360 zpo4sumn = glob_sum( trn(:,:,:,jppo4) * cvol(:,:,:) ) * zarea * po4r 361 zno3sumn = glob_sum( trn(:,:,:,jpno3) * cvol(:,:,:) ) * zarea * rno3 362 zsilsumn = glob_sum( trn(:,:,:,jpsil) * cvol(:,:,:) ) * zarea 362 IF( cn_cfg == "ORCA" .OR. cn_cfg == "orca") THEN 363 IF( .NOT. lk_c1d ) THEN ! ORCA configuration (not 1D) ! 364 ! ! --------------------------- ! 365 ! set total alkalinity, phosphate, nitrate & silicate 366 zarea = 1._wp / glob_sum( cvol(:,:,:) ) * 1e6 367 368 zalksumn = glob_sum( trn(:,:,:,jptal) * cvol(:,:,:) ) * zarea 369 zpo4sumn = glob_sum( trn(:,:,:,jppo4) * cvol(:,:,:) ) * zarea * po4r 370 zno3sumn = glob_sum( trn(:,:,:,jpno3) * cvol(:,:,:) ) * zarea * rno3 371 zsilsumn = glob_sum( trn(:,:,:,jpsil) * cvol(:,:,:) ) * zarea 363 372 364 IF(lwp) WRITE(numout,*) ' TALKN mean : ', zalksumn365 trn(:,:,:,jptal) = trn(:,:,:,jptal) * alkmean / zalksumn366 367 IF(lwp) WRITE(numout,*) ' PO4N mean : ', zpo4sumn368 trn(:,:,:,jppo4) = trn(:,:,:,jppo4) * po4mean / zpo4sumn369 370 IF(lwp) WRITE(numout,*) ' NO3N mean : ', zno3sumn371 trn(:,:,:,jpno3) = trn(:,:,:,jpno3) * no3mean / zno3sumn372 373 IF(lwp) WRITE(numout,*) ' SiO3N mean : ', zsilsumn374 trn(:,:,:,jpsil) = MIN( 400.e-6,trn(:,:,:,jpsil) * silmean / zsilsumn )375 !376 !377 IF( .NOT. ln_top_euler ) THEN378 zalksumb = glob_sum( trb(:,:,:,jptal) * cvol(:,:,:) ) * zarea379 zpo4sumb = glob_sum( trb(:,:,:,jppo4) * cvol(:,:,:) ) * zarea * po4r380 zno3sumb = glob_sum( trb(:,:,:,jpno3) * cvol(:,:,:) ) * zarea * rno3381 zsilsumb = glob_sum( trb(:,:,:,jpsil) * cvol(:,:,:) ) * zarea373 IF(lwp) WRITE(numout,*) ' TALKN mean : ', zalksumn 374 trn(:,:,:,jptal) = trn(:,:,:,jptal) * alkmean / zalksumn 375 376 IF(lwp) WRITE(numout,*) ' PO4N mean : ', zpo4sumn 377 trn(:,:,:,jppo4) = trn(:,:,:,jppo4) * po4mean / zpo4sumn 378 379 IF(lwp) WRITE(numout,*) ' NO3N mean : ', zno3sumn 380 trn(:,:,:,jpno3) = trn(:,:,:,jpno3) * no3mean / zno3sumn 381 382 IF(lwp) WRITE(numout,*) ' SiO3N mean : ', zsilsumn 383 trn(:,:,:,jpsil) = MIN( 400.e-6,trn(:,:,:,jpsil) * silmean / zsilsumn ) 384 ! 385 ! 386 IF( .NOT. ln_top_euler ) THEN 387 zalksumb = glob_sum( trb(:,:,:,jptal) * cvol(:,:,:) ) * zarea 388 zpo4sumb = glob_sum( trb(:,:,:,jppo4) * cvol(:,:,:) ) * zarea * po4r 389 zno3sumb = glob_sum( trb(:,:,:,jpno3) * cvol(:,:,:) ) * zarea * rno3 390 zsilsumb = glob_sum( trb(:,:,:,jpsil) * cvol(:,:,:) ) * zarea 382 391 383 IF(lwp) WRITE(numout,*) ' ' 384 IF(lwp) WRITE(numout,*) ' TALKB mean : ', zalksumb 385 trb(:,:,:,jptal) = trb(:,:,:,jptal) * alkmean / zalksumb 386 387 IF(lwp) WRITE(numout,*) ' PO4B mean : ', zpo4sumb 388 trb(:,:,:,jppo4) = trb(:,:,:,jppo4) * po4mean / zpo4sumb 389 390 IF(lwp) WRITE(numout,*) ' NO3B mean : ', zno3sumb 391 trb(:,:,:,jpno3) = trb(:,:,:,jpno3) * no3mean / zno3sumb 392 393 IF(lwp) WRITE(numout,*) ' SiO3B mean : ', zsilsumb 394 trb(:,:,:,jpsil) = MIN( 400.e-6,trb(:,:,:,jpsil) * silmean / zsilsumb ) 392 IF(lwp) WRITE(numout,*) ' ' 393 IF(lwp) WRITE(numout,*) ' TALKB mean : ', zalksumb 394 trb(:,:,:,jptal) = trb(:,:,:,jptal) * alkmean / zalksumb 395 396 IF(lwp) WRITE(numout,*) ' PO4B mean : ', zpo4sumb 397 trb(:,:,:,jppo4) = trb(:,:,:,jppo4) * po4mean / zpo4sumb 398 399 IF(lwp) WRITE(numout,*) ' NO3B mean : ', zno3sumb 400 trb(:,:,:,jpno3) = trb(:,:,:,jpno3) * no3mean / zno3sumb 401 402 IF(lwp) WRITE(numout,*) ' SiO3B mean : ', zsilsumb 403 trb(:,:,:,jpsil) = MIN( 400.e-6,trb(:,:,:,jpsil) * silmean / zsilsumb ) 404 ENDIF 395 405 ENDIF 396 406 !
Note: See TracChangeset
for help on using the changeset viewer.