- Timestamp:
- 2021-01-07T23:09:56+01:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zsms.F90
r13233 r14276 64 64 REAL(wp) :: ztra 65 65 CHARACTER (len=25) :: charout 66 REAL(wp), DIMENSION(jpi,jpj,jpk,jp_pisces) :: ztrbbio 66 67 !!--------------------------------------------------------------------- 67 68 ! … … 102 103 END DO 103 104 ENDIF 105 106 DO jn = jp_pcs0, jp_pcs1 ! Store the tracer concentrations before entering PISCES 107 ztrbbio(:,:,:,jn) = trb(:,:,:,jn) 108 END DO 104 109 ! 105 110 IF( ll_sbc ) CALL p4z_sbc( kt ) ! external sources of nutrients … … 147 152 tra(:,:,:,jn) = 0._wp 148 153 END DO 149 ! Euler-forward temporal scheme 150 IF( ln_top_euler ) THEN 151 DO jn = jp_pcs0, jp_pcs1 152 trn(:,:,:,jn) = trb(:,:,:,jn) 153 END DO 154 ENDIF 154 ! 155 155 END DO 156 156 ! 157 #endif 158 ! 159 ! If ln_sediment is set to .true. then the sediment module is called 160 IF( ln_sediment ) THEN 161 ! 162 CALL sed_model( kt ) ! Main program of Sediment model 163 ! 164 ENDIF 165 ! 166 ! 167 DO jn = jp_pcs0, jp_pcs1 168 tra(:,:,:,jn) = ( trb(:,:,:,jn) - ztrbbio(:,:,:,jn) ) * rfactr 169 trb(:,:,:,jn) = ztrbbio(:,:,:,jn) 170 ztrbbio(:,:,:,jn) = 0._wp 171 END DO 157 172 ! 158 173 IF( l_trdtrc ) THEN … … 161 176 END DO 162 177 END IF 163 #endif164 !165 ! If ln_sediment is set to .true. then the sediment module is called166 IF( ln_sediment ) THEN167 !168 CALL sed_model( kt ) ! Main program of Sediment model169 ! Eulor forward temporal scheme170 IF( ln_top_euler ) THEN171 DO jn = jp_pcs0, jp_pcs1172 trn(:,:,:,jn) = trb(:,:,:,jn)173 END DO174 ENDIF175 !176 ENDIF177 178 ! 178 179 IF( lrst_trc ) CALL p4z_rst( kt, 'WRITE' ) !* Write PISCES informations in restart file … … 199 200 INTEGER :: ios ! Local integer output status for namelist read 200 201 !! 201 NAMELIST/nampisbio/ nrdttrc, wsbio, xkmort, ferat 3, wsbio2, wsbio2max, wsbio2scale, &202 & 202 NAMELIST/nampisbio/ nrdttrc, wsbio, xkmort, feratz, feratm, wsbio2, wsbio2max, & 203 & wsbio2scale, ldocp, ldocz, lthet, no3rat3, po4rat3 203 204 ! 204 205 NAMELIST/nampisdmp/ ln_pisdmp, nn_pisdmp … … 226 227 WRITE(numout,*) ' half saturation constant for mortality xkmort =', xkmort 227 228 IF( ln_p5z ) THEN 228 WRITE(numout,*) ' N/C in zooplankton no3rat3 =', no3rat3 229 WRITE(numout,*) ' P/C in zooplankton po4rat3 =', po4rat3 230 ENDIF 231 WRITE(numout,*) ' Fe/C in zooplankton ferat3 =', ferat3 229 WRITE(numout,*) ' N/C in zooplankton no3rat3 =', no3rat3 230 WRITE(numout,*) ' P/C in zooplankton po4rat3 =', po4rat3 231 ENDIF 232 WRITE(numout,*) ' Fe/C in microzooplankton feratz =', feratz 233 WRITE(numout,*) ' Fe/C in microzooplankton feratz =', feratm 232 234 WRITE(numout,*) ' Big particles sinking speed wsbio2 =', wsbio2 233 235 WRITE(numout,*) ' Big particles maximum sinking speed wsbio2max =', wsbio2max … … 313 315 ENDIF 314 316 317 ! Read the Fe3 consumption term by phytoplankton 318 IF( iom_varid( numrtr, 'Consfe3', ldstop = .FALSE. ) > 0 ) THEN 319 CALL iom_get( numrtr, jpdom_autoglo, 'Consfe3' , consfe3(:,:,:) ) 320 ELSE 321 consfe3(:,:,:) = 0._wp 322 ENDIF 323 324 315 325 ! Read the cumulative total flux. If not in the restart file, it is set to 0 316 326 IF( iom_varid( numrtr, 'tcflxcum', ldstop = .FALSE. ) > 0 ) THEN ! cumulative total flux of carbon … … 326 336 sized(:,:,:) = 1. 327 337 ENDIF 338 sized(:,:,:) = MAX( 1.0, sized(:,:,:) ) 328 339 IF( iom_varid( numrtr, 'sizen', ldstop = .FALSE. ) > 0 ) THEN 329 340 CALL iom_get( numrtr, jpdom_autoglo, 'sizen' , sizen(:,:,:) ) … … 331 342 sizen(:,:,:) = 1. 332 343 ENDIF 344 sizen(:,:,:) = MAX( 1.0, sizen(:,:,:) ) 333 345 334 346 ! PISCES-QUOTA specific part … … 338 350 IF( iom_varid( numrtr, 'sizep', ldstop = .FALSE. ) > 0 ) THEN 339 351 CALL iom_get( numrtr, jpdom_autoglo, 'sizep' , sizep(:,:,:) ) 352 sizep(:,:,:) = MAX( 1.0, sizep(:,:,:) ) 340 353 ELSE 341 354 sizep(:,:,:) = 1. … … 353 366 CALL iom_rstput( kt, nitrst, numrtw, 'Silicalim', xksi(:,:) ) ! Si 1/2 saturation constant 354 367 CALL iom_rstput( kt, nitrst, numrtw, 'Silicamax', xksimax(:,:) ) ! Si max concentration 368 CALL iom_rstput( kt, nitrst, numrtw, 'Consfe3', consfe3(:,:,:) ) ! Si max concentration 355 369 CALL iom_rstput( kt, nitrst, numrtw, 'tcflxcum', t_oce_co2_flx_cum ) ! Cumulative CO2 flux 356 370 CALL iom_rstput( kt, nitrst, numrtw, 'sizen', sizen(:,:,:) ) ! Size of nanophytoplankton … … 377 391 ! 378 392 REAL(wp) :: alkmean = 2426. ! mean value of alkalinity ( Glodap ; for Goyet 2391. ) 379 REAL(wp) :: po4mean = 2.1 65! mean value of phosphate380 REAL(wp) :: no3mean = 3 0.90 ! mean value of nitrate381 REAL(wp) :: silmean = 9 1.51! mean value of silicate393 REAL(wp) :: po4mean = 2.174 ! mean value of phosphate 394 REAL(wp) :: no3mean = 31.00 ! mean value of nitrate 395 REAL(wp) :: silmean = 90.33 ! mean value of silicate 382 396 ! 383 397 REAL(wp) :: zarea, zalksumn, zpo4sumn, zno3sumn, zsilsumn … … 534 548 zwork(:,:,:) = trn(:,:,:,jpfer) + trn(:,:,:,jpnfe) + trn(:,:,:,jpdfe) & 535 549 & + trn(:,:,:,jpbfe) + trn(:,:,:,jpsfe) & 536 & + ( trn(:,:,:,jpzoo) + trn(:,:,:,jpmes) ) * ferat3550 & + trn(:,:,:,jpzoo) * feratz + trn(:,:,:,jpmes) * feratm 537 551 ! 538 552 ferbudget = glob_sum( 'p4zsms', zwork(:,:,:) * cvol(:,:,:) )
Note: See TracChangeset
for help on using the changeset viewer.