Changeset 10345 for NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/TOP/PISCES/P4Z/p4zsms.F90
- Timestamp:
- 2018-11-21T11:25:53+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/TOP/PISCES/P4Z/p4zsms.F90
r10314 r10345 74 74 CALL p4z_che ! initialize the chemical constants 75 75 CALL ahini_for_at(hi) ! set PH at kt=nit000 76 t_oce_co2_flx_cum = 0._wp 76 77 ELSE 77 78 CALL p4z_rst( nittrc000, 'READ' ) !* read or initialize all required fields … … 101 102 ENDIF 102 103 ! 104 IF( ll_sbc ) CALL p4z_sbc( kt ) ! external sources of nutrients 105 ! 106 #if ! defined key_sed_off 103 107 CALL p4z_che ! computation of chemical constants 104 108 CALL p4z_int( kt ) ! computation of various rates for biogeochemistry 105 109 ! 106 IF( ll_sbc ) CALL p4z_sbc( kt ) ! external sources of nutrients107 108 110 DO jnt = 1, nrdttrc ! Potential time splitting if requested 109 111 ! … … 149 151 END DO 150 152 END IF 151 ! 152 IF( lk_sed ) THEN 153 #endif 154 ! 155 IF( ln_sediment ) THEN 153 156 ! 154 157 CALL sed_model( kt ) ! Main program of Sediment model 158 ! 159 IF( ln_top_euler ) THEN 160 DO jn = jp_pcs0, jp_pcs1 161 trn(:,:,:,jn) = trb(:,:,:,jn) 162 END DO 163 ENDIF 155 164 ! 156 165 ENDIF … … 352 361 IF(lwp) WRITE(numout,*) 353 362 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( 'p4zsms', cvol(:,:,:) ) * 1e6 358 359 zalksumn = glob_sum( 'p4zsms', trn(:,:,:,jptal) * cvol(:,:,:) ) * zarea 360 zpo4sumn = glob_sum( 'p4zsms', trn(:,:,:,jppo4) * cvol(:,:,:) ) * zarea * po4r 361 zno3sumn = glob_sum( 'p4zsms', trn(:,:,:,jpno3) * cvol(:,:,:) ) * zarea * rno3 362 zsilsumn = glob_sum( 'p4zsms', trn(:,:,:,jpsil) * cvol(:,:,:) ) * zarea 363 IF( cn_cfg == "ORCA" .OR. cn_cfg == "orca") THEN 364 IF( .NOT. lk_c1d ) THEN ! ORCA configuration (not 1D) ! 365 ! ! --------------------------- ! 366 ! set total alkalinity, phosphate, nitrate & silicate 367 zarea = 1._wp / glob_sum( 'p4zsms', cvol(:,:,:) ) * 1e6 368 369 zalksumn = glob_sum( 'p4zsms', trn(:,:,:,jptal) * cvol(:,:,:) ) * zarea 370 zpo4sumn = glob_sum( 'p4zsms', trn(:,:,:,jppo4) * cvol(:,:,:) ) * zarea * po4r 371 zno3sumn = glob_sum( 'p4zsms', trn(:,:,:,jpno3) * cvol(:,:,:) ) * zarea * rno3 372 zsilsumn = glob_sum( 'p4zsms', trn(:,:,:,jpsil) * cvol(:,:,:) ) * zarea 363 373 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( 'p4zsms', trb(:,:,:,jptal) * cvol(:,:,:) ) * zarea379 zpo4sumb = glob_sum( 'p4zsms', trb(:,:,:,jppo4) * cvol(:,:,:) ) * zarea * po4r380 zno3sumb = glob_sum( 'p4zsms', trb(:,:,:,jpno3) * cvol(:,:,:) ) * zarea * rno3381 zsilsumb = glob_sum( 'p4zsms', trb(:,:,:,jpsil) * cvol(:,:,:) ) * zarea374 IF(lwp) WRITE(numout,*) ' TALKN mean : ', zalksumn 375 trn(:,:,:,jptal) = trn(:,:,:,jptal) * alkmean / zalksumn 376 377 IF(lwp) WRITE(numout,*) ' PO4N mean : ', zpo4sumn 378 trn(:,:,:,jppo4) = trn(:,:,:,jppo4) * po4mean / zpo4sumn 379 380 IF(lwp) WRITE(numout,*) ' NO3N mean : ', zno3sumn 381 trn(:,:,:,jpno3) = trn(:,:,:,jpno3) * no3mean / zno3sumn 382 383 IF(lwp) WRITE(numout,*) ' SiO3N mean : ', zsilsumn 384 trn(:,:,:,jpsil) = MIN( 400.e-6,trn(:,:,:,jpsil) * silmean / zsilsumn ) 385 ! 386 ! 387 IF( .NOT. ln_top_euler ) THEN 388 zalksumb = glob_sum( 'p4zsms', trb(:,:,:,jptal) * cvol(:,:,:) ) * zarea 389 zpo4sumb = glob_sum( 'p4zsms', trb(:,:,:,jppo4) * cvol(:,:,:) ) * zarea * po4r 390 zno3sumb = glob_sum( 'p4zsms', trb(:,:,:,jpno3) * cvol(:,:,:) ) * zarea * rno3 391 zsilsumb = glob_sum( 'p4zsms', trb(:,:,:,jpsil) * cvol(:,:,:) ) * zarea 382 392 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 ) 393 IF(lwp) WRITE(numout,*) ' ' 394 IF(lwp) WRITE(numout,*) ' TALKB mean : ', zalksumb 395 trb(:,:,:,jptal) = trb(:,:,:,jptal) * alkmean / zalksumb 396 397 IF(lwp) WRITE(numout,*) ' PO4B mean : ', zpo4sumb 398 trb(:,:,:,jppo4) = trb(:,:,:,jppo4) * po4mean / zpo4sumb 399 400 IF(lwp) WRITE(numout,*) ' NO3B mean : ', zno3sumb 401 trb(:,:,:,jpno3) = trb(:,:,:,jpno3) * no3mean / zno3sumb 402 403 IF(lwp) WRITE(numout,*) ' SiO3B mean : ', zsilsumb 404 trb(:,:,:,jpsil) = MIN( 400.e-6,trb(:,:,:,jpsil) * silmean / zsilsumb ) 405 ENDIF 395 406 ENDIF 396 407 !
Note: See TracChangeset
for help on using the changeset viewer.