- Timestamp:
- 2017-04-18T12:49:13+02:00 (7 years ago)
- Location:
- branches/UKMO/dev_r5518_medusa_chg_trc_bio_medusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA
- Files:
-
- 1 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_medusa_chg_trc_bio_medusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90
r7912 r7920 93 93 94 94 !! JPALM (27-06-2016): add lk_oasis for CO2 and DMS coupling with atm 95 USE sbc_oce, ONLY: lk_oasis 96 USE oce, ONLY: CO2Flux_out_cpl, DMS_out_cpl, PCO2a_in_cpl 95 USE sbc_oce, ONLY: lk_oasis 96 USE oce, ONLY: CO2Flux_out_cpl, DMS_out_cpl, & 97 PCO2a_in_cpl 97 98 USE bio_medusa_mod 98 USE bio_medusa_init_mod, ONLY: bio_medusa_init 99 USE bio_medusa_init_mod, ONLY: bio_medusa_init 100 USE bio_medusa_fin_mod, ONLY: bio_medusa_fin 99 101 100 102 IMPLICIT NONE … … 4269 4271 4270 4272 !!---------------------------------------------------------------------- 4271 !! Process benthic in/out fluxes 4272 !! These can be handled outside of the 3D calculations since the 4273 !! benthic pools (and fluxes) are 2D in nature; this code is 4274 !! (shamelessly) borrowed from corresponding code in the LOBSTER 4275 !! model 4273 !! Final calculations for diagnostics 4276 4274 !!---------------------------------------------------------------------- 4277 !! 4278 !! IF(lwp) WRITE(numout,*) 'AXY: rdt = ', rdt 4279 if (jorgben.eq.1) then 4280 za_sed_n(:,:) = zn_sed_n(:,:) + & 4281 & ( f_sbenin_n(:,:) + f_fbenin_n(:,:) - f_benout_n(:,:) ) * (rdt / 86400.) 4282 zn_sed_n(:,:) = za_sed_n(:,:) 4283 !! 4284 za_sed_fe(:,:) = zn_sed_fe(:,:) + & 4285 & ( f_sbenin_fe(:,:) + f_fbenin_fe(:,:) - f_benout_fe(:,:) ) * (rdt / 86400.) 4286 zn_sed_fe(:,:) = za_sed_fe(:,:) 4287 !! 4288 za_sed_c(:,:) = zn_sed_c(:,:) + & 4289 & ( f_sbenin_c(:,:) + f_fbenin_c(:,:) - f_benout_c(:,:) ) * (rdt / 86400.) 4290 zn_sed_c(:,:) = za_sed_c(:,:) 4291 endif 4292 if (jinorgben.eq.1) then 4293 za_sed_si(:,:) = zn_sed_si(:,:) + & 4294 & ( f_fbenin_si(:,:) - f_benout_si(:,:) ) * (rdt / 86400.) 4295 zn_sed_si(:,:) = za_sed_si(:,:) 4296 !! 4297 za_sed_ca(:,:) = zn_sed_ca(:,:) + & 4298 & ( f_fbenin_ca(:,:) - f_benout_ca(:,:) ) * (rdt / 86400.) 4299 zn_sed_ca(:,:) = za_sed_ca(:,:) 4300 endif 4301 IF( ln_diatrc ) THEN 4302 DO jj = 2,jpjm1 4303 DO ji = 2,jpim1 4304 trc2d(ji,jj,131) = za_sed_n(ji,jj) 4305 trc2d(ji,jj,132) = za_sed_fe(ji,jj) 4306 trc2d(ji,jj,133) = za_sed_c(ji,jj) 4307 trc2d(ji,jj,134) = za_sed_si(ji,jj) 4308 trc2d(ji,jj,135) = za_sed_ca(ji,jj) 4309 ENDDO 4310 ENDDO 4311 !! AXY (07/07/15): temporary hijacking 4312 # if defined key_roam 4313 !! trc2d(:,:,126) = zn_dms_chn(:,:) 4314 !! trc2d(:,:,127) = zn_dms_chd(:,:) 4315 !! trc2d(:,:,128) = zn_dms_mld(:,:) 4316 !! trc2d(:,:,129) = zn_dms_qsr(:,:) 4317 !! trc2d(:,:,130) = zn_dms_din(:,:) 4318 # endif 4319 ENDIF 4320 !! 4321 if (ibenthic.eq.2) then 4322 !! The code below (in this if ... then ... endif loop) is 4323 !! effectively commented out because it does not work as 4324 !! anticipated; it can be deleted at a later date 4325 if (jorgben.eq.1) then 4326 za_sed_n(:,:) = ( f_sbenin_n(:,:) + f_fbenin_n(:,:) - f_benout_n(:,:) ) * rdt 4327 za_sed_fe(:,:) = ( f_sbenin_fe(:,:) + f_fbenin_fe(:,:) - f_benout_fe(:,:) ) * rdt 4328 za_sed_c(:,:) = ( f_sbenin_c(:,:) + f_fbenin_c(:,:) - f_benout_c(:,:) ) * rdt 4329 endif 4330 if (jinorgben.eq.1) then 4331 za_sed_si(:,:) = ( f_fbenin_si(:,:) - f_benout_si(:,:) ) * rdt 4332 za_sed_ca(:,:) = ( f_fbenin_ca(:,:) - f_benout_ca(:,:) ) * rdt 4333 endif 4334 !! 4335 !! Leap-frog scheme - only in explicit case, otherwise the time stepping 4336 !! is already being done in trczdf 4337 !! IF( l_trczdf_exp .AND. (ln_trcadv_cen2 .OR. ln_trcadv_tvd) ) THEN 4338 !! zfact = 2. * rdttra(jk) * FLOAT( ndttrc ) 4339 !! IF( neuler == 0 .AND. kt == nittrc000 ) zfact = rdttra(jk) * FLOAT(ndttrc) 4340 !! if (jorgben.eq.1) then 4341 !! za_sed_n(:,:) = zb_sed_n(:,:) + ( zfact * za_sed_n(:,:) ) 4342 !! za_sed_fe(:,:) = zb_sed_fe(:,:) + ( zfact * za_sed_fe(:,:) ) 4343 !! za_sed_c(:,:) = zb_sed_c(:,:) + ( zfact * za_sed_c(:,:) ) 4344 !! endif 4345 !! if (jinorgben.eq.1) then 4346 !! za_sed_si(:,:) = zb_sed_si(:,:) + ( zfact * za_sed_si(:,:) ) 4347 !! za_sed_ca(:,:) = zb_sed_ca(:,:) + ( zfact * za_sed_ca(:,:) ) 4348 !! endif 4349 !! ENDIF 4350 !! 4351 !! Time filter and swap of arrays 4352 IF( ln_trcadv_cen2 .OR. ln_trcadv_tvd ) THEN ! centred or tvd scheme 4353 IF( neuler == 0 .AND. kt == nittrc000 ) THEN 4354 if (jorgben.eq.1) then 4355 zb_sed_n(:,:) = zn_sed_n(:,:) 4356 zn_sed_n(:,:) = za_sed_n(:,:) 4357 za_sed_n(:,:) = 0.0 4358 !! 4359 zb_sed_fe(:,:) = zn_sed_fe(:,:) 4360 zn_sed_fe(:,:) = za_sed_fe(:,:) 4361 za_sed_fe(:,:) = 0.0 4362 !! 4363 zb_sed_c(:,:) = zn_sed_c(:,:) 4364 zn_sed_c(:,:) = za_sed_c(:,:) 4365 za_sed_c(:,:) = 0.0 4366 endif 4367 if (jinorgben.eq.1) then 4368 zb_sed_si(:,:) = zn_sed_si(:,:) 4369 zn_sed_si(:,:) = za_sed_si(:,:) 4370 za_sed_si(:,:) = 0.0 4371 !! 4372 zb_sed_ca(:,:) = zn_sed_ca(:,:) 4373 zn_sed_ca(:,:) = za_sed_ca(:,:) 4374 za_sed_ca(:,:) = 0.0 4375 endif 4376 ELSE 4377 if (jorgben.eq.1) then 4378 zb_sed_n(:,:) = (atfp * ( zb_sed_n(:,:) + za_sed_n(:,:) )) + (atfp1 * zn_sed_n(:,:) ) 4379 zn_sed_n(:,:) = za_sed_n(:,:) 4380 za_sed_n(:,:) = 0.0 4381 !! 4382 zb_sed_fe(:,:) = (atfp * ( zb_sed_fe(:,:) + za_sed_fe(:,:) )) + (atfp1 * zn_sed_fe(:,:)) 4383 zn_sed_fe(:,:) = za_sed_fe(:,:) 4384 za_sed_fe(:,:) = 0.0 4385 !! 4386 zb_sed_c(:,:) = (atfp * ( zb_sed_c(:,:) + za_sed_c(:,:) )) + (atfp1 * zn_sed_c(:,:) ) 4387 zn_sed_c(:,:) = za_sed_c(:,:) 4388 za_sed_c(:,:) = 0.0 4389 endif 4390 if (jinorgben.eq.1) then 4391 zb_sed_si(:,:) = (atfp * ( zb_sed_si(:,:) + za_sed_si(:,:) )) + (atfp1 * zn_sed_si(:,:)) 4392 zn_sed_si(:,:) = za_sed_si(:,:) 4393 za_sed_si(:,:) = 0.0 4394 !! 4395 zb_sed_ca(:,:) = (atfp * ( zb_sed_ca(:,:) + za_sed_ca(:,:) )) + (atfp1 * zn_sed_ca(:,:)) 4396 zn_sed_ca(:,:) = za_sed_ca(:,:) 4397 za_sed_ca(:,:) = 0.0 4398 endif 4399 ENDIF 4400 ELSE ! case of smolar scheme or muscl 4401 if (jorgben.eq.1) then 4402 zb_sed_n(:,:) = za_sed_n(:,:) 4403 zn_sed_n(:,:) = za_sed_n(:,:) 4404 za_sed_n(:,:) = 0.0 4405 !! 4406 zb_sed_fe(:,:) = za_sed_fe(:,:) 4407 zn_sed_fe(:,:) = za_sed_fe(:,:) 4408 za_sed_fe(:,:) = 0.0 4409 !! 4410 zb_sed_c(:,:) = za_sed_c(:,:) 4411 zn_sed_c(:,:) = za_sed_c(:,:) 4412 za_sed_c(:,:) = 0.0 4413 endif 4414 if (jinorgben.eq.1) then 4415 zb_sed_si(:,:) = za_sed_si(:,:) 4416 zn_sed_si(:,:) = za_sed_si(:,:) 4417 za_sed_si(:,:) = 0.0 4418 !! 4419 zb_sed_ca(:,:) = za_sed_ca(:,:) 4420 zn_sed_ca(:,:) = za_sed_ca(:,:) 4421 za_sed_ca(:,:) = 0.0 4422 endif 4423 ENDIF 4424 endif 4425 4426 IF( ln_diatrc ) THEN 4427 !!---------------------------------------------------------------------- 4428 !! Output several accumulated diagnostics 4429 !! - biomass-average phytoplankton limitation terms 4430 !! - integrated tendency terms 4431 !!---------------------------------------------------------------------- 4432 !! 4433 DO jj = 2,jpjm1 4434 DO ji = 2,jpim1 4435 !! non-diatom phytoplankton limitations 4436 trc2d(ji,jj,25) = trc2d(ji,jj,25) / MAX(ftot_pn(ji,jj), rsmall) 4437 trc2d(ji,jj,26) = trc2d(ji,jj,26) / MAX(ftot_pn(ji,jj), rsmall) 4438 trc2d(ji,jj,27) = trc2d(ji,jj,27) / MAX(ftot_pn(ji,jj), rsmall) 4439 !! diatom phytoplankton limitations 4440 trc2d(ji,jj,28) = trc2d(ji,jj,28) / MAX(ftot_pd(ji,jj), rsmall) 4441 trc2d(ji,jj,29) = trc2d(ji,jj,29) / MAX(ftot_pd(ji,jj), rsmall) 4442 trc2d(ji,jj,30) = trc2d(ji,jj,30) / MAX(ftot_pd(ji,jj), rsmall) 4443 trc2d(ji,jj,31) = trc2d(ji,jj,31) / MAX(ftot_pd(ji,jj), rsmall) 4444 trc2d(ji,jj,32) = trc2d(ji,jj,32) / MAX(ftot_pd(ji,jj), rsmall) 4445 !! tendency terms 4446 trc2d(ji,jj,76) = fflx_n(ji,jj) 4447 trc2d(ji,jj,77) = fflx_si(ji,jj) 4448 trc2d(ji,jj,78) = fflx_fe(ji,jj) 4449 !! integrated biomass 4450 trc2d(ji,jj,79) = ftot_pn(ji,jj) !! integrated non-diatom phytoplankton 4451 trc2d(ji,jj,80) = ftot_pd(ji,jj) !! integrated diatom phytoplankton 4452 trc2d(ji,jj,217) = ftot_zmi(ji,jj) !! Integrated microzooplankton 4453 trc2d(ji,jj,218) = ftot_zme(ji,jj) !! Integrated mesozooplankton 4454 trc2d(ji,jj,219) = ftot_det(ji,jj) !! Integrated slow detritus, nitrogen 4455 trc2d(ji,jj,220) = ftot_dtc(ji,jj) !! Integrated slow detritus, carbon 4456 # if defined key_roam 4457 !! the balance of nitrogen production/consumption 4458 trc2d(ji,jj,111) = fnit_prod(ji,jj) !! integrated nitrogen production 4459 trc2d(ji,jj,112) = fnit_cons(ji,jj) !! integrated nitrogen consumption 4460 !! the balance of carbon production/consumption 4461 trc2d(ji,jj,113) = fcar_prod(ji,jj) !! integrated carbon production 4462 trc2d(ji,jj,114) = fcar_cons(ji,jj) !! integrated carbon consumption 4463 !! the balance of oxygen production/consumption 4464 trc2d(ji,jj,115) = foxy_prod(ji,jj) !! integrated oxygen production 4465 trc2d(ji,jj,116) = foxy_cons(ji,jj) !! integrated oxygen consumption 4466 trc2d(ji,jj,117) = foxy_anox(ji,jj) !! integrated unrealised oxygen consumption 4467 # endif 4468 ENDDO 4469 ENDDO 4470 4471 # if defined key_roam 4472 # if defined key_axy_nancheck 4473 !!---------------------------------------------------------------------- 4474 !! Check for NaNs in diagnostic outputs 4475 !!---------------------------------------------------------------------- 4476 !! 4477 !! 2D diagnostics 4478 DO jn = 1,150 4479 fq0 = SUM(trc2d(:,:,jn)) 4480 !! AXY (30/01/14): "isnan" problem on HECTOR 4481 !! if (fq0 /= fq0 ) then 4482 if ( ieee_is_nan( fq0 ) ) then 4483 !! there's a NaN here 4484 if (lwp) write(numout,*) 'NAN detected in 2D diagnostic field', jn, 'at time', kt, 'at position:' 4485 DO jj = 1,jpj 4486 DO ji = 1,jpi 4487 if ( ieee_is_nan( trc2d(ji,jj,jn) ) ) then 4488 if (lwp) write (numout,'(a,3i6)') 'NAN-CHECK', & 4489 & ji, jj, jn 4490 endif 4491 ENDDO 4492 ENDDO 4493 CALL ctl_stop( 'trcbio_medusa, NAN in 2D diagnostic field' ) 4494 endif 4495 ENDDO 4496 !! 4497 !! 3D diagnostics 4498 DO jn = 1,5 4499 fq0 = SUM(trc3d(:,:,:,jn)) 4500 !! AXY (30/01/14): "isnan" problem on HECTOR 4501 !! if (fq0 /= fq0 ) then 4502 if ( ieee_is_nan( fq0 ) ) then 4503 !! there's a NaN here 4504 if (lwp) write(numout,*) 'NAN detected in 3D diagnostic field', jn, 'at time', kt, 'at position:' 4505 DO jk = 1,jpk 4506 DO jj = 1,jpj 4507 DO ji = 1,jpi 4508 if ( ieee_is_nan( trc3d(ji,jj,jk,jn) ) ) then 4509 if (lwp) write (numout,'(a,4i6)') 'NAN-CHECK', & 4510 & ji, jj, jk, jn 4511 endif 4512 ENDDO 4513 ENDDO 4514 ENDDO 4515 CALL ctl_stop( 'trcbio_medusa, NAN in 3D diagnostic field' ) 4516 endif 4517 ENDDO 4518 CALL flush(numout) 4519 # endif 4520 # endif 4521 4522 !!---------------------------------------------------------------------- 4523 !! Don't know what this does; belongs to someone else ... 4524 !!---------------------------------------------------------------------- 4525 !! 4526 !! Lateral boundary conditions on trc2d 4527 DO jn=1,jp_medusa_2d 4528 CALL lbc_lnk(trc2d(:,:,jn),'T',1. ) 4529 ENDDO 4530 4531 !! Lateral boundary conditions on trc3d 4532 DO jn=1,jp_medusa_3d 4533 CALL lbc_lnk(trc3d(:,:,1,jn),'T',1. ) 4534 ENDDO 4535 4536 4537 # if defined key_axy_nodiag 4538 !!---------------------------------------------------------------------- 4539 !! Blank diagnostics as a NaN-trap 4540 !!---------------------------------------------------------------------- 4541 !! 4542 !! blank 2D diagnostic array 4543 trc2d(:,:,:) = 0.e0 4544 !! 4545 !! blank 3D diagnostic array 4546 trc3d(:,:,:,:) = 0.e0 4547 # endif 4548 4549 4550 !!---------------------------------------------------------------------- 4551 !! Add in XML diagnostics stuff 4552 !!---------------------------------------------------------------------- 4553 !! 4554 !! ** 2D diagnostics 4555 DO jn=1,jp_medusa_2d 4556 CALL iom_put(TRIM(ctrc2d(jn)), trc2d(:,:,jn)) 4557 END DO 4558 !! AXY (17/02/14): don't think I need this if I modify the above for all diagnostics 4559 !! # if defined key_roam 4560 !! DO jn=91,jp_medusa_2d 4561 !! CALL iom_put(TRIM(ctrc2d(jn)), trc2d(:,:,jn)) 4562 !! END DO 4563 !! # endif 4564 !! 4565 !! ** 3D diagnostics 4566 DO jn=1,jp_medusa_3d 4567 CALL iom_put(TRIM(ctrc3d(jn)), trc3d(:,:,:,jn)) 4568 END DO 4569 !! AXY (17/02/14): don't think I need this if I modify the above for all diagnostics 4570 !! # if defined key_roam 4571 !! CALL iom_put(TRIM(ctrc3d(5)), trc3d(:,:,:,5)) 4572 !! # endif 4573 4574 4575 ELSE IF( lk_iomput .AND. .NOT. ln_diatrc ) THEN 4576 !!!---------------------------------------------------------------------- 4577 !! Add very last diag calculations 4578 !!!---------------------------------------------------------------------- 4579 DO jj = 2,jpjm1 4580 DO ji = 2,jpim1 4581 !! 4582 IF( med_diag%PN_JLIM%dgsave ) THEN 4583 fjln2d(ji,jj) = fjln2d(ji,jj) / MAX(ftot_pn(ji,jj), rsmall) 4584 ENDIF 4585 IF( med_diag%PN_NLIM%dgsave ) THEN 4586 fnln2d(ji,jj) = fnln2d(ji,jj) / MAX(ftot_pn(ji,jj), rsmall) 4587 ENDIF 4588 IF( med_diag%PN_FELIM%dgsave ) THEN 4589 ffln2d(ji,jj) = ffln2d(ji,jj) / MAX(ftot_pn(ji,jj), rsmall) 4590 ENDIF 4591 IF( med_diag%PD_JLIM%dgsave ) THEN 4592 fjld2d(ji,jj) = fjld2d(ji,jj) / MAX(ftot_pd(ji,jj), rsmall) 4593 ENDIF 4594 IF( med_diag%PD_NLIM%dgsave ) THEN 4595 fnld2d(ji,jj) = fnld2d(ji,jj) / MAX(ftot_pd(ji,jj), rsmall) 4596 ENDIF 4597 IF( med_diag%PD_FELIM%dgsave ) THEN 4598 ffld2d(ji,jj) = ffld2d(ji,jj) / MAX(ftot_pd(ji,jj), rsmall) 4599 ENDIF 4600 IF( med_diag%PD_SILIM%dgsave ) THEN 4601 fsld2d2(ji,jj) = fsld2d2(ji,jj) / MAX(ftot_pd(ji,jj), rsmall) 4602 ENDIF 4603 IF( med_diag%PDSILIM2%dgsave ) THEN 4604 fsld2d(ji,jj) = fsld2d(ji,jj) / MAX(ftot_pd(ji,jj), rsmall) 4605 ENDIF 4606 ENDDO 4607 ENDDO 4608 !!---------------------------------------------------------------------- 4609 !! Add in XML diagnostics stuff 4610 !!---------------------------------------------------------------------- 4611 !! 4612 !! ** 2D diagnostics 4613 # if defined key_debug_medusa 4614 IF (lwp) write (numout,*) 'trc_bio_medusa: export all diag.' 4615 CALL flush(numout) 4616 # endif 4617 IF ( med_diag%INVTN%dgsave ) THEN 4618 CALL iom_put( "INVTN" , ftot_n ) 4619 ENDIF 4620 IF ( med_diag%INVTSI%dgsave ) THEN 4621 CALL iom_put( "INVTSI" , ftot_si ) 4622 ENDIF 4623 IF ( med_diag%INVTFE%dgsave ) THEN 4624 CALL iom_put( "INVTFE" , ftot_fe ) 4625 ENDIF 4626 IF ( med_diag%ML_PRN%dgsave ) THEN 4627 CALL iom_put( "ML_PRN" , fprn_ml ) 4628 ENDIF 4629 IF ( med_diag%ML_PRD%dgsave ) THEN 4630 CALL iom_put( "ML_PRD" , fprd_ml ) 4631 ENDIF 4632 IF ( med_diag%OCAL_LVL%dgsave ) THEN 4633 CALL iom_put( "OCAL_LVL" , fccd ) 4634 ENDIF 4635 IF ( med_diag%PN_JLIM%dgsave ) THEN 4636 CALL iom_put( "PN_JLIM" , fjln2d ) 4637 CALL wrk_dealloc( jpi, jpj, fjln2d ) 4638 ENDIF 4639 IF ( med_diag%PN_NLIM%dgsave ) THEN 4640 CALL iom_put( "PN_NLIM" , fnln2d ) 4641 CALL wrk_dealloc( jpi, jpj, fnln2d ) 4642 ENDIF 4643 IF ( med_diag%PN_FELIM%dgsave ) THEN 4644 CALL iom_put( "PN_FELIM" , ffln2d ) 4645 CALL wrk_dealloc( jpi, jpj, ffln2d ) 4646 ENDIF 4647 IF ( med_diag%PD_JLIM%dgsave ) THEN 4648 CALL iom_put( "PD_JLIM" , fjld2d ) 4649 CALL wrk_dealloc( jpi, jpj, fjld2d ) 4650 ENDIF 4651 IF ( med_diag%PD_NLIM%dgsave ) THEN 4652 CALL iom_put( "PD_NLIM" , fnld2d ) 4653 CALL wrk_dealloc( jpi, jpj, fnld2d ) 4654 ENDIF 4655 IF ( med_diag%PD_FELIM%dgsave ) THEN 4656 CALL iom_put( "PD_FELIM" , ffld2d ) 4657 CALL wrk_dealloc( jpi, jpj, ffld2d ) 4658 ENDIF 4659 IF ( med_diag%PD_SILIM%dgsave ) THEN 4660 CALL iom_put( "PD_SILIM" , fsld2d2 ) 4661 CALL wrk_dealloc( jpi, jpj, fsld2d2 ) 4662 ENDIF 4663 IF ( med_diag%PDSILIM2%dgsave ) THEN 4664 CALL iom_put( "PDSILIM2" , fsld2d ) 4665 CALL wrk_dealloc( jpi, jpj, fsld2d ) 4666 ENDIF 4667 IF ( med_diag%INTFLX_N%dgsave ) THEN 4668 CALL iom_put( "INTFLX_N" , fflx_n ) 4669 ENDIF 4670 IF ( med_diag%INTFLX_SI%dgsave ) THEN 4671 CALL iom_put( "INTFLX_SI" , fflx_si ) 4672 ENDIF 4673 IF ( med_diag%INTFLX_FE%dgsave ) THEN 4674 CALL iom_put( "INTFLX_FE" , fflx_fe ) 4675 ENDIF 4676 IF ( med_diag%INT_PN%dgsave ) THEN 4677 CALL iom_put( "INT_PN" , ftot_pn ) 4678 ENDIF 4679 IF ( med_diag%INT_PD%dgsave ) THEN 4680 CALL iom_put( "INT_PD" , ftot_pd ) 4681 ENDIF 4682 IF ( med_diag%INT_ZMI%dgsave ) THEN 4683 CALL iom_put( "INT_ZMI" , ftot_zmi ) 4684 ENDIF 4685 IF ( med_diag%INT_ZME%dgsave ) THEN 4686 CALL iom_put( "INT_ZME" , ftot_zme ) 4687 ENDIF 4688 IF ( med_diag%INT_DET%dgsave ) THEN 4689 CALL iom_put( "INT_DET" , ftot_det ) 4690 ENDIF 4691 IF ( med_diag%INT_DTC%dgsave ) THEN 4692 CALL iom_put( "INT_DTC" , ftot_dtc ) 4693 ENDIF 4694 IF ( med_diag%BEN_N%dgsave ) THEN 4695 CALL iom_put( "BEN_N" , za_sed_n ) 4696 ENDIF 4697 IF ( med_diag%BEN_FE%dgsave ) THEN 4698 CALL iom_put( "BEN_FE" , za_sed_fe ) 4699 ENDIF 4700 IF ( med_diag%BEN_C%dgsave ) THEN 4701 CALL iom_put( "BEN_C" , za_sed_c ) 4702 ENDIF 4703 IF ( med_diag%BEN_SI%dgsave ) THEN 4704 CALL iom_put( "BEN_SI" , za_sed_si ) 4705 ENDIF 4706 IF ( med_diag%BEN_CA%dgsave ) THEN 4707 CALL iom_put( "BEN_CA" , za_sed_ca ) 4708 ENDIF 4709 IF ( med_diag%RUNOFF%dgsave ) THEN 4710 CALL iom_put( "RUNOFF" , f_runoff ) 4711 ENDIF 4712 # if defined key_roam 4713 IF ( med_diag%N_PROD%dgsave ) THEN 4714 CALL iom_put( "N_PROD" , fnit_prod ) 4715 ENDIF 4716 IF ( med_diag%N_CONS%dgsave ) THEN 4717 CALL iom_put( "N_CONS" , fnit_cons ) 4718 ENDIF 4719 IF ( med_diag%C_PROD%dgsave ) THEN 4720 CALL iom_put( "C_PROD" , fcar_prod ) 4721 ENDIF 4722 IF ( med_diag%C_CONS%dgsave ) THEN 4723 CALL iom_put( "C_CONS" , fcar_cons ) 4724 ENDIF 4725 IF ( med_diag%O2_PROD%dgsave ) THEN 4726 CALL iom_put( "O2_PROD" , foxy_prod ) 4727 ENDIF 4728 IF ( med_diag%O2_CONS%dgsave ) THEN 4729 CALL iom_put( "O2_CONS" , foxy_cons ) 4730 ENDIF 4731 IF ( med_diag%O2_ANOX%dgsave ) THEN 4732 CALL iom_put( "O2_ANOX" , foxy_anox ) 4733 ENDIF 4734 IF ( med_diag%INVTC%dgsave ) THEN 4735 CALL iom_put( "INVTC" , ftot_c ) 4736 ENDIF 4737 IF ( med_diag%INVTALK%dgsave ) THEN 4738 CALL iom_put( "INVTALK" , ftot_a ) 4739 ENDIF 4740 IF ( med_diag%INVTO2%dgsave ) THEN 4741 CALL iom_put( "INVTO2" , ftot_o2 ) 4742 ENDIF 4743 IF ( med_diag%COM_RESP%dgsave ) THEN 4744 CALL iom_put( "COM_RESP" , fcomm_resp ) 4745 ENDIF 4746 # endif 4747 !! 4748 !! diagnostic filled in the i-j-k main loop 4749 !!-------------------------------------------- 4750 IF ( med_diag%PRN%dgsave ) THEN 4751 CALL iom_put( "PRN" , fprn2d ) 4752 CALL wrk_dealloc( jpi, jpj, fprn2d ) 4753 ENDIF 4754 IF ( med_diag%MPN%dgsave ) THEN 4755 CALL iom_put( "MPN" ,fdpn2d ) 4756 CALL wrk_dealloc( jpi, jpj, fdpn2d ) 4757 ENDIF 4758 IF ( med_diag%PRD%dgsave ) THEN 4759 CALL iom_put( "PRD" ,fprd2d ) 4760 CALL wrk_dealloc( jpi, jpj, fprd2d ) 4761 ENDIF 4762 IF( med_diag%MPD%dgsave ) THEN 4763 CALL iom_put( "MPD" , fdpd2d ) 4764 CALL wrk_dealloc( jpi, jpj, fdpd2d ) 4765 ENDIF 4766 ! IF( med_diag%DSED%dgsave ) THEN 4767 ! CALL iom_put( "DSED" , ftot_n ) 4768 ! ENDIF 4769 IF( med_diag%OPAL%dgsave ) THEN 4770 CALL iom_put( "OPAL" , fprds2d ) 4771 CALL wrk_dealloc( jpi, jpj, fprds2d ) 4772 ENDIF 4773 IF( med_diag%OPALDISS%dgsave ) THEN 4774 CALL iom_put( "OPALDISS" , fsdiss2d ) 4775 CALL wrk_dealloc( jpi, jpj, fsdiss2d ) 4776 ENDIF 4777 IF( med_diag%GMIPn%dgsave ) THEN 4778 CALL iom_put( "GMIPn" , fgmipn2d ) 4779 CALL wrk_dealloc( jpi, jpj, fgmipn2d ) 4780 ENDIF 4781 IF( med_diag%GMID%dgsave ) THEN 4782 CALL iom_put( "GMID" , fgmid2d ) 4783 CALL wrk_dealloc( jpi, jpj, fgmid2d ) 4784 ENDIF 4785 IF( med_diag%MZMI%dgsave ) THEN 4786 CALL iom_put( "MZMI" , fdzmi2d ) 4787 CALL wrk_dealloc( jpi, jpj, fdzmi2d ) 4788 ENDIF 4789 IF( med_diag%GMEPN%dgsave ) THEN 4790 CALL iom_put( "GMEPN" , fgmepn2d ) 4791 CALL wrk_dealloc( jpi, jpj, fgmepn2d ) 4792 ENDIF 4793 IF( med_diag%GMEPD%dgsave ) THEN 4794 CALL iom_put( "GMEPD" , fgmepd2d ) 4795 CALL wrk_dealloc( jpi, jpj, fgmepd2d ) 4796 ENDIF 4797 IF( med_diag%GMEZMI%dgsave ) THEN 4798 CALL iom_put( "GMEZMI" , fgmezmi2d ) 4799 CALL wrk_dealloc( jpi, jpj, fgmezmi2d ) 4800 ENDIF 4801 IF( med_diag%GMED%dgsave ) THEN 4802 CALL iom_put( "GMED" , fgmed2d ) 4803 CALL wrk_dealloc( jpi, jpj, fgmed2d ) 4804 ENDIF 4805 IF( med_diag%MZME%dgsave ) THEN 4806 CALL iom_put( "MZME" , fdzme2d ) 4807 CALL wrk_dealloc( jpi, jpj, fdzme2d ) 4808 ENDIF 4809 ! IF( med_diag%DEXP%dgsave ) THEN 4810 ! CALL iom_put( "DEXP" , ftot_n ) 4811 ! ENDIF 4812 IF( med_diag%DETN%dgsave ) THEN 4813 CALL iom_put( "DETN" , fslown2d ) 4814 CALL wrk_dealloc( jpi, jpj, fslown2d ) 4815 ENDIF 4816 IF( med_diag%MDET%dgsave ) THEN 4817 CALL iom_put( "MDET" , fdd2d ) 4818 CALL wrk_dealloc( jpi, jpj, fdd2d ) 4819 ENDIF 4820 IF( med_diag%AEOLIAN%dgsave ) THEN 4821 CALL iom_put( "AEOLIAN" , ffetop2d ) 4822 CALL wrk_dealloc( jpi, jpj, ffetop2d ) 4823 ENDIF 4824 IF( med_diag%BENTHIC%dgsave ) THEN 4825 CALL iom_put( "BENTHIC" , ffebot2d ) 4826 CALL wrk_dealloc( jpi, jpj, ffebot2d ) 4827 ENDIF 4828 IF( med_diag%SCAVENGE%dgsave ) THEN 4829 CALL iom_put( "SCAVENGE" , ffescav2d ) 4830 CALL wrk_dealloc( jpi, jpj, ffescav2d ) 4831 ENDIF 4832 !! 4833 IF( med_diag%TOTREG_N%dgsave ) THEN 4834 CALL iom_put( "TOTREG_N" , fregen2d ) 4835 CALL wrk_dealloc( jpi, jpj, fregen2d ) 4836 ENDIF 4837 IF( med_diag%TOTRG_SI%dgsave ) THEN 4838 CALL iom_put( "TOTRG_SI" , fregensi2d ) 4839 CALL wrk_dealloc( jpi, jpj, fregensi2d ) 4840 ENDIF 4841 !! 4842 IF( med_diag%FASTN%dgsave ) THEN 4843 CALL iom_put( "FASTN" , ftempn2d ) 4844 CALL wrk_dealloc( jpi, jpj, ftempn2d ) 4845 ENDIF 4846 IF( med_diag%FASTSI%dgsave ) THEN 4847 CALL iom_put( "FASTSI" , ftempsi2d ) 4848 CALL wrk_dealloc( jpi, jpj, ftempsi2d ) 4849 ENDIF 4850 IF( med_diag%FASTFE%dgsave ) THEN 4851 CALL iom_put( "FASTFE" , ftempfe2d ) 4852 CALL wrk_dealloc( jpi, jpj, ftempfe2d ) 4853 ENDIF 4854 IF( med_diag%FASTC%dgsave ) THEN 4855 CALL iom_put( "FASTC" , ftempc2d ) 4856 CALL wrk_dealloc( jpi, jpj, ftempc2d ) 4857 ENDIF 4858 IF( med_diag%FASTCA%dgsave ) THEN 4859 CALL iom_put( "FASTCA" , ftempca2d ) 4860 CALL wrk_dealloc( jpi, jpj, ftempca2d ) 4861 ENDIF 4862 !! 4863 IF( med_diag%REMINN%dgsave ) THEN 4864 CALL iom_put( "REMINN" , freminn2d ) 4865 CALL wrk_dealloc( jpi, jpj, freminn2d ) 4866 ENDIF 4867 IF( med_diag%REMINSI%dgsave ) THEN 4868 CALL iom_put( "REMINSI" , freminsi2d ) 4869 CALL wrk_dealloc( jpi, jpj, freminsi2d ) 4870 ENDIF 4871 IF( med_diag%REMINFE%dgsave ) THEN 4872 CALL iom_put( "REMINFE" , freminfe2d ) 4873 CALL wrk_dealloc( jpi, jpj, freminfe2d ) 4874 ENDIF 4875 IF( med_diag%REMINC%dgsave ) THEN 4876 CALL iom_put( "REMINC" , freminc2d ) 4877 CALL wrk_dealloc( jpi, jpj, freminc2d ) 4878 ENDIF 4879 IF( med_diag%REMINCA%dgsave ) THEN 4880 CALL iom_put( "REMINCA" , freminca2d ) 4881 CALL wrk_dealloc( jpi, jpj, freminca2d ) 4882 ENDIF 4883 IF( med_diag%SEAFLRN%dgsave ) THEN 4884 CALL iom_put( "SEAFLRN" , fsedn ) 4885 ENDIF 4886 IF( med_diag%SEAFLRSI%dgsave ) THEN 4887 CALL iom_put( "SEAFLRSI" , fsedsi ) 4888 ENDIF 4889 IF( med_diag%SEAFLRFE%dgsave ) THEN 4890 CALL iom_put( "SEAFLRFE" , fsedfe ) 4891 ENDIF 4892 IF( med_diag%SEAFLRC%dgsave ) THEN 4893 CALL iom_put( "SEAFLRC" , fsedc ) 4894 ENDIF 4895 IF( med_diag%SEAFLRCA%dgsave ) THEN 4896 CALL iom_put( "SEAFLRCA" , fsedca ) 4897 ENDIF 4898 !! 4899 # if defined key_roam 4900 !! 4901 IF( med_diag%RIV_N%dgsave ) THEN 4902 CALL iom_put( "RIV_N" , rivn2d ) 4903 CALL wrk_dealloc( jpi, jpj, rivn2d ) 4904 ENDIF 4905 IF( med_diag%RIV_SI%dgsave ) THEN 4906 CALL iom_put( "RIV_SI" , rivsi2d ) 4907 CALL wrk_dealloc( jpi, jpj, rivsi2d ) 4908 ENDIF 4909 IF( med_diag%RIV_C%dgsave ) THEN 4910 CALL iom_put( "RIV_C" , rivc2d ) 4911 CALL wrk_dealloc( jpi, jpj, rivc2d ) 4912 ENDIF 4913 IF( med_diag%RIV_ALK%dgsave ) THEN 4914 CALL iom_put( "RIV_ALK" , rivalk2d ) 4915 CALL wrk_dealloc( jpi, jpj, rivalk2d ) 4916 ENDIF 4917 IF( med_diag%DETC%dgsave ) THEN 4918 CALL iom_put( "DETC" , fslowc2d ) 4919 CALL wrk_dealloc( jpi, jpj, fslowc2d ) 4920 ENDIF 4921 !! 4922 IF( med_diag%PN_LLOSS%dgsave ) THEN 4923 CALL iom_put( "PN_LLOSS" , fdpn22d ) 4924 CALL wrk_dealloc( jpi, jpj, fdpn22d ) 4925 ENDIF 4926 IF( med_diag%PD_LLOSS%dgsave ) THEN 4927 CALL iom_put( "PD_LLOSS" , fdpd22d ) 4928 CALL wrk_dealloc( jpi, jpj, fdpd22d ) 4929 ENDIF 4930 IF( med_diag%ZI_LLOSS%dgsave ) THEN 4931 CALL iom_put( "ZI_LLOSS" , fdzmi22d ) 4932 CALL wrk_dealloc( jpi, jpj, fdzmi22d ) 4933 ENDIF 4934 IF( med_diag%ZE_LLOSS%dgsave ) THEN 4935 CALL iom_put( "ZE_LLOSS" , fdzme22d ) 4936 CALL wrk_dealloc( jpi, jpj, fdzme22d ) 4937 ENDIF 4938 IF( med_diag%ZI_MES_N%dgsave ) THEN 4939 CALL iom_put( "ZI_MES_N" , zimesn2d ) 4940 CALL wrk_dealloc( jpi, jpj, zimesn2d ) 4941 ENDIF 4942 IF( med_diag%ZI_MES_D%dgsave ) THEN 4943 CALL iom_put( "ZI_MES_D" , zimesd2d ) 4944 CALL wrk_dealloc( jpi, jpj, zimesd2d ) 4945 ENDIF 4946 IF( med_diag%ZI_MES_C%dgsave ) THEN 4947 CALL iom_put( "ZI_MES_C" , zimesc2d ) 4948 CALL wrk_dealloc( jpi, jpj, zimesc2d ) 4949 ENDIF 4950 IF( med_diag%ZI_MESDC%dgsave ) THEN 4951 CALL iom_put( "ZI_MESDC" ,zimesdc2d ) 4952 CALL wrk_dealloc( jpi, jpj, zimesdc2d ) 4953 ENDIF 4954 IF( med_diag%ZI_EXCR%dgsave ) THEN 4955 CALL iom_put( "ZI_EXCR" , ziexcr2d ) 4956 CALL wrk_dealloc( jpi, jpj, ziexcr2d ) 4957 ENDIF 4958 IF( med_diag%ZI_RESP%dgsave ) THEN 4959 CALL iom_put( "ZI_RESP" , ziresp2d ) 4960 CALL wrk_dealloc( jpi, jpj, ziresp2d ) 4961 ENDIF 4962 IF( med_diag%ZI_GROW%dgsave ) THEN 4963 CALL iom_put( "ZI_GROW" , zigrow2d ) 4964 CALL wrk_dealloc( jpi, jpj, zigrow2d ) 4965 ENDIF 4966 IF( med_diag%ZE_MES_N%dgsave ) THEN 4967 CALL iom_put( "ZE_MES_N" , zemesn2d ) 4968 CALL wrk_dealloc( jpi, jpj, zemesn2d ) 4969 ENDIF 4970 IF( med_diag%ZE_MES_D%dgsave ) THEN 4971 CALL iom_put( "ZE_MES_D" , zemesd2d ) 4972 CALL wrk_dealloc( jpi, jpj, zemesd2d ) 4973 ENDIF 4974 IF( med_diag%ZE_MES_C%dgsave ) THEN 4975 CALL iom_put( "ZE_MES_C" , zemesc2d ) 4976 CALL wrk_dealloc( jpi, jpj, zemesc2d ) 4977 ENDIF 4978 IF( med_diag%ZE_MESDC%dgsave ) THEN 4979 CALL iom_put( "ZE_MESDC" , zemesdc2d ) 4980 CALL wrk_dealloc( jpi, jpj, zemesdc2d ) 4981 ENDIF 4982 IF( med_diag%ZE_EXCR%dgsave ) THEN 4983 CALL iom_put( "ZE_EXCR" , zeexcr2d ) 4984 CALL wrk_dealloc( jpi, jpj, zeexcr2d ) 4985 ENDIF 4986 IF( med_diag%ZE_RESP%dgsave ) THEN 4987 CALL iom_put( "ZE_RESP" , zeresp2d ) 4988 CALL wrk_dealloc( jpi, jpj, zeresp2d ) 4989 ENDIF 4990 IF( med_diag%ZE_GROW%dgsave ) THEN 4991 CALL iom_put( "ZE_GROW" , zegrow2d ) 4992 CALL wrk_dealloc( jpi, jpj, zegrow2d ) 4993 ENDIF 4994 IF( med_diag%MDETC%dgsave ) THEN 4995 CALL iom_put( "MDETC" , mdetc2d ) 4996 CALL wrk_dealloc( jpi, jpj, mdetc2d ) 4997 ENDIF 4998 IF( med_diag%GMIDC%dgsave ) THEN 4999 CALL iom_put( "GMIDC" , gmidc2d ) 5000 CALL wrk_dealloc( jpi, jpj, gmidc2d ) 5001 ENDIF 5002 IF( med_diag%GMEDC%dgsave ) THEN 5003 CALL iom_put( "GMEDC" , gmedc2d ) 5004 CALL wrk_dealloc( jpi, jpj, gmedc2d ) 5005 ENDIF 5006 IF( med_diag%IBEN_N%dgsave ) THEN 5007 CALL iom_put( "IBEN_N" , iben_n2d ) 5008 CALL wrk_dealloc( jpi, jpj, iben_n2d ) 5009 ENDIF 5010 IF( med_diag%IBEN_FE%dgsave ) THEN 5011 CALL iom_put( "IBEN_FE" , iben_fe2d ) 5012 CALL wrk_dealloc( jpi, jpj, iben_fe2d ) 5013 ENDIF 5014 IF( med_diag%IBEN_C%dgsave ) THEN 5015 CALL iom_put( "IBEN_C" , iben_c2d ) 5016 CALL wrk_dealloc( jpi, jpj, iben_c2d ) 5017 ENDIF 5018 IF( med_diag%IBEN_SI%dgsave ) THEN 5019 CALL iom_put( "IBEN_SI" , iben_si2d ) 5020 CALL wrk_dealloc( jpi, jpj, iben_si2d ) 5021 ENDIF 5022 IF( med_diag%IBEN_CA%dgsave ) THEN 5023 CALL iom_put( "IBEN_CA" , iben_ca2d ) 5024 CALL wrk_dealloc( jpi, jpj, iben_ca2d ) 5025 ENDIF 5026 IF( med_diag%OBEN_N%dgsave ) THEN 5027 CALL iom_put( "OBEN_N" , oben_n2d ) 5028 CALL wrk_dealloc( jpi, jpj, oben_n2d ) 5029 ENDIF 5030 IF( med_diag%OBEN_FE%dgsave ) THEN 5031 CALL iom_put( "OBEN_FE" , oben_fe2d ) 5032 CALL wrk_dealloc( jpi, jpj, oben_fe2d ) 5033 ENDIF 5034 IF( med_diag%OBEN_C%dgsave ) THEN 5035 CALL iom_put( "OBEN_C" , oben_c2d ) 5036 CALL wrk_dealloc( jpi, jpj, oben_c2d ) 5037 ENDIF 5038 IF( med_diag%OBEN_SI%dgsave ) THEN 5039 CALL iom_put( "OBEN_SI" , oben_si2d ) 5040 CALL wrk_dealloc( jpi, jpj, oben_si2d ) 5041 ENDIF 5042 IF( med_diag%OBEN_CA%dgsave ) THEN 5043 CALL iom_put( "OBEN_CA" , oben_ca2d ) 5044 CALL wrk_dealloc( jpi, jpj, oben_ca2d ) 5045 ENDIF 5046 IF( med_diag%SFR_OCAL%dgsave ) THEN 5047 CALL iom_put( "SFR_OCAL" , sfr_ocal2d ) 5048 CALL wrk_dealloc( jpi, jpj, sfr_ocal2d ) 5049 ENDIF 5050 IF( med_diag%SFR_OARG%dgsave ) THEN 5051 CALL iom_put( "SFR_OARG" , sfr_oarg2d ) 5052 CALL wrk_dealloc( jpi, jpj, sfr_oarg2d ) 5053 ENDIF 5054 IF( med_diag%LYSO_CA%dgsave ) THEN 5055 CALL iom_put( "LYSO_CA" , lyso_ca2d ) 5056 CALL wrk_dealloc( jpi, jpj, lyso_ca2d ) 5057 ENDIF 5058 # endif 5059 !! 5060 !! ** 3D diagnostics 5061 IF( med_diag%TPP3%dgsave ) THEN 5062 CALL iom_put( "TPP3" , tpp3d ) 5063 CALL wrk_dealloc( jpi, jpj, jpk, tpp3d ) 5064 ENDIF 5065 IF( med_diag%DETFLUX3%dgsave ) THEN 5066 CALL iom_put( "DETFLUX3" , detflux3d ) 5067 CALL wrk_dealloc( jpi, jpj, jpk, detflux3d ) 5068 ENDIF 5069 IF( med_diag%REMIN3N%dgsave ) THEN 5070 CALL iom_put( "REMIN3N" , remin3dn ) 5071 CALL wrk_dealloc( jpi, jpj, jpk, remin3dn ) 5072 ENDIF 5073 # if defined key_roam 5074 IF( med_diag%PH3%dgsave ) THEN 5075 CALL iom_put( "PH3" , f3_pH ) 5076 ENDIF 5077 IF( med_diag%OM_CAL3%dgsave ) THEN 5078 CALL iom_put( "OM_CAL3" , f3_omcal ) 5079 ENDIF 5080 !! 5081 !! AXY (09/11/16): 2D CMIP6 diagnostics 5082 IF( med_diag%INTDISSIC%dgsave ) THEN 5083 CALL iom_put( "INTDISSIC" , intdissic ) 5084 CALL wrk_dealloc( jpi, jpj, intdissic ) 5085 ENDIF 5086 IF( med_diag%INTDISSIN%dgsave ) THEN 5087 CALL iom_put( "INTDISSIN" , intdissin ) 5088 CALL wrk_dealloc( jpi, jpj, intdissin ) 5089 ENDIF 5090 IF( med_diag%INTDISSISI%dgsave ) THEN 5091 CALL iom_put( "INTDISSISI" , intdissisi ) 5092 CALL wrk_dealloc( jpi, jpj, intdissisi ) 5093 ENDIF 5094 IF( med_diag%INTTALK%dgsave ) THEN 5095 CALL iom_put( "INTTALK" , inttalk ) 5096 CALL wrk_dealloc( jpi, jpj, inttalk ) 5097 ENDIF 5098 IF( med_diag%O2min%dgsave ) THEN 5099 CALL iom_put( "O2min" , o2min ) 5100 CALL wrk_dealloc( jpi, jpj, o2min ) 5101 ENDIF 5102 IF( med_diag%ZO2min%dgsave ) THEN 5103 CALL iom_put( "ZO2min" , zo2min ) 5104 CALL wrk_dealloc( jpi, jpj, zo2min ) 5105 ENDIF 5106 IF( med_diag%FBDDTALK%dgsave ) THEN 5107 CALL iom_put( "FBDDTALK" , fbddtalk ) 5108 CALL wrk_dealloc( jpi, jpj, fbddtalk ) 5109 ENDIF 5110 IF( med_diag%FBDDTDIC%dgsave ) THEN 5111 CALL iom_put( "FBDDTDIC" , fbddtdic ) 5112 CALL wrk_dealloc( jpi, jpj, fbddtdic ) 5113 ENDIF 5114 IF( med_diag%FBDDTDIFE%dgsave ) THEN 5115 CALL iom_put( "FBDDTDIFE" , fbddtdife ) 5116 CALL wrk_dealloc( jpi, jpj, fbddtdife ) 5117 ENDIF 5118 IF( med_diag%FBDDTDIN%dgsave ) THEN 5119 CALL iom_put( "FBDDTDIN" , fbddtdin ) 5120 CALL wrk_dealloc( jpi, jpj, fbddtdin ) 5121 ENDIF 5122 IF( med_diag%FBDDTDISI%dgsave ) THEN 5123 CALL iom_put( "FBDDTDISI" , fbddtdisi ) 5124 CALL wrk_dealloc( jpi, jpj, fbddtdisi ) 5125 ENDIF 5126 !! 5127 !! AXY (09/11/16): 3D CMIP6 diagnostics 5128 IF( med_diag%TPPD3%dgsave ) THEN 5129 CALL iom_put( "TPPD3" , tppd3 ) 5130 CALL wrk_dealloc( jpi, jpj, jpk, tppd3 ) 5131 ENDIF 5132 IF( med_diag%BDDTALK3%dgsave ) THEN 5133 CALL iom_put( "BDDTALK3" , bddtalk3 ) 5134 CALL wrk_dealloc( jpi, jpj, jpk, bddtalk3 ) 5135 ENDIF 5136 IF( med_diag%BDDTDIC3%dgsave ) THEN 5137 CALL iom_put( "BDDTDIC3" , bddtdic3 ) 5138 CALL wrk_dealloc( jpi, jpj, jpk, bddtdic3 ) 5139 ENDIF 5140 IF( med_diag%BDDTDIFE3%dgsave ) THEN 5141 CALL iom_put( "BDDTDIFE3" , bddtdife3 ) 5142 CALL wrk_dealloc( jpi, jpj, jpk, bddtdife3 ) 5143 ENDIF 5144 IF( med_diag%BDDTDIN3%dgsave ) THEN 5145 CALL iom_put( "BDDTDIN3" , bddtdin3 ) 5146 CALL wrk_dealloc( jpi, jpj, jpk, bddtdin3 ) 5147 ENDIF 5148 IF( med_diag%BDDTDISI3%dgsave ) THEN 5149 CALL iom_put( "BDDTDISI3" , bddtdisi3 ) 5150 CALL wrk_dealloc( jpi, jpj, jpk, bddtdisi3 ) 5151 ENDIF 5152 IF( med_diag%FD_NIT3%dgsave ) THEN 5153 CALL iom_put( "FD_NIT3" , fd_nit3 ) 5154 CALL wrk_dealloc( jpi, jpj, jpk, fd_nit3 ) 5155 ENDIF 5156 IF( med_diag%FD_SIL3%dgsave ) THEN 5157 CALL iom_put( "FD_SIL3" , fd_sil3 ) 5158 CALL wrk_dealloc( jpi, jpj, jpk, fd_sil3 ) 5159 ENDIF 5160 IF( med_diag%FD_CAL3%dgsave ) THEN 5161 CALL iom_put( "FD_CAL3" , fd_cal3 ) 5162 CALL wrk_dealloc( jpi, jpj, jpk, fd_cal3 ) 5163 ENDIF 5164 IF( med_diag%FD_CAR3%dgsave ) THEN 5165 CALL iom_put( "FD_CAR3" , fd_car3 ) 5166 CALL wrk_dealloc( jpi, jpj, jpk, fd_car3 ) 5167 ENDIF 5168 IF( med_diag%CO33%dgsave ) THEN 5169 CALL iom_put( "CO33" , f3_co3 ) 5170 ENDIF 5171 IF( med_diag%CO3SATARAG3%dgsave ) THEN 5172 CALL iom_put( "CO3SATARAG3" , f3_omarg ) 5173 ENDIF 5174 IF( med_diag%CO3SATCALC3%dgsave ) THEN 5175 CALL iom_put( "CO3SATCALC3" , f3_omcal ) 5176 ENDIF 5177 IF( med_diag%EXPC3%dgsave ) THEN 5178 CALL iom_put( "EXPC3" , expc3 ) 5179 CALL wrk_dealloc( jpi, jpj, jpk, expc3 ) 5180 ENDIF 5181 IF( med_diag%EXPN3%dgsave ) THEN 5182 CALL iom_put( "EXPN3" , expn3 ) 5183 CALL wrk_dealloc( jpi, jpj, jpk, expn3 ) 5184 ENDIF 5185 IF( med_diag%DCALC3%dgsave ) THEN 5186 CALL iom_put( "DCALC3" , dcalc3 ) 5187 CALL wrk_dealloc( jpi, jpj, jpk, dcalc3 ) 5188 ENDIF 5189 IF( med_diag%FEDISS3%dgsave ) THEN 5190 CALL iom_put( "FEDISS3" , fediss3 ) 5191 CALL wrk_dealloc( jpi, jpj, jpk, fediss3 ) 5192 ENDIF 5193 IF( med_diag%FESCAV3%dgsave ) THEN 5194 CALL iom_put( "FESCAV3" , fescav3 ) 5195 CALL wrk_dealloc( jpi, jpj, jpk, fescav3 ) 5196 ENDIF 5197 IF( med_diag%MIGRAZP3%dgsave ) THEN 5198 CALL iom_put( "MIGRAZP3" , migrazp3 ) 5199 CALL wrk_dealloc( jpi, jpj, jpk, migrazp3 ) 5200 ENDIF 5201 IF( med_diag%MIGRAZD3%dgsave ) THEN 5202 CALL iom_put( "MIGRAZD3" , migrazd3 ) 5203 CALL wrk_dealloc( jpi, jpj, jpk, migrazd3 ) 5204 ENDIF 5205 IF( med_diag%MEGRAZP3%dgsave ) THEN 5206 CALL iom_put( "MEGRAZP3" , megrazp3 ) 5207 CALL wrk_dealloc( jpi, jpj, jpk, megrazp3 ) 5208 ENDIF 5209 IF( med_diag%MEGRAZD3%dgsave ) THEN 5210 CALL iom_put( "MEGRAZD3" , megrazd3 ) 5211 CALL wrk_dealloc( jpi, jpj, jpk, megrazd3 ) 5212 ENDIF 5213 IF( med_diag%MEGRAZZ3%dgsave ) THEN 5214 CALL iom_put( "MEGRAZZ3" , megrazz3 ) 5215 CALL wrk_dealloc( jpi, jpj, jpk, megrazz3 ) 5216 ENDIF 5217 IF( med_diag%O2SAT3%dgsave ) THEN 5218 CALL iom_put( "O2SAT3" , o2sat3 ) 5219 CALL wrk_dealloc( jpi, jpj, jpk, o2sat3 ) 5220 ENDIF 5221 IF( med_diag%PBSI3%dgsave ) THEN 5222 CALL iom_put( "PBSI3" , pbsi3 ) 5223 CALL wrk_dealloc( jpi, jpj, jpk, pbsi3 ) 5224 ENDIF 5225 IF( med_diag%PCAL3%dgsave ) THEN 5226 CALL iom_put( "PCAL3" , pcal3 ) 5227 CALL wrk_dealloc( jpi, jpj, jpk, pcal3 ) 5228 ENDIF 5229 IF( med_diag%REMOC3%dgsave ) THEN 5230 CALL iom_put( "REMOC3" , remoc3 ) 5231 CALL wrk_dealloc( jpi, jpj, jpk, remoc3 ) 5232 ENDIF 5233 IF( med_diag%PNLIMJ3%dgsave ) THEN 5234 CALL iom_put( "PNLIMJ3" , pnlimj3 ) 5235 CALL wrk_dealloc( jpi, jpj, jpk, pnlimj3 ) 5236 ENDIF 5237 IF( med_diag%PNLIMN3%dgsave ) THEN 5238 CALL iom_put( "PNLIMN3" , pnlimn3 ) 5239 CALL wrk_dealloc( jpi, jpj, jpk, pnlimn3 ) 5240 ENDIF 5241 IF( med_diag%PNLIMFE3%dgsave ) THEN 5242 CALL iom_put( "PNLIMFE3" , pnlimfe3 ) 5243 CALL wrk_dealloc( jpi, jpj, jpk, pnlimfe3 ) 5244 ENDIF 5245 IF( med_diag%PDLIMJ3%dgsave ) THEN 5246 CALL iom_put( "PDLIMJ3" , pdlimj3 ) 5247 CALL wrk_dealloc( jpi, jpj, jpk, pdlimj3 ) 5248 ENDIF 5249 IF( med_diag%PDLIMN3%dgsave ) THEN 5250 CALL iom_put( "PDLIMN3" , pdlimn3 ) 5251 CALL wrk_dealloc( jpi, jpj, jpk, pdlimn3 ) 5252 ENDIF 5253 IF( med_diag%PDLIMFE3%dgsave ) THEN 5254 CALL iom_put( "PDLIMFE3" , pdlimfe3 ) 5255 CALL wrk_dealloc( jpi, jpj, jpk, pdlimfe3 ) 5256 ENDIF 5257 IF( med_diag%PDLIMSI3%dgsave ) THEN 5258 CALL iom_put( "PDLIMSI3" , pdlimsi3 ) 5259 CALL wrk_dealloc( jpi, jpj, jpk, pdlimsi3 ) 5260 ENDIF 5261 5262 # endif 5263 5264 CALL wrk_dealloc( jpi, jpj, zw2d ) 5265 5266 ENDIF ! end of ln_diatrc option 4275 CALL bio_medusa_fin( kt ) 5267 4276 5268 4277 # if defined key_trc_diabio
Note: See TracChangeset
for help on using the changeset viewer.