Changeset 5937 for branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90
- Timestamp:
- 2015-11-27T13:58:10+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90
r5931 r5937 69 69 # if defined key_iomput 70 70 USE iom 71 USE trc_nam_dia ! JPALM 13-11-2015 -- if iom_use for diag72 USE trc_nam_iom_medusa ! JPALM 13-11-2015 -- if iom_use for diag71 !!USE trc_nam_dia ! JPALM 13-11-2015 -- if iom_use for diag 72 !!USE trc_nam_iom_medusa ! JPALM 13-11-2015 -- if iom_use for diag 73 73 # endif 74 74 # if defined key_roam … … 169 169 !! primary production and chl related quantities 170 170 REAL(wp) :: fthetan,faln,fchn1,fchn,fjln,fprn,frn 171 REAL(wp), DIMENSION(jpi,jpj) :: fprn2d172 171 REAL(wp) :: fthetad,fald,fchd1,fchd,fjld,fprd,frd 173 REAL(wp), DIMENSION(jpi,jpj) :: fprd2d174 172 !! AXY (03/02/11): add in Liebig terms 175 173 REAL(wp) :: fpnlim, fpdlim … … 214 212 !! mortality/Remineralisation (defunct parameter "fz" removed) 215 213 REAL(wp) :: fdpn,fdpd,fdpds,fdzmi,fdzme,fdd 216 REAL(wp), DIMENSION(jpi,jpj) :: fdpn2d,fdpd2d217 214 # if defined key_roam 218 215 REAL(wp) :: fddc … … 3615 3612 ENDIF 3616 3613 IF( med_diag%TOTRG_SI%dgsave ) THEN 3617 fregensi2d( ) = fregensi2d() + fregensi3614 fregensi2d(ji,jj) = fregensi2d(ji,jj) + fregensi 3618 3615 ENDIF 3619 3616 !! … … 4142 4139 endif 4143 4140 !! CLOSE horizontal loops 4144 END 4145 END 4141 ENDDO 4142 ENDDO 4146 4143 !! 4147 4144 IF( lk_iomput .AND. .NOT. ln_diatrc ) THEN … … 4290 4287 ENDIF 4291 4288 ELSE IF (jk.eq.i0150) THEN 4292 IF( med_diag%BAS SIN_01%dgsave ) THEN4293 CALL iom_put( "BAS SIN_01" , fprn2d )4294 ENDIF 4295 IF( med_diag%BAS SIN_02%dgsave ) THEN4296 CALL iom_put( "BAS SIN_02" , fdpn22d )4297 ENDIF 4298 IF( med_diag%BAS SIN_03%dgsave ) THEN4299 CALL iom_put( "BAS SIN_03" , fdpn2d )4300 ENDIF 4301 IF( med_diag%BAS SIN_04%dgsave ) THEN4302 CALL iom_put( "BAS SIN_04" , fgmipn2d )4303 ENDIF 4304 IF( med_diag%BAS SIN_05%dgsave ) THEN4305 CALL iom_put( "BAS SIN_05" , fgmepn2d )4306 ENDIF 4307 IF( med_diag%BAS SIN_06%dgsave ) THEN4308 CALL iom_put( "BAS SIN_06" , fprd2d )4309 ENDIF 4310 IF( med_diag%BAS SIN_07%dgsave ) THEN4311 CALL iom_put( "BAS SIN_07" , fdpd22d )4312 ENDIF 4313 IF( med_diag%BAS SIN_08%dgsave ) THEN4314 CALL iom_put( "BAS SIN_08" , fdpd2d )4315 ENDIF 4316 IF( med_diag%BAS SIN_09%dgsave ) THEN4317 CALL iom_put( "BAS SIN_09" , fgmepd2d )4318 ENDIF 4319 IF( med_diag%BAS SIN_10%dgsave ) THEN4320 CALL iom_put( "BAS SIN_10" , fgmid2d )4321 ENDIF 4322 IF( med_diag%BAS SIN_11%dgsave ) THEN4323 CALL iom_put( "BAS SIN_11" , gmidc2d )4324 ENDIF 4325 IF( med_diag%BAS SIN_12%dgsave ) THEN4326 CALL iom_put( "BAS SIN_12" , zimesn2d )4327 ENDIF 4328 IF( med_diag%BAS SIN_13%dgsave ) THEN4329 CALL iom_put( "BAS SIN_13" , zimesd2d )4330 ENDIF 4331 IF( med_diag%BAS SIN_14%dgsave ) THEN4332 CALL iom_put( "BAS SIN_14" , zimesc2d )4333 ENDIF 4334 IF( med_diag%BAS SIN_15%dgsave ) THEN4335 CALL iom_put( "BAS SIN_15" , zimesdc2d )4336 ENDIF 4337 IF( med_diag%BAS SIN_16%dgsave ) THEN4338 CALL iom_put( "BAS SIN_16" , ziexcr2d )4339 ENDIF 4340 IF( med_diag%BAS SIN_17%dgsave ) THEN4341 CALL iom_put( "BAS SIN_17" , ziresp2d )4342 ENDIF 4343 IF( med_diag%BAS SIN_18%dgsave ) THEN4344 CALL iom_put( "BAS SIN_18" , zigrow2d )4345 ENDIF 4346 IF( med_diag%BAS SIN_19%dgsave ) THEN4347 CALL iom_put( "BAS SIN_19" , fdzmi22d )4348 ENDIF 4349 IF( med_diag%BAS SIN_20%dgsave ) THEN4350 CALL iom_put( "BAS SIN_20" , fdzmi2d )4351 ENDIF 4352 IF( med_diag%BAS SIN_21%dgsave ) THEN4353 CALL iom_put( "BAS SIN_21" , fgmezmi2d )4354 ENDIF 4355 IF( med_diag%BAS SIN_22%dgsave ) THEN4356 CALL iom_put( "BAS SIN_22" , fgmed2d )4357 ENDIF 4358 IF( med_diag%BAS SIN_23%dgsave ) THEN4359 CALL iom_put( "BAS SIN_23" , gmedc2d )4360 ENDIF 4361 IF( med_diag%BAS SIN_24%dgsave ) THEN4362 CALL iom_put( "BAS SIN_24" , zemesn2d )4289 IF( med_diag%BASIN_01%dgsave ) THEN 4290 CALL iom_put( "BASIN_01" , fprn2d ) 4291 ENDIF 4292 IF( med_diag%BASIN_02%dgsave ) THEN 4293 CALL iom_put( "BASIN_02" , fdpn22d ) 4294 ENDIF 4295 IF( med_diag%BASIN_03%dgsave ) THEN 4296 CALL iom_put( "BASIN_03" , fdpn2d ) 4297 ENDIF 4298 IF( med_diag%BASIN_04%dgsave ) THEN 4299 CALL iom_put( "BASIN_04" , fgmipn2d ) 4300 ENDIF 4301 IF( med_diag%BASIN_05%dgsave ) THEN 4302 CALL iom_put( "BASIN_05" , fgmepn2d ) 4303 ENDIF 4304 IF( med_diag%BASIN_06%dgsave ) THEN 4305 CALL iom_put( "BASIN_06" , fprd2d ) 4306 ENDIF 4307 IF( med_diag%BASIN_07%dgsave ) THEN 4308 CALL iom_put( "BASIN_07" , fdpd22d ) 4309 ENDIF 4310 IF( med_diag%BASIN_08%dgsave ) THEN 4311 CALL iom_put( "BASIN_08" , fdpd2d ) 4312 ENDIF 4313 IF( med_diag%BASIN_09%dgsave ) THEN 4314 CALL iom_put( "BASIN_09" , fgmepd2d ) 4315 ENDIF 4316 IF( med_diag%BASIN_10%dgsave ) THEN 4317 CALL iom_put( "BASIN_10" , fgmid2d ) 4318 ENDIF 4319 IF( med_diag%BASIN_11%dgsave ) THEN 4320 CALL iom_put( "BASIN_11" , gmidc2d ) 4321 ENDIF 4322 IF( med_diag%BASIN_12%dgsave ) THEN 4323 CALL iom_put( "BASIN_12" , zimesn2d ) 4324 ENDIF 4325 IF( med_diag%BASIN_13%dgsave ) THEN 4326 CALL iom_put( "BASIN_13" , zimesd2d ) 4327 ENDIF 4328 IF( med_diag%BASIN_14%dgsave ) THEN 4329 CALL iom_put( "BASIN_14" , zimesc2d ) 4330 ENDIF 4331 IF( med_diag%BASIN_15%dgsave ) THEN 4332 CALL iom_put( "BASIN_15" , zimesdc2d ) 4333 ENDIF 4334 IF( med_diag%BASIN_16%dgsave ) THEN 4335 CALL iom_put( "BASIN_16" , ziexcr2d ) 4336 ENDIF 4337 IF( med_diag%BASIN_17%dgsave ) THEN 4338 CALL iom_put( "BASIN_17" , ziresp2d ) 4339 ENDIF 4340 IF( med_diag%BASIN_18%dgsave ) THEN 4341 CALL iom_put( "BASIN_18" , zigrow2d ) 4342 ENDIF 4343 IF( med_diag%BASIN_19%dgsave ) THEN 4344 CALL iom_put( "BASIN_19" , fdzmi22d ) 4345 ENDIF 4346 IF( med_diag%BASIN_20%dgsave ) THEN 4347 CALL iom_put( "BASIN_20" , fdzmi2d ) 4348 ENDIF 4349 IF( med_diag%BASIN_21%dgsave ) THEN 4350 CALL iom_put( "BASIN_21" , fgmezmi2d ) 4351 ENDIF 4352 IF( med_diag%BASIN_22%dgsave ) THEN 4353 CALL iom_put( "BASIN_22" , fgmed2d ) 4354 ENDIF 4355 IF( med_diag%BASIN_23%dgsave ) THEN 4356 CALL iom_put( "BASIN_23" , gmedc2d ) 4357 ENDIF 4358 IF( med_diag%BASIN_24%dgsave ) THEN 4359 CALL iom_put( "BASIN_24" , zemesn2d ) 4363 4360 ENDIF 4364 IF( med_diag%BAS SIN_25%dgsave ) THEN4365 CALL iom_put( "BAS SIN_25" , zemesd2d )4366 ENDIF 4367 IF( med_diag%BAS SIN_26%dgsave ) THEN4368 CALL iom_put( "BAS SIN_26" , zemesc2d )4369 ENDIF 4370 IF( med_diag%BAS SIN_27%dgsave ) THEN4371 CALL iom_put( "BAS SIN_27" , zemesdc2d )4372 ENDIF 4373 IF( med_diag%BAS SIN_28%dgsave ) THEN4374 CALL iom_put( "BAS SIN_28" , zeexcr2d )4375 ENDIF 4376 IF( med_diag%BAS SIN_29%dgsave ) THEN4377 CALL iom_put( "BAS SIN_29" , zeresp2d )4378 ENDIF 4379 IF( med_diag%BAS SIN_30%dgsave ) THEN4380 CALL iom_put( "BAS SIN_30" , zegrow2d )4381 ENDIF 4382 IF( med_diag%BAS SIN_31%dgsave ) THEN4383 CALL iom_put( "BAS SIN_30" , fdzme22d )4384 ENDIF 4385 IF( med_diag%BAS SIN_32%dgsave ) THEN4386 CALL iom_put( "BAS SIN_32" , fdzme2d )4387 ENDIF 4388 IF( med_diag%BAS SIN_33%dgsave ) THEN4389 CALL iom_put( "BAS SIN_33" , fslown2d )4390 ENDIF 4391 IF( med_diag%BAS SIN_34%dgsave ) THEN4392 CALL iom_put( "BAS SIN_34" , fdd2d )4393 ENDIF 4394 IF( med_diag%BAS SIN_35%dgsave ) THEN4395 CALL iom_put( "BAS SIN_35" , fslowc2d )4396 ENDIF 4397 IF( med_diag%BAS SIN_36%dgsave ) THEN4398 CALL iom_put( "BAS SIN_36" , mdetc2d )4399 ENDIF 4400 IF( med_diag%BAS SIN_37%dgsave ) THEN4401 CALL iom_put( "BAS SIN_37" , ftempn2d )4402 ENDIF 4403 IF( med_diag%BAS SIN_38%dgsave ) THEN4404 CALL iom_put( "BAS SIN_38" , freminn2d )4405 ENDIF 4406 IF( med_diag%BAS SIN_39%dgsave ) THEN4407 CALL iom_put( "BAS SIN_39" , ftempc2d )4408 ENDIF 4409 IF( med_diag%BAS SIN_40%dgsave ) THEN4410 CALL iom_put( "BAS SIN_40" , freminc2d )4411 ENDIF 4412 IF( med_diag%BAS SIN_41%dgsave ) THEN4413 CALL iom_put( "BAS SIN_41" , fcomm_resp )4361 IF( med_diag%BASIN_25%dgsave ) THEN 4362 CALL iom_put( "BASIN_25" , zemesd2d ) 4363 ENDIF 4364 IF( med_diag%BASIN_26%dgsave ) THEN 4365 CALL iom_put( "BASIN_26" , zemesc2d ) 4366 ENDIF 4367 IF( med_diag%BASIN_27%dgsave ) THEN 4368 CALL iom_put( "BASIN_27" , zemesdc2d ) 4369 ENDIF 4370 IF( med_diag%BASIN_28%dgsave ) THEN 4371 CALL iom_put( "BASIN_28" , zeexcr2d ) 4372 ENDIF 4373 IF( med_diag%BASIN_29%dgsave ) THEN 4374 CALL iom_put( "BASIN_29" , zeresp2d ) 4375 ENDIF 4376 IF( med_diag%BASIN_30%dgsave ) THEN 4377 CALL iom_put( "BASIN_30" , zegrow2d ) 4378 ENDIF 4379 IF( med_diag%BASIN_31%dgsave ) THEN 4380 CALL iom_put( "BASIN_30" , fdzme22d ) 4381 ENDIF 4382 IF( med_diag%BASIN_32%dgsave ) THEN 4383 CALL iom_put( "BASIN_32" , fdzme2d ) 4384 ENDIF 4385 IF( med_diag%BASIN_33%dgsave ) THEN 4386 CALL iom_put( "BASIN_33" , fslown2d ) 4387 ENDIF 4388 IF( med_diag%BASIN_34%dgsave ) THEN 4389 CALL iom_put( "BASIN_34" , fdd2d ) 4390 ENDIF 4391 IF( med_diag%BASIN_35%dgsave ) THEN 4392 CALL iom_put( "BASIN_35" , fslowc2d ) 4393 ENDIF 4394 IF( med_diag%BASIN_36%dgsave ) THEN 4395 CALL iom_put( "BASIN_36" , mdetc2d ) 4396 ENDIF 4397 IF( med_diag%BASIN_37%dgsave ) THEN 4398 CALL iom_put( "BASIN_37" , ftempn2d ) 4399 ENDIF 4400 IF( med_diag%BASIN_38%dgsave ) THEN 4401 CALL iom_put( "BASIN_38" , freminn2d ) 4402 ENDIF 4403 IF( med_diag%BASIN_39%dgsave ) THEN 4404 CALL iom_put( "BASIN_39" , ftempc2d ) 4405 ENDIF 4406 IF( med_diag%BASIN_40%dgsave ) THEN 4407 CALL iom_put( "BASIN_40" , freminc2d ) 4408 ENDIF 4409 IF( med_diag%BASIN_41%dgsave ) THEN 4410 CALL iom_put( "BASIN_41" , fcomm_resp ) 4414 4411 ENDIF 4415 IF( med_diag%BAS SIN_42%dgsave ) THEN4416 CALL iom_put( "BAS SIN_42" , fslownflux )4417 ENDIF 4418 IF( med_diag%BAS SIN_43%dgsave ) THEN4419 CALL iom_put( "BAS SIN_43" , fslowcflux )4420 ENDIF 4421 IF( med_diag%BAS SIN_44%dgsave ) THEN4422 CALL iom_put( "BAS SIN_44" , ffastn )4423 ENDIF 4424 IF( med_diag%BAS SIN_45%dgsave ) THEN4425 CALL iom_put( "BAS SIN_45" , ffastc )4412 IF( med_diag%BASIN_42%dgsave ) THEN 4413 CALL iom_put( "BASIN_42" , fslownflux ) 4414 ENDIF 4415 IF( med_diag%BASIN_43%dgsave ) THEN 4416 CALL iom_put( "BASIN_43" , fslowcflux ) 4417 ENDIF 4418 IF( med_diag%BASIN_44%dgsave ) THEN 4419 CALL iom_put( "BASIN_44" , ffastn ) 4420 ENDIF 4421 IF( med_diag%BASIN_45%dgsave ) THEN 4422 CALL iom_put( "BASIN_45" , ffastc ) 4426 4423 ENDIF 4427 4424 # endif … … 4487 4484 CALL iom_put( "SDT_1000" , fslownflux ) 4488 4485 ENDIF 4489 IF( med_diag%REG_ _1000%dgsave ) THEN4490 CALL iom_put( "REG_ _1000" , fregen2d )4486 IF( med_diag%REG_1000%dgsave ) THEN 4487 CALL iom_put( "REG_1000" , fregen2d ) 4491 4488 ENDIF 4492 IF( med_diag%FDT_ _1000%dgsave ) THEN4493 CALL iom_put( "FDT_ _1000" , ffastn )4494 ENDIF 4495 IF( med_diag%RG_ _1000F%dgsave ) THEN4496 CALL iom_put( "RG_ _1000F" , fregenfast )4497 ENDIF 4498 IF( med_diag%FDS_ _1000%dgsave ) THEN4499 CALL iom_put( "FDS_ _1000" , ffastsi )4489 IF( med_diag%FDT_1000%dgsave ) THEN 4490 CALL iom_put( "FDT_1000" , ffastn ) 4491 ENDIF 4492 IF( med_diag%RG_1000F%dgsave ) THEN 4493 CALL iom_put( "RG_1000F" , fregenfast ) 4494 ENDIF 4495 IF( med_diag%FDS_1000%dgsave ) THEN 4496 CALL iom_put( "FDS_1000" , ffastsi ) 4500 4497 ENDIF 4501 4498 IF( med_diag%RGS1000F%dgsave ) THEN … … 4510 4507 CALL wrk_dealloc( jpi, jpj, ffastca2d ) 4511 4508 ENDIF 4512 IF( med_diag%SDC_ _1000%dgsave ) THEN4513 CALL iom_put( "SDC_ _1000" , fslowcflux )4509 IF( med_diag%SDC_1000%dgsave ) THEN 4510 CALL iom_put( "SDC_1000" , fslowcflux ) 4514 4511 ENDIF 4515 4512 # endif … … 4581 4578 detflux3d(:,:,jk) = fslownflux(:,:) + ffastn(:,:) !! detrital flux 4582 4579 !CALL iom_put( "DETFLUX3" , ftot_n ) 4583 4580 ENDIF 4584 4581 ENDIF 4585 4582 !! CLOSE vertical loop 4586 END 4583 ENDDO 4587 4584 4588 4585 !!---------------------------------------------------------------------- … … 4784 4781 trc2d(ji,jj,117) = foxy_anox(ji,jj) !! integrated unrealised oxygen consumption 4785 4782 # endif 4786 END 4787 END 4783 ENDDO 4784 ENDDO 4788 4785 4789 4786 # if defined key_roam … … 4807 4804 & ji, jj, jn 4808 4805 endif 4809 enddo4810 enddo4806 ENDDO 4807 ENDDO 4811 4808 CALL ctl_stop( 'trcbio_medusa, NAN in 2D diagnostic field' ) 4812 4809 endif … … 4828 4825 & ji, jj, jk, jn 4829 4826 endif 4830 enddo4831 enddo4832 enddo4827 ENDDO 4828 ENDDO 4829 ENDDO 4833 4830 CALL ctl_stop( 'trcbio_medusa, NAN in 3D diagnostic field' ) 4834 4831 endif … … 4845 4842 DO jn=1,jp_medusa_2d 4846 4843 CALL lbc_lnk(trc2d(:,:,jn),'T',1. ) 4847 END 4844 ENDDO 4848 4845 4849 4846 !! Lateral boundary conditions on trc3d 4850 4847 DO jn=1,jp_medusa_3d 4851 4848 CALL lbc_lnk(trc3d(:,:,1,jn),'T',1. ) 4852 END DO 4849 ENDDO 4850 4851 4852 # if defined key_axy_nodiag 4853 !!---------------------------------------------------------------------- 4854 !! Blank diagnostics as a NaN-trap 4855 !!---------------------------------------------------------------------- 4856 !! 4857 !! blank 2D diagnostic array 4858 trc2d(:,:,:) = 0.e0 4859 !! 4860 !! blank 3D diagnostic array 4861 trc3d(:,:,:,:) = 0.e0 4862 # endif 4863 4864 4865 !!---------------------------------------------------------------------- 4866 !! Add in XML diagnostics stuff 4867 !!---------------------------------------------------------------------- 4868 !! 4869 !! ** 2D diagnostics 4870 DO jn=1,jp_medusa_2d 4871 CALL iom_put(TRIM(ctrc2d(jn)), trc2d(:,:,jn)) 4872 END DO 4873 !! AXY (17/02/14): don't think I need this if I modify the above for all diagnostics 4874 !! # if defined key_roam 4875 !! DO jn=91,jp_medusa_2d 4876 !! CALL iom_put(TRIM(ctrc2d(jn)), trc2d(:,:,jn)) 4877 !! END DO 4878 !! # endif 4879 !! 4880 !! ** 3D diagnostics 4881 DO jn=1,jp_medusa_3d 4882 CALL iom_put(TRIM(ctrc3d(jn)), trc3d(:,:,:,jn)) 4883 END DO 4884 !! AXY (17/02/14): don't think I need this if I modify the above for all diagnostics 4885 !! # if defined key_roam 4886 !! CALL iom_put(TRIM(ctrc3d(5)), trc3d(:,:,:,5)) 4887 !! # endif 4888 4853 4889 4854 4890 ELSE IF( lk_iomput .AND. .NOT. ln_diatrc ) THEN 4855 4891 !!!---------------------------------------------------------------------- 4856 !! Add very last diag calculations 4892 !! Add very last diag calculations 4857 4893 !!!---------------------------------------------------------------------- 4858 4894 DO jj = 2,jpjm1 … … 4883 4919 fsld2d(ji,jj) = fsld2d(ji,jj) / MAX(ftot_pd(ji,jj), rsmall) 4884 4920 ENDIF 4885 END 4886 END 4921 ENDDO 4922 ENDDO 4887 4923 !!---------------------------------------------------------------------- 4888 4924 !! Add in XML diagnostics stuff … … 4893 4929 CALL iom_put( "INVTN" , ftot_n ) 4894 4930 ENDIF 4895 IF ( med_diag%INVTSI ") THEN4931 IF ( med_diag%INVTSI%dgsave ) THEN 4896 4932 CALL iom_put( "INVTSI" , ftot_si ) 4897 4933 ENDIF … … 5308 5344 DO jn=1,jp_medusa_trd 5309 5345 CALL lbc_lnk(trbio(:,:,1,jn),'T',1. ) 5310 END 5346 ENDDO 5311 5347 # endif 5312 5348
Note: See TracChangeset
for help on using the changeset viewer.