!! 18 SEP 2016 : DC MODULE trcwri_pisces !!====================================================================== !! *** MODULE trcwri *** !! PISCES : Output of PISCES tracers !!====================================================================== !! History : 1.0 ! 2009-05 (C. Ethe) Original code !!---------------------------------------------------------------------- #if defined key_top && defined key_iomput && ( defined key_pisces || defined key_pisces_reduced ) !!---------------------------------------------------------------------- !! 'key_pisces or key_pisces_reduced' PISCES model !!---------------------------------------------------------------------- !! trc_wri_pisces : outputs of concentration fields !!---------------------------------------------------------------------- USE trc ! passive tracers common variables USE sms_pisces ! PISCES variables USE iom ! I/O manager USE diasub USE trcdiasub IMPLICIT NONE PRIVATE PUBLIC trc_wri_pisces # include "top_substitute.h90" CONTAINS SUBROUTINE trc_wri_pisces !!--------------------------------------------------------------------- !! *** ROUTINE trc_wri_trc *** !! !! ** Purpose : output passive tracers fields !!--------------------------------------------------------------------- CHARACTER (len=20) :: cltra REAL(wp) :: zrfact INTEGER :: jn !!--------------------------------------------------------------------- ! write the tracer concentrations in the file ! --------------------------------------- #if defined key_pisces_reduced DO jn = jp_pcs0, jp_pcs1 cltra = TRIM( ctrcnm(jn) ) ! short title for tracer IF( lk_vvl ) THEN CALL iom_put( cltra, trn(:,:,:,jn) * fse3t_n(:,:,:) ) ELSE CALL iom_put( cltra, trn(:,:,:,jn) ) ENDIF END DO #else DO jn = jp_pcs0, jp_pcs1 zrfact = 1.0e+6 IF( jn == jpno3 .OR. jn == jpnh4 ) zrfact = rno3 * 1.0e+6 IF( jn == jppo4 ) zrfact = po4r * 1.0e+6 cltra = TRIM( ctrcnm(jn) ) ! short title for tracer IF( lk_vvl ) THEN CALL iom_put( cltra, trn(:,:,:,jn) * fse3t_n(:,:,:) * zrfact ) ELSE CALL iom_put( cltra, trn(:,:,:,jn) * zrfact ) ENDIF END DO #endif CALL trc_wri_sub !!! WORK DC ! END SUBROUTINE trc_wri_pisces # if defined key_diasub SUBROUTINE trc_wri_sub !!---------------------------------------------------------------------- !! *** ROUTINE trc_wri_sub *** !! !! ** Purpose : output of passive tracer : advection-diffusion subduction subduction !! !!---------------------------------------------------------------------- CHARACTER(len=8), DIMENSION(jptrsub) :: cltra1 CHARACTER(len=20) :: cltra, cltra2 INTEGER :: jn, jl, ji, jj, ik REAL(wp), DIMENSION(jpi,jpj) :: zsed REAL(wp), DIMENSION(jpi,jpj,jptrsub) :: ztrsubtpoc !!---------------------------------------------------------------------- DO jl = 1, jptrsub IF( jl == jpsub_xad ) cltra1(jl) = TRIM("xad_sub_") ! x advection for tracer IF( jl == jpsub_yad ) cltra1(jl) = TRIM("yad_sub_") ! y advection for tracer IF( jl == jpsub_zad ) cltra1(jl) = TRIM("zad_sub_") ! z advection for tracer IF( jl == jpsub_mld ) cltra1(jl) = TRIM("mld_sub_") ! mld for tracer IF( jl == jpsub_xlf ) cltra1(jl) = TRIM("xlf_sub_") ! x lateral diffusion for tracer IF( jl == jpsub_ylf ) cltra1(jl) = TRIM("ylf_sub_") ! y lateral diffusion for tracer IF( jl == jpsub_zlf ) cltra1(jl) = TRIM("zlf_sub_") ! z lateral diffusion for tracer IF( jl == jpsub_zdf ) cltra1(jl) = TRIM("zdf_sub_") ! z vertical diffusion for tracer #if defined key_trcldf_eiv IF( jl == jpsub_xei ) cltra1(jl) = TRIM("xei_sub_") ! x gent velocity for tracer IF( jl == jpsub_yei ) cltra1(jl) = TRIM("yei_sub_") ! y gent velocity for tracer IF( jl == jpsub_zei ) cltra1(jl) = TRIM("zei_sub_") ! z gent velocity for tracer #endif ENDDO ! # if defined key_pisces DO jl = 1, jptrsub ! write the trends DO jn = 1, jptra IF( jn == jpdic .OR. jn == jptal .OR. jn == jpoxy .OR. jn == jpdoc .OR. jn == jpcal & & .OR. jn == jpno3 .OR. jn == jppo4 .OR. jn == jpsil .OR. jn == jpfer .OR. jn == jpnh4 ) THEN cltra = TRIM(cltra1(jl))//TRIM(ctrcnm(jn)) CALL iom_put( cltra, trsub(:,:,jn,jl) ) ENDIF END DO ! ! Sum of subduction of phy, phy2, zoo, zoo2, POC et GOC ztrsubtpoc(:,:,jl) = trsub(:,:,jpphy,jl) + trsub(:,:,jpdia,jl) & & + trsub(:,:,jpzoo,jl) + trsub(:,:,jpmes,jl) & & + trsub(:,:,jppoc,jl) + trsub(:,:,jpgoc,jl) cltra2 = "TOC" cltra = TRIM(cltra1(jl))//TRIM(cltra2) CALL iom_put( cltra, ztrsubtpoc(:,:,jl)) END DO ! Sedimentation a la base de la couche de mélane cltra = TRIM("sedsed") DO jj = 1, jpj DO ji = 1, jpi ik = nmln(ji,jj) zsed(ji,jj) = ( sinking(ji,jj,ik) + sinking2(ji,jj,ik) ) * tmask(ji,jj,ik) END DO END DO CALL iom_put( cltra, zsed(:,:) ) #else DO jl = 1, jptrsub ! write the trends DO jn = 1, jptra cltra = TRIM(cltra1(jl))//TRIM(ctrcnm(jn)) CALL iom_put( cltra, trsub(:,:,jn,jl) ) END DO ! END DO #endif ! ! une fois ecrit, trsub est remis a 0 DO jl = 1, jptrsub DO jn = 1, jptra trsub(:,:,jn,jl) = 0. END DO END DO ! END SUBROUTINE trc_wri_sub # else SUBROUTINE trc_wri_sub ! Dummy routine END SUBROUTINE trc_wri_sub # endif #else !!---------------------------------------------------------------------- !! Dummy module : No passive tracer !!---------------------------------------------------------------------- PUBLIC trc_wri_pisces CONTAINS SUBROUTINE trc_wri_pisces ! Empty routine END SUBROUTINE trc_wri_pisces #endif !!---------------------------------------------------------------------- !! NEMO/TOP 3.3 , NEMO Consortium (2010) !! $Id: trcwri_pisces.F90 3160 2011-11-20 14:27:18Z cetlod $ !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) !!====================================================================== END MODULE trcwri_pisces