New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 1836 for trunk – NEMO

Changeset 1836 for trunk


Ignore:
Timestamp:
2010-04-14T14:26:33+02:00 (14 years ago)
Author:
cetlod
Message:

improvment of PISCES model, see ticket:661

Location:
trunk/NEMO/TOP_SRC
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/TOP_SRC/PISCES/p4zflx.F90

    r1800 r1836  
    204204          CALL mpp_sum( t_oce_co2_flx )   ! sum over the global domain 
    205205        ENDIF 
     206        ! Conversion in GtC/yr ; negative for outgoing from ocean 
     207        t_oce_co2_flx = (-1.) * t_oce_co2_flx  * 12. / 1.e15 
     208        ! 
    206209        WRITE(numout,*) ' Atmospheric pCO2    :' 
    207210        WRITE(numout,*) '-------------------- : ',kt,'  ',t_atm_co2_flx 
    208211        WRITE(numout,*) '(ppm)' 
    209         WRITE(numout,*) 'Total Flux of Carbon :' 
    210         WRITE(numout,*) '-------------------- : ',t_oce_co2_flx * 12. / 1e15 
    211         WRITE(numout,*) '(GtC/an)' 
     212        WRITE(numout,*) 'Total Flux of Carbon out of the ocean :' 
     213        WRITE(numout,*) '-------------------- : ',t_oce_co2_flx 
     214        WRITE(numout,*) '(GtC/yr)' 
    212215        t_atm_co2_flx = 0. 
    213216        t_oce_co2_flx = 0. 
     217# if defined key_iomput 
     218        CALL iom_put( "tatpco2" , t_atm_co2_flx  ) 
     219        CALL iom_put( "tco2flx" , t_oce_co2_flx  ) 
     220#endif 
    214221      ENDIF 
    215222#endif 
  • trunk/NEMO/TOP_SRC/PISCES/p4zlys.F90

    r1735 r1836  
    6767#if defined key_trc_dia3d && defined key_iomput 
    6868      REAL(wp) ::   zrfact2 
    69       REAL(wp), DIMENSION(jpi,jpj,jpk) :: zcaldiss, zw3d 
     69      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zcaldiss 
    7070#endif 
    7171      CHARACTER (len=25) :: charout 
     
    9494                  ! SET DUMMY VARIABLE FOR TOTAL BORATE 
    9595                  zbot  = borat(ji,jj,jk) 
     96 
     97                  ! SET DUMMY VARIABLE FOR TOTAL BORATE 
     98                  zbot  = borat(ji,jj,jk) 
    9699                  zfact = rhop (ji,jj,jk) / 1000. + rtrn 
    97100 
     
    171174#  else 
    172175      zrfact2 = 1.e3 * rfact2r 
    173       zw3d(:,:,:) = hi  (:,:,:)                    * tmask(:,:,:) 
    174       CALL iom_put( "PH", zw3d ) 
    175       zw3d(:,:,:) = zco3(:,:,:)                    * tmask(:,:,:) 
    176       CALL iom_put( "CO3", zw3d ) 
    177       zw3d(:,:,:) = aksp(:,:,:) / calcon           * tmask(:,:,:) 
    178       CALL iom_put( "CO3sat", zw3d ) 
    179       zw3d(:,:,:) = zcaldiss(:,:,:) * zrfact2 * tmask(:,:,:) 
    180       CALL iom_put( "Dcal", zw3d ) 
     176      CALL iom_put( "PH"    , hi      (:,:,:)           * tmask(:,:,:) ) 
     177      CALL iom_put( "CO3"   , zco3    (:,:,:)           * tmask(:,:,:) ) 
     178      CALL iom_put( "CO3sat", aksp    (:,:,:) / calcon  * tmask(:,:,:) ) 
     179      CALL iom_put( "DCAL"  , zcaldiss(:,:,:) * zrfact2 * tmask(:,:,:) ) 
    181180#  endif 
    182181# endif 
     
    232231   END SUBROUTINE p4z_lys 
    233232#endif  
    234  
    235233   !!====================================================================== 
    236234END MODULE  p4zlys 
  • trunk/NEMO/TOP_SRC/PISCES/p4zmeso.F90

    r1800 r1836  
    7676#if defined key_trc_diaadd && defined key_trc_dia3d && defined key_iomput 
    7777      REAL(wp) :: zrfact2 
    78       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zw3d 
    7978#endif 
    8079 
     
    203202      END DO 
    204203       
     204#if defined key_trc_dia3d 
     205      ! Total grazing ( grazing by microzoo is already computed in p4zmicro )  
     206      grazing(:,:,:) = grazing(:,:,:) + (  zgrazd  (:,:,:) + zgrazz  (:,:,:) + zgrazn(:,:,:) & 
     207                     &                   + zgrazpoc(:,:,:) + zgrazffe(:,:,:)  ) 
     208#endif 
     209 
    205210 
    206211      DO jk = 1,jpkm1 
     
    311316#if defined key_trc_diaadd && defined key_trc_dia3d && defined key_iomput 
    312317      zrfact2 = 1.e3 * rfact2r 
    313       zw3d(:,:,:) = (     zgrazd(:,:,:) +   zgrazz(:,:,:) + zgrazn(:,:,:) & 
    314                     & + zgrazpoc(:,:,:) + zgrazffe(:,:,:)                 ) * zrfact2 * tmask(:,:,:) 
    315       IF( jnt == nrdttrc ) CALL iom_put( "Graz2" , zw3d ) 
    316  
    317       zw3d(:,:,:) = prodcal(:,:,:) * zrfact2 * tmask(:,:,:) 
    318       IF( jnt == nrdttrc ) CALL iom_put( "Pcal"  , zw3d ) 
     318      ! Total grazing of phyto by zoo 
     319      grazing(:,:,:) = grazing(:,:,:) * zrfact2 * tmask(:,:,:) 
     320      ! Calcite production 
     321      prodcal(:,:,:) = prodcal(:,:,:) * zrfact2 * tmask(:,:,:) 
     322      IF( jnt == nrdttrc ) then  
     323         CALL iom_put( "GRAZ" , grazing  )  ! Total grazing of phyto by zooplankton 
     324         CALL iom_put( "PCAL" , prodcal  )  ! Calcite production 
     325      ENDIF 
    319326#endif 
    320327 
  • trunk/NEMO/TOP_SRC/PISCES/p4zmicro.F90

    r1800 r1836  
    7070      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazmf, zgrazsf, zgrazpf 
    7171      CHARACTER (len=25) :: charout 
    72 #if defined key_trc_diaadd && defined key_trc_dia3d && defined key_iomput 
    73       REAL(wp) :: zrfact2 
    74       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zw3d 
    75 #endif 
    7672 
    7773      !!--------------------------------------------------------------------- 
     
    8884      zgrazpf(:,:,:) = 0. 
    8985 
     86#if defined key_trc_dia3d 
     87      grazing(:,:,:) = 0.  !: Initialisation of  grazing 
     88#endif 
    9089 
    9190      zstep = rfact2 / rday      ! Time step duration for biology 
     
    156155      END DO 
    157156       
     157#if defined key_trc_dia3d 
     158      ! Grazing by microzooplankton 
     159      grazing(:,:,:) = grazing(:,:,:) + zgrazp(:,:,:) + zgrazm(:,:,:) + zgrazsd(:,:,:)  
     160#endif 
    158161 
    159162      DO jk = 1,jpkm1 
     
    231234      END DO 
    232235      ! 
    233 #if defined key_trc_diaadd && defined key_trc_dia3d && defined key_iomput 
    234       zrfact2 = 1.e3 * rfact2r 
    235       zw3d(:,:,:) = ( zgrazp(:,:,:) + zgrazm(:,:,:) + zgrazsd(:,:,:) ) * zrfact2 * tmask(:,:,:) 
    236       IF( jnt == nrdttrc ) CALL iom_put( "Graz" , zw3d ) 
    237 #endif 
    238  
    239        IF(ln_ctl)   THEN  ! print mean trends (used for debugging) 
     236      IF(ln_ctl)   THEN  ! print mean trends (used for debugging) 
    240237         WRITE(charout, FMT="('micro')") 
    241238         CALL prt_ctl_trc_info(charout) 
    242239         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    243        ENDIF 
     240      ENDIF 
    244241 
    245242   END SUBROUTINE p4z_micro 
  • trunk/NEMO/TOP_SRC/PISCES/p4zopt.F90

    r1800 r1836  
    6161      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zekg, zekr, zekb 
    6262      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ze1 , ze2 , ze3, ze0 
    63 #if defined key_trc_diaadd && defined key_iomput 
    64      REAL(wp), DIMENSION(jpi,jpj)      ::   zw2d 
    65      REAL(wp), DIMENSION(jpi,jpj,jpk)  ::   zw3d 
    66 #endif 
    6763      !!--------------------------------------------------------------------- 
    6864 
     
    238234# else 
    239235      ! write diagnostics  
    240       zw2d(:,:  ) =  heup(:,:  ) * tmask(:,:,1) 
    241       zw3d(:,:,:) =  etot(:,:,:) * tmask(:,:,:) 
    242       IF( jnt == nrdttrc ) CALL iom_put( "Heup", zw2d )                
    243       IF( jnt == nrdttrc ) CALL iom_put( "PAR" , zw3d ) 
     236      IF( jnt == nrdttrc ) then  
     237         CALL iom_put( "Heup", heup(:,:  ) * tmask(:,:,1) )  ! euphotic layer deptht 
     238         CALL iom_put( "PAR" , etot(:,:,:) * tmask(:,:,:) )  ! Photosynthetically Available Radiation 
     239      ENDIF 
    244240# endif 
    245241#endif 
  • trunk/NEMO/TOP_SRC/PISCES/p4zprod.F90

    r1800 r1836  
    8181#if defined key_trc_diaadd && defined key_trc_dia3d 
    8282      REAL(wp) ::   zrfact2 
    83 #if  defined key_iomput 
    84       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zw3d 
    85 #endif 
    8683#endif 
    8784      REAL(wp), DIMENSION(jpi,jpj)     ::   zmixnano   , zmixdiat, zstrn 
     
    352349        WRITE(numout,*) 'Total PP :' 
    353350        WRITE(numout,*) '-------------------- : ',tpp * 12. / 1.E12 
    354         WRITE(numout,*) '(GtC/an)' 
     351        WRITE(numout,*) '(GtC/yr)' 
    355352        tpp = 0. 
    356353      ENDIF 
    357354 
    358 #if defined key_trc_diaadd && defined key_trc_dia3d 
     355#if defined key_trc_diaadd && defined key_trc_dia3d && ! defined key_iomput 
     356      !   Supplementary diagnostics 
    359357      zrfact2 = 1.e3 * rfact2r 
    360       !   Supplementary diagnostics 
    361 #  if ! defined key_iomput 
    362358      trc3d(:,:,:,jp_pcs0_3d + 4)  = zprorca (:,:,:) * zrfact2 * tmask(:,:,:) 
    363359      trc3d(:,:,:,jp_pcs0_3d + 5)  = zprorcad(:,:,:) * zrfact2 * tmask(:,:,:) 
     
    366362      trc3d(:,:,:,jp_pcs0_3d + 8)  = zprorcad(:,:,:) * zrfact2 * tmask(:,:,:) * zysopt(:,:,:) 
    367363      trc3d(:,:,:,jp_pcs0_3d + 9)  = zprofed (:,:,:) * zrfact2 * tmask(:,:,:) 
    368 #if ! defined key_kriest 
     364#  if ! defined key_kriest 
    369365      trc3d(:,:,:,jp_pcs0_3d + 10) = zprofen (:,:,:) * zrfact2 * tmask(:,:,:) 
     366#  endif 
    370367#endif 
    371368 
    372 # else 
    373       zw3d(:,:,:) = zprorca (:,:,:) * zrfact2 * tmask(:,:,:) 
    374       IF( jnt == nrdttrc ) CALL iom_put( "PPPHY" , zw3d ) 
    375       zw3d(:,:,:) = zprorcad(:,:,:) * zrfact2 * tmask(:,:,:) 
    376       IF( jnt == nrdttrc ) CALL iom_put( "PPPHY2", zw3d ) 
    377       zw3d(:,:,:) = zpronew (:,:,:) * zrfact2 * tmask(:,:,:) 
    378       IF( jnt == nrdttrc ) CALL iom_put( "PPNEWN" , zw3d ) 
    379       zw3d(:,:,:) = zpronewd(:,:,:) * zrfact2 * tmask(:,:,:) 
    380       IF( jnt == nrdttrc ) CALL iom_put( "PPNEWD", zw3d ) 
    381       zw3d(:,:,:) = zprorcad(:,:,:) * zrfact2 * tmask(:,:,:) * zysopt(:,:,:) 
    382       IF( jnt == nrdttrc ) CALL iom_put( "PBSi"  , zw3d ) 
    383       zw3d(:,:,:) = zprofed (:,:,:) * zrfact2 * tmask(:,:,:) 
    384       IF( jnt == nrdttrc ) CALL iom_put( "PFeD"  , zw3d ) 
    385       zw3d(:,:,:) = zprofen (:,:,:) * zrfact2 * tmask(:,:,:) 
    386       IF( jnt == nrdttrc ) CALL iom_put( "PFeN"  , zw3d ) 
    387 # endif 
     369#if defined key_trc_diaadd && defined key_trc_dia3d && defined key_iomput 
     370      zrfact2 = 1.e3 * rfact2r 
     371      IF ( jnt == nrdttrc ) then 
     372         CALL iom_put( "PPPHY" , zprorca (:,:,:) * zrfact2 * tmask(:,:,:) )  ! primary production by nanophyto 
     373         CALL iom_put( "PPPHY2", zprorcad(:,:,:) * zrfact2 * tmask(:,:,:) )  ! primary production by diatom 
     374         CALL iom_put( "PPNEWN", zpronew (:,:,:) * zrfact2 * tmask(:,:,:) )  ! new primary production by nanophyto 
     375         CALL iom_put( "PPNEWD", zpronewd(:,:,:) * zrfact2 * tmask(:,:,:) )  ! new primary production by diatom 
     376         CALL iom_put( "PBSi"  , zprorcad(:,:,:) * zrfact2 * tmask(:,:,:) * zysopt(:,:,:) ) ! biogenic silica production 
     377         CALL iom_put( "PFeD"  , zprofed (:,:,:) * zrfact2 * tmask(:,:,:) )  ! biogenic iron production by diatom 
     378         CALL iom_put( "PFeN"  , zprofen (:,:,:) * zrfact2 * tmask(:,:,:) )  ! biogenic iron production by nanophyto 
     379      ENDIF 
    388380#endif 
    389381 
  • trunk/NEMO/TOP_SRC/PISCES/p4zsed.F90

    r1735 r1836  
    9696      REAL(wp) :: zrfact2 
    9797# if defined key_iomput 
    98      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zw3d  
    9998     REAL(wp), DIMENSION(jpi,jpj)    ::    zw2d  
    10099# endif 
     
    332331      trc2d(:,:,jp_pcs0_2d + 12) = znitrpot(:,:,1) * 1.e-7 * zrfact2 * fse3t(:,:,1) * tmask(:,:,1) 
    333332# else 
    334       ! write diagnostics 
    335       zw2d(:,:)   =  ( zirondep(:,:,1) + ironsed(:,:,1) * rfact2 ) & 
    336       &            * zrfact2 * fse3t(:,:,1) * tmask(:,:,1)      
     333      ! surface downward net flux of iron 
     334      zw2d(:,:)   =  ( zirondep(:,:,1) + ironsed(:,:,1) * rfact2 ) * zrfact2 * fse3t(:,:,1) * tmask(:,:,1)  
    337335      IF( jnt == nrdttrc ) CALL iom_put( "Irondep", zw2d ) 
    338       zw3d(:,:,:) = znitrpot(:,:,:) * 1.e-7 * zrfact2  * fse3t(:,:,:) * tmask(:,:,:) 
    339       IF( jnt == nrdttrc ) CALL iom_put( "Nfix", zw3d  )  
    340 # endif 
    341  
     336      ! nitrogen fixation at surface 
     337      zw2d(:,:)   =  znitrpot(:,:,1) * 1.e-7 * zrfact2  * fse3t(:,:,1) * tmask(:,:,1) 
     338      IF( jnt == nrdttrc ) CALL iom_put( "Nfix" , zw2d ) 
     339# endif 
    342340# endif 
    343341      ! 
  • trunk/NEMO/TOP_SRC/PISCES/p4zsink.F90

    r1800 r1836  
    9999#if defined key_trc_diaadd 
    100100      REAL(wp) :: zrfact2 
    101       INTEGER  :: iksed1 
    102 #if defined key_iomput 
    103       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zw3d 
    104 #endif 
     101      INTEGER  :: ik1 
    105102#endif 
    106103      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   znum3d 
     
    286283#if defined key_trc_diaadd 
    287284      zrfact2 = 1.e3 * rfact2r 
    288       iksed1 = iksed + 1 
     285      ik1 = iksed + 1 
    289286#  if ! defined key_iomput 
    290       trc2d(:,:  ,jp_pcs0_2d + 4)  = sinking (:,:,iksed1) * zrfact2 * tmask(:,:,1) 
    291       trc2d(:,:  ,jp_pcs0_2d + 5)  = sinking2(:,:,iksed1) * zrfact2 * tmask(:,:,1) 
    292       trc2d(:,:  ,jp_pcs0_2d + 6)  = sinkfer (:,:,iksed1) * zrfact2 * tmask(:,:,1) 
    293       trc2d(:,:  ,jp_pcs0_2d + 7)  = sinksil (:,:,iksed1) * zrfact2 * tmask(:,:,1) 
    294       trc2d(:,:  ,jp_pcs0_2d + 8)  = sinkcal (:,:,iksed1) * zrfact2 * tmask(:,:,1) 
     287      trc2d(:,:  ,jp_pcs0_2d + 4)  = sinking (:,:,ik1) * zrfact2 * tmask(:,:,1) 
     288      trc2d(:,:  ,jp_pcs0_2d + 5)  = sinking2(:,:,ik1) * zrfact2 * tmask(:,:,1) 
     289      trc2d(:,:  ,jp_pcs0_2d + 6)  = sinkfer (:,:,ik1) * zrfact2 * tmask(:,:,1) 
     290      trc2d(:,:  ,jp_pcs0_2d + 7)  = sinksil (:,:,ik1) * zrfact2 * tmask(:,:,1) 
     291      trc2d(:,:  ,jp_pcs0_2d + 8)  = sinkcal (:,:,ik1) * zrfact2 * tmask(:,:,1) 
    295292      trc3d(:,:,:,jp_pcs0_3d + 11) = sinking (:,:,:)      * zrfact2 * tmask(:,:,:) 
    296293      trc3d(:,:,:,jp_pcs0_3d + 12) = sinking2(:,:,:)      * zrfact2 * tmask(:,:,:) 
     
    301298      trc3d(:,:,:,jp_pcs0_3d + 17) = wsbio4  (:,:,:)                * tmask(:,:,:) 
    302299#else 
    303       zw3d(:,:,:)  = sinking (:,:,:) * zrfact2 * tmask(:,:,:) 
    304       IF( jnt == nrdttrc ) CALL iom_put( "PMO" , zw3d ) 
    305       zw3d(:,:,:)  = sinking2(:,:,:) * zrfact2 * tmask(:,:,:) 
    306       IF( jnt == nrdttrc ) CALL iom_put( "PMO2", zw3d ) 
    307       zw3d(:,:,:)  = sinkfer (:,:,:) * zrfact2 * tmask(:,:,:) 
    308       IF( jnt == nrdttrc ) CALL iom_put( "ExpFe1", zw3d ) 
    309       zw3d(:,:,:)  = sinksil (:,:,:) * zrfact2 * tmask(:,:,:) 
    310       IF( jnt == nrdttrc ) CALL iom_put( "ExpSi", zw3d ) 
    311       zw3d(:,:,:)  = sinkcal (:,:,:) * zrfact2 * tmask(:,:,:) 
    312       IF( jnt == nrdttrc ) CALL iom_put( "ExpCaCO3", zw3d ) 
    313       zw3d(:,:,:)  = sinking (:,:,:) * zrfact2 * tmask(:,:,:) 
    314       IF( jnt == nrdttrc ) CALL iom_put( "POCFlx", zw3d ) 
    315       zw3d(:,:,:)  = sinking2(:,:,:) * zrfact2 * tmask(:,:,:) 
    316       IF( jnt == nrdttrc ) CALL iom_put( "GOCFlx", zw3d ) 
    317       zw3d(:,:,:)  = sinksil (:,:,:) * zrfact2 * tmask(:,:,:) 
    318       IF( jnt == nrdttrc ) CALL iom_put( "SiFlx", zw3d ) 
    319       zw3d(:,:,:)  = sinkcal (:,:,:) * zrfact2 * tmask(:,:,:) 
    320       IF( jnt == nrdttrc ) CALL iom_put( "CaCO3Flx", zw3d ) 
    321       zw3d(:,:,:)  = znum3d  (:,:,:)           * tmask(:,:,:) 
    322       IF( jnt == nrdttrc ) CALL iom_put( "xnum", zw3d ) 
    323       zw3d(:,:,:)  = wsbio3  (:,:,:)           * tmask(:,:,:) 
    324       IF( jnt == nrdttrc ) CALL iom_put( "W1", zw3d ) 
    325       zw3d(:,:,:)  = wsbio4  (:,:,:)           * tmask(:,:,:) 
    326       IF( jnt == nrdttrc ) CALL iom_put( "W2", zw3d ) 
     300      IF( jnt == nrdttrc ) then 
     301        CALL iom_put( "POCFlx"  , sinking (:,:,:)      * zrfact2 * tmask(:,:,:) )  ! POC export 
     302        CALL iom_put( "NumFlx"  , sinking2 (:,:,:)     * zrfact2 * tmask(:,:,:) )  ! Num export 
     303        CALL iom_put( "SiFlx"   , sinksil (:,:,:)      * zrfact2 * tmask(:,:,:) )  ! Silica export 
     304        CALL iom_put( "CaCO3Flx", sinkcal (:,:,:)      * zrfact2 * tmask(:,:,:) )  ! Calcite export 
     305        CALL iom_put( "xnum"    , znum3d  (:,:,:)                * tmask(:,:,:) )  ! Number of particles in aggregats 
     306        CALL iom_put( "W1"      , wsbio3  (:,:,:)                * tmask(:,:,:) )  ! sinking speed of POC 
     307        CALL iom_put( "W2"      , wsbio4  (:,:,:)                * tmask(:,:,:) )  ! sinking speed of aggregats 
     308        CALL iom_put( "PMO"     , sinking (:,:,ik1) * zrfact2 * tmask(:,:,1) )  ! POC export at 100m 
     309        CALL iom_put( "PMO2"    , sinking2(:,:,ik1) * zrfact2 * tmask(:,:,1) )  ! Num export at 100m 
     310        CALL iom_put( "ExpFe1"  , sinkfer (:,:,ik1) * zrfact2 * tmask(:,:,1) )  ! Export of iron at 100m 
     311        CALL iom_put( "ExpSi"   , sinksil (:,:,ik1) * zrfact2 * tmask(:,:,1) )  ! export of silica at 100m 
     312        CALL iom_put( "ExpCaCO3", sinkcal (:,:,ik1) * zrfact2 * tmask(:,:,1) )  ! export of calcite at 100m 
     313     ENDIF 
    327314#  endif 
    328315 
     
    489476#if defined key_trc_dia3d 
    490477      REAL(wp) ::   zrfact2 
    491       INTEGER  ::   iksed1 
    492 #endif 
    493 #if defined key_iomput 
    494       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zw3d 
     478      INTEGER  ::   ik1 
    495479#endif 
    496480      CHARACTER (len=25) :: charout 
     
    613597#if defined key_trc_diaadd 
    614598      zrfact2 = 1.e3 * rfact2r 
    615       iksed1 = iksed + 1 
     599      ik1 = iksed + 1 
    616600#  if ! defined key_iomput 
    617       trc2d(:,:,jp_pcs0_2d + 4) = sinking (:,:,iksed1) * zrfact2 * tmask(:,:,1) 
    618       trc2d(:,:,jp_pcs0_2d + 5) = sinking2(:,:,iksed1) * zrfact2 * tmask(:,:,1) 
    619       trc2d(:,:,jp_pcs0_2d + 6) = sinkfer (:,:,iksed1) * zrfact2 * tmask(:,:,1) 
    620       trc2d(:,:,jp_pcs0_2d + 7) = sinkfer2(:,:,iksed1) * zrfact2 * tmask(:,:,1) 
    621       trc2d(:,:,jp_pcs0_2d + 8) = sinksil (:,:,iksed1) * zrfact2 * tmask(:,:,1) 
    622       trc2d(:,:,jp_pcs0_2d + 9) = sinkcal (:,:,iksed1) * zrfact2 * tmask(:,:,1) 
     601      trc2d(:,:,jp_pcs0_2d + 4) = sinking (:,:,ik1) * zrfact2 * tmask(:,:,1) 
     602      trc2d(:,:,jp_pcs0_2d + 5) = sinking2(:,:,ik1) * zrfact2 * tmask(:,:,1) 
     603      trc2d(:,:,jp_pcs0_2d + 6) = sinkfer (:,:,ik1) * zrfact2 * tmask(:,:,1) 
     604      trc2d(:,:,jp_pcs0_2d + 7) = sinkfer2(:,:,ik1) * zrfact2 * tmask(:,:,1) 
     605      trc2d(:,:,jp_pcs0_2d + 8) = sinksil (:,:,ik1) * zrfact2 * tmask(:,:,1) 
     606      trc2d(:,:,jp_pcs0_2d + 9) = sinkcal (:,:,ik1) * zrfact2 * tmask(:,:,1) 
    623607#  else 
    624       zw3d(:,:,:)  = sinking (:,:,:) * zrfact2 * tmask(:,:,:) 
    625       IF( jnt == nrdttrc ) CALL iom_put( "ExpPOC" , zw3d ) 
    626       zw3d(:,:,:)  = sinking2(:,:,:) * zrfact2 * tmask(:,:,:) 
    627       IF( jnt == nrdttrc ) CALL iom_put( "ExpGOC", zw3d ) 
    628       zw3d(:,:,:)  = sinkfer (:,:,:) * zrfact2 * tmask(:,:,:) 
    629       IF( jnt == nrdttrc ) CALL iom_put( "ExpFe1", zw3d ) 
    630       zw3d(:,:,:)  = sinkfer2(:,:,:) * zrfact2 * tmask(:,:,:) 
    631       IF( jnt == nrdttrc ) CALL iom_put( "ExpFe2", zw3d ) 
    632       zw3d(:,:,:)  = sinksil (:,:,:) * zrfact2 * tmask(:,:,:) 
    633       IF( jnt == nrdttrc ) CALL iom_put( "ExpSi", zw3d ) 
    634       zw3d(:,:,:)  = sinkcal (:,:,:) * zrfact2 * tmask(:,:,:) 
    635       IF( jnt == nrdttrc ) CALL iom_put( "Expcal", zw3d ) 
    636 #  endif 
     608      IF( jnt == nrdttrc )  then 
     609         CALL iom_put( "EPC100"  , ( sinking(:,:,ik1) + sinking2(:,:,ik1) ) * zrfact2 * tmask(:,:,1) ) ! Export of carbon at 100m 
     610         CALL iom_put( "EPFE100" , ( sinkfer(:,:,ik1) + sinkfer2(:,:,ik1) ) * zrfact2 * tmask(:,:,1) ) ! Export of iron at 100m 
     611         CALL iom_put( "EPCAL100",   sinkcal(:,:,ik1)                       * zrfact2 * tmask(:,:,1) ) ! Export of calcite  at 100m 
     612         CALL iom_put( "EPSI100" ,   sinksil(:,:,ik1)                       * zrfact2 * tmask(:,:,1) ) ! Export of biogenic silica at 100m 
     613      ENDIF 
     614#endif 
    637615#endif 
    638616      ! 
  • trunk/NEMO/TOP_SRC/PISCES/sms_pisces.F90

    r1801 r1836  
    6464#if defined key_trc_dia3d 
    6565   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   prodcal    !: Calcite production 
     66   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   grazing    !: Total zooplankton grazing 
    6667#endif 
    6768 
  • trunk/NEMO/TOP_SRC/PISCES/trcrst_pisces.F90

    r1801 r1836  
    263263#if defined key_dtatrc 
    264264      ! Restore close seas values to initial data 
    265       nmonth = 1 
    266       nday   = 1 
    267       CALL trc_dta( nittrc000)  
     265      CALL trc_dta( nittrc000 )  
    268266      DO jn = 1, jptra 
    269267         IF( lutini(jn) ) THEN 
  • trunk/NEMO/TOP_SRC/par_trc.F90

    r1254 r1836  
    1818   USE par_lobster   ! LOBSTER model 
    1919   USE par_pisces    ! PISCES  model 
     20   USE par_c14b      ! C14 bomb tracer 
    2021   USE par_cfc       ! CFC 11 and 12 tracers 
    21    USE par_c14b      ! C14 bomb tracer  
    2222   USE par_my_trc    ! user defined passive tracers 
    2323 
     
    2727   ! Passive tracers : Total size 
    2828   ! ---------------               ! total number of passive tracers, of 2d and 3d output and trend arrays 
    29    INTEGER, PUBLIC, PARAMETER ::   jptra    =  jp_lobster    + jp_pisces     + jp_cfc     + jp_c14b     + jp_my_trc 
    30    INTEGER, PUBLIC, PARAMETER ::   jpdia2d  =  jp_lobster_2d + jp_pisces_2d  + jp_cfc_2d  + jp_c14b_2d  + jp_my_trc_2d 
    31    INTEGER, PUBLIC, PARAMETER ::   jpdia3d  =  jp_lobster_3d + jp_pisces_3d  + jp_cfc_3d  + jp_c14b_3d  + jp_my_trc_3d 
     29   INTEGER, PUBLIC, PARAMETER ::   jptra    =  jp_lobster    + jp_pisces     + jp_cfc     + jp_my_trc 
     30   INTEGER, PUBLIC, PARAMETER ::   jpdia2d  =  jp_lobster_2d + jp_pisces_2d  + jp_cfc_2d  + jp_my_trc_2d 
     31   INTEGER, PUBLIC, PARAMETER ::   jpdia3d  =  jp_lobster_3d + jp_pisces_3d  + jp_cfc_3d  + jp_my_trc_3d 
    3232   !                     ! total number of sms diagnostic arrays 
    33    INTEGER, PUBLIC, PARAMETER ::   jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_c14b_trd + jp_my_trc_trd 
     33   INTEGER, PUBLIC, PARAMETER ::   jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_my_trc_trd 
    3434    
    3535   !  1D configuration ("key_c1d") 
     
    4040   LOGICAL, PUBLIC, PARAMETER ::   lk_trc_c1d   = .FALSE.  !: 1D pass. tracer configuration flag 
    4141# endif 
    42  
    4342   ! Passive tracers : size for TRP trends diagnotics (used if 'key_trc_diatrd' defined) 
    44 #if defined key_trcldf_eiv 
    45 # if defined key_trcdmp 
    46    INTEGER, PARAMETER :: jpdiatrc = 11      !: trends: 3*(advection + diffusion + eiv ) + damping + sms 
    47 # else 
    48    INTEGER, PARAMETER :: jpdiatrc = 10      !: trends: 3*(advection + diffusion + eiv )           + sms 
    49 # endif 
    50 #else 
    51 # if defined key_trcdmp 
    52    INTEGER, PARAMETER :: jpdiatrc =  8      !: trends: 3*(advection + diffusion       ) + damping + sms 
    53 # else 
    54    INTEGER, PARAMETER :: jpdiatrc =  7      !: trends: 3*(advection + diffusion       ) + damping + sms 
    55 # endif 
     43# if defined key_trc_diatrd 
     44   ! Passive tracers : size for TRP trends diagnotics (used if 'key_trc_diatrd' defined) 
     45   INTEGER, PARAMETER ::   jptrc_xad     =  1   !: x- horizontal advection 
     46   INTEGER, PARAMETER ::   jptrc_yad     =  2   !: y- horizontal advection 
     47   INTEGER, PARAMETER ::   jptrc_zad     =  3   !: z- vertical   advection 
     48   INTEGER, PARAMETER ::   jptrc_xdf     =  4   !: lateral       diffusion 
     49   INTEGER, PARAMETER ::   jptrc_ydf     =  5   !: lateral       diffusion 
     50   INTEGER, PARAMETER ::   jptrc_zdf     =  6   !: vertical diffusion (Kz) 
     51   INTEGER, PARAMETER ::   jptrc_sbc     =  7   !: surface boundary condition 
     52#if ! defined key_trcldf_eiv && ! defined key_trcdmp 
     53   INTEGER, PARAMETER ::   jpdiatrc      =  7  !: trends: 3*(advection + diffusion       ) + sbc 
     54#endif 
     55#if defined key_trcldf_eiv && defined key_trcdmp 
     56   INTEGER, PARAMETER ::   jptrc_xei     =  8   !: x- horiz. EIV advection 
     57   INTEGER, PARAMETER ::   jptrc_yei     =  9   !: y- horiz. EIV advection 
     58   INTEGER, PARAMETER ::   jptrc_zei     = 10   !: z- vert.  EIV advection 
     59   INTEGER, PARAMETER ::   jptrc_dmp     = 11   !: damping 
     60   INTEGER, PARAMETER ::   jpdiatrc      = 11   !: trends: 3*(advection + diffusion + eiv ) + sbc + damping 
     61#endif 
     62#if defined key_trcldf_eiv && ! defined key_trcdmp 
     63   INTEGER, PARAMETER ::   jptrc_xei     =  8   !: x- horiz. EIV advection 
     64   INTEGER, PARAMETER ::   jptrc_yei     =  9   !: y- horiz. EIV advection 
     65   INTEGER, PARAMETER ::   jptrc_zei     = 10   !: z- vert.  EIV advection 
     66   INTEGER, PARAMETER ::   jpdiatrc      = 10   !: trends: 3*(advection + diffusion + eiv ) + sbc  
     67#endif 
     68#if ! defined key_trcldf_eiv && defined key_trcdmp 
     69   INTEGER, PARAMETER ::   jptrc_dmp     =  8   !: damping 
     70   INTEGER, PARAMETER ::   jpdiatrc      =  8   !: trends: 3*(advection + diffusion       ) + sbc + damping 
     71#endif 
    5672#endif 
    5773 
  • trunk/NEMO/TOP_SRC/trcdia.F90

    r1715 r1836  
    2525   USE trc 
    2626   USE trp_trc 
     27   USE par_trc 
    2728   USE trdmld_trc_oce, ONLY : luttrd 
    2829   USE dianam    ! build name of file (routine) 
     
    4142   INTEGER  ::   ndimt50   !: number of ocean points in index array 
    4243   INTEGER  ::   ndimt51   !: number of ocean points in index array 
    43    REAL(wp) ::   xjulian   !: ????   not DOCTOR ! 
     44   REAL(wp) ::   zjulian   !: ????   not DOCTOR ! 
    4445   INTEGER , DIMENSION (jpij*jpk) ::   ndext50   !: integer arrays for ocean 3D index 
    4546   INTEGER , DIMENSION (jpij)     ::   ndext51   !: integer arrays for ocean surface index 
     
    157158 
    158159         ! Compute julian date from starting date of the run 
    159          CALL ymds2ju( nyear, nmonth, nday, rdt, xjulian ) 
    160          xjulian = xjulian - adatrj   !   set calendar origin to the beginning of the experiment 
     160         CALL ymds2ju( nyear, nmonth, nday, rdt, zjulian ) 
     161         zjulian = zjulian - adatrj   !   set calendar origin to the beginning of the experiment 
    161162         IF(lwp)WRITE(numout,*)' '   
    162163         IF(lwp)WRITE(numout,*)' Date 0 used :', nittrc000                         & 
    163164            &                 ,' YEAR ', nyear, ' MONTH ', nmonth, ' DAY ', nday   & 
    164             &                 ,'Julian day : ', xjulian   
     165            &                 ,'Julian day : ', zjulian   
    165166   
    166167         IF(lwp) WRITE(numout,*) ' indexes of zoom = ', iimi, iima, ijmi, ijma,  & 
     
    171172         IF(lwp) THEN 
    172173            CALL dia_nam( clhstnam, nwritetrc,' ' ) 
    173             CALL ctl_opn( inum, 'date.file', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea ) 
     174            CALL ctlopn( inum, 'date.file', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 1, numout, lwp, narea ) 
    174175            WRITE(inum,*) clhstnam 
    175176            CLOSE(inum) 
     
    184185         CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,     & 
    185186            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,         &  
    186             &          nittrc000-ndttrc, xjulian, zdt, nhorit5, nit5 , domain_id=nidom) 
     187            &          nittrc000-ndttrc, zjulian, zdt, nhorit5, nit5 , domain_id=nidom) 
    187188 
    188189         ! Vertical grid for tracer : gdept 
     
    258259      CHARACTER (len=80) ::   cltral 
    259260      CHARACTER (len=10) ::   csuff 
    260       INTEGER  ::   jn, jl 
     261      INTEGER  ::   jn, jl, ikn 
    261262      INTEGER  ::   iimi, iima, ijmi, ijma, ipk, it, itmod 
    262263      REAL(wp) ::   zsto, zout, zdt 
     
    313314               CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,       & 
    314315                  &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,   & 
    315                   &          nittrc000-ndttrc, xjulian, zdt, nhorit6(jn),  & 
     316                  &          nittrc000-ndttrc, zjulian, zdt, nhorit6(jn),  & 
    316317                  &          nit6(jn) , domain_id=nidom ) 
    317318 
     
    322323 
    323324          ! Declare all the output fields as NETCDF variables 
    324  
    325           ! trends for tracer concentrations 
    326325          DO jn = 1, jptra 
    327326            IF( luttrd(jn) ) THEN 
    328327                DO jl = 1, jpdiatrc 
    329                   IF( jl == 1 ) THEN 
     328                  IF( jl == jptrc_xad ) THEN 
    330329                      ! short and long title for x advection for tracer 
    331330                      WRITE (cltra,'("XAD_",16a)') ctrcnm(jn) 
    332                       WRITE (cltral,'("X advective trend for ",58a)')  & 
    333                          &      ctrcnl(jn)(1:58) 
    334                   END IF 
    335                   IF( jl == 2 ) THEN 
     331                      WRITE (cltral,'("X advective trend for ",58a)') ctrcnl(jn)(1:58) 
     332                  END IF 
     333                  IF( jl == jptrc_yad ) THEN 
    336334                      ! short and long title for y advection for tracer 
    337335                      WRITE (cltra,'("YAD_",16a)') ctrcnm(jn) 
    338                       WRITE (cltral,'("Y advective trend for ",58a)')  & 
    339                          &      ctrcnl(jn)(1:58) 
    340                   END IF 
    341                   IF( jl == 3 ) THEN 
     336                      WRITE (cltral,'("Y advective trend for ",58a)') ctrcnl(jn)(1:58) 
     337                  END IF 
     338                  IF( jl == jptrc_zad ) THEN 
    342339                      ! short and long title for Z advection for tracer 
    343340                      WRITE (cltra,'("ZAD_",16a)') ctrcnm(jn) 
    344                       WRITE (cltral,'("Z advective trend for ",58a)')  & 
    345                          &      ctrcnl(jn)(1:58) 
    346                   END IF 
    347                   IF( jl == 4 ) THEN 
     341                      WRITE (cltral,'("Z advective trend for ",58a)') ctrcnl(jn)(1:58) 
     342                  END IF 
     343                  IF( jl == jptrc_xdf ) THEN 
    348344                      ! short and long title for X diffusion for tracer 
    349345                      WRITE (cltra,'("XDF_",16a)') ctrcnm(jn) 
    350                       WRITE (cltral,'("X diffusion trend for ",58a)')  & 
    351                          &      ctrcnl(jn)(1:58) 
    352                   END IF 
    353                   IF( jl == 5 ) THEN 
     346                      WRITE (cltral,'("X diffusion trend for ",58a)') ctrcnl(jn)(1:58) 
     347                  END IF 
     348                  IF( jl == jptrc_ydf ) THEN 
    354349                      ! short and long title for Y diffusion for tracer 
    355350                      WRITE (cltra,'("YDF_",16a)') ctrcnm(jn) 
    356                       WRITE (cltral,'("Y diffusion trend for ",58a)')  & 
    357                          &      ctrcnl(jn)(1:58) 
    358                   END IF 
    359                   IF( jl == 6 ) THEN 
     351                      WRITE (cltral,'("Y diffusion trend for ",58a)') ctrcnl(jn)(1:58) 
     352                  END IF 
     353                  IF( jl == jptrc_zdf ) THEN 
    360354                      ! short and long title for Z diffusion for tracer 
    361355                      WRITE (cltra,'("ZDF_",16a)') ctrcnm(jn) 
    362                       WRITE (cltral,'("Z diffusion trend for ",58a)')  & 
    363                          &      ctrcnl(jn)(1:58) 
     356                      WRITE (cltral,'("Z diffusion trend for ",58a)') ctrcnl(jn)(1:58) 
    364357                  END IF 
    365358# if defined key_trcldf_eiv 
    366                   IF( jl == 7 ) THEN 
     359                  IF( jl == jptrc_xei ) THEN 
    367360                      ! short and long title for x gent velocity for tracer 
    368361                      WRITE (cltra,'("XGV_",16a)') ctrcnm(jn) 
    369                       WRITE (cltral,'("X gent velocity trend for ",53a)')  & 
    370                          &      ctrcnl(jn)(1:53) 
    371                   END IF 
    372                   IF( jl == 8 ) THEN 
     362                      WRITE (cltral,'("X gent velocity trend for ",53a)') ctrcnl(jn)(1:53) 
     363                  END IF 
     364                  IF( jl == jptrc_yei ) THEN 
    373365                      ! short and long title for y gent velocity for tracer 
    374366                      WRITE (cltra,'("YGV_",16a)') ctrcnm(jn) 
    375                       WRITE (cltral,'("Y gent velocity trend for ",53a)')  & 
    376                          &      ctrcnl(jn)(1:53) 
    377                   END IF 
    378                   IF( jl == 9 ) THEN 
     367                      WRITE (cltral,'("Y gent velocity trend for ",53a)') ctrcnl(jn)(1:53) 
     368                  END IF 
     369                  IF( jl == jptrc_zei ) THEN 
    379370                      ! short and long title for Z gent velocity for tracer 
    380371                      WRITE (cltra,'("ZGV_",16a)') ctrcnm(jn) 
    381                       WRITE (cltral,'("Z gent velocity trend for ",53a)')  & 
    382                          &      ctrcnl(jn)(1:53) 
     372                      WRITE (cltral,'("Z gent velocity trend for ",53a)') ctrcnl(jn)(1:53) 
    383373                  END IF 
    384374# endif 
    385375# if defined key_trcdmp 
    386                   IF( jl == jpdiatrc - 1 ) THEN 
     376                  IF( jl == jptrc_dmp ) THEN 
    387377                      ! last trends for tracer damping : short and long title 
    388378                      WRITE (cltra,'("TDM_",16a)') ctrcnm(jn) 
    389                       WRITE (cltral,'("Tracer damping trend for ",55a)')  & 
    390                          &      ctrcnl(jn)(1:55) 
    391                   END IF 
    392 # endif 
    393                   IF( jl == jpdiatrc ) THEN 
     379                      WRITE (cltral,'("Tracer damping trend for ",55a)') ctrcnl(jn)(1:55) 
     380                  END IF 
     381# endif 
     382                  IF( jl == jptrc_sbc ) THEN 
    394383                      ! last trends for tracer damping : short and long title 
    395384                      WRITE (cltra,'("SBC_",16a)') ctrcnm(jn) 
    396                       WRITE (cltral,'("Surface boundary flux ",58a)')  & 
    397                       &      ctrcnl(jn)(1:58) 
    398                   END IF 
    399  
     385                      WRITE (cltral,'("Surface boundary flux ",58a)') ctrcnl(jn)(1:55) 
     386                  END IF 
     387                      WRITE (cltral,'("Surface boundary flux ",58a)') ctrcnl(jn)(1:55) 
     388                  END IF 
    400389                  CALL FLUSH( numout ) 
    401390                  cltrau = ctrcun(jn)      ! UNIT for tracer /trends 
     
    406395            END IF 
    407396         END DO 
    408  
    409397         ! CLOSE netcdf Files 
    410398          DO jn = 1, jptra 
     
    432420      DO jn = 1, jptra 
    433421         IF( luttrd(jn) ) THEN 
     422            ikn = ikeep(jn)  
    434423            DO jl = 1, jpdiatrc 
    435                ! short titles  
    436                IF( jl == 1)   WRITE (cltra,'("XAD_",16a)') ctrcnm(jn)      ! x advection for tracer 
    437                IF( jl == 2)   WRITE (cltra,'("YAD_",16a)') ctrcnm(jn)      ! z advection for tracer 
    438                IF( jl == 3)   WRITE (cltra,'("ZAD_",16a)') ctrcnm(jn)      ! z advection for tracer 
    439                IF( jl == 4)   WRITE (cltra,'("XDF_",16a)') ctrcnm(jn)      ! x diffusion for tracer 
    440                IF( jl == 5)   WRITE (cltra,'("YDF_",16a)') ctrcnm(jn)      ! y diffusion for tracer 
    441                IF( jl == 6)   WRITE (cltra,'("ZDF_",16a)') ctrcnm(jn)      ! z diffusion for tracer 
     424               ! short titles 
     425               IF( jl == jptrc_xad)   WRITE (cltra,'("XAD_",16a)') ctrcnm(jn) 
     426               IF( jl == jptrc_yad)   WRITE (cltra,'("YAD_",16a)') ctrcnm(jn) 
     427               IF( jl == jptrc_zad)   WRITE (cltra,'("ZAD_",16a)') ctrcnm(jn) 
     428               IF( jl == jptrc_xdf)   WRITE (cltra,'("XDF_",16a)') ctrcnm(jn) 
     429               IF( jl == jptrc_ydf)   WRITE (cltra,'("YDF_",16a)') ctrcnm(jn) 
     430               IF( jl == jptrc_zdf)   WRITE (cltra,'("ZDF_",16a)') ctrcnm(jn) 
    442431# if defined key_trcldf_eiv 
    443                IF( jl == 7)   WRITE (cltra,'("XGV_",16a)') ctrcnm(jn)      ! x gent velocity for tracer 
    444                IF( jl == 8)   WRITE (cltra,'("YGV_",16a)') ctrcnm(jn)      ! y gent velocity for tracer 
    445                IF( jl == 9)   WRITE (cltra,'("ZGV_",16a)') ctrcnm(jn)      ! z gent velocity for tracer 
     432               IF( jl == jptrc_xei)   WRITE (cltra,'("XGV_",16a)') ctrcnm(jn) 
     433               IF( jl == jptrc_yei)   WRITE (cltra,'("YGV_",16a)') ctrcnm(jn) 
     434               IF( jl == jptrc_zei)   WRITE (cltra,'("ZGV_",16a)') ctrcnm(jn) 
    446435# endif 
    447436# if defined key_trcdmp 
    448                IF( jl == jpdiatrc - 1 )   WRITE (cltra,'("TDM_",16a)') ctrcnm(jn)      ! damping 
    449 # endif 
    450                IF( jl == jpdiatrc )   WRITE (cltra,'("SBC_",a)') ctrcnm(jn)      ! surface boundary conditions 
     437               IF( jl == jptrc_dmp )  WRITE (cltra,'("TDM_",16a)') ctrcnm(jn) 
     438# endif 
     439               IF( jl == jptrc_sbc )  WRITE (cltra,'("SBC_",16a)') ctrcnm(jn) 
    451440               ! 
    452                CALL histwrite(nit6(jn), cltra, it, trtrd(:,:,:,ikeep(jn),jl),ndimt50, ndext50) 
     441               CALL histwrite(nit6(jn), cltra, it, trtrd(:,:,:,ikn,jl),ndimt50, ndext50) 
    453442            END DO 
    454443         END IF 
     
    552541         CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,             & 
    553542            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,         & 
    554             &          nittrc000-ndttrc, xjulian, zdt, nhoritd, nitd , domain_id=nidom ) 
     543            &          nittrc000-ndttrc, zjulian, zdt, nhoritd, nitd , domain_id=nidom ) 
    555544 
    556545         ! Vertical grid for 2d and 3d arrays 
     
    700689         CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,      & 
    701690            &    iimi, iima-iimi+1, ijmi, ijma-ijmi+1,          & 
    702             &    nittrc000-ndttrc, xjulian, zdt, nhoritb, nitb , domain_id=nidom ) 
     691            &    nittrc000-ndttrc, zjulian, zdt, nhoritb, nitb , domain_id=nidom ) 
    703692         ! Vertical grid for biological trends 
    704693         CALL histvert(nitb, 'deptht', 'Vertical T levels', 'm', ipk, gdept_0, ndepitb) 
  • trunk/NEMO/TOP_SRC/trcini.F90

    r1745 r1836  
    122122         trb(:,:,:,:) = trn(:,:,:,:) 
    123123      ELSE 
     124         ! 
    124125         CALL trc_rst_read      ! restart from a file 
    125 #if defined key_off_tra 
    126          CALL day_init          ! calendar 
    127 #endif 
     126         ! 
    128127      ENDIF 
    129128 
  • trunk/NEMO/TOP_SRC/trcrst.F90

    r1801 r1836  
    3333   USE trcrst_c14b     ! C14 bomb restart 
    3434   USE trcrst_my_trc   ! MY_TRC   restart 
    35  
     35#if defined key_off_tra 
     36    USE daymod 
     37#endif 
    3638   IMPLICIT NONE 
    3739   PRIVATE 
     
    277279           WRITE(numout,*) 
    278280         ENDIF 
     281         ! 
     282         CALL day_init          ! compute calendar 
     283         ! 
    279284#endif 
    280285 
  • trunk/NEMO/TOP_SRC/trcwri.F90

    r1656 r1836  
    11MODULE trcwri 
    2    !!====================================================================== 
     2   !!=================================================================================== 
    33   !!                       *** MODULE trcwri *** 
    4    !!    TOP :   Output of passive tracers  
    5    !!====================================================================== 
    6    !!             1.0  !   
    7    !!                  !  2009-05 (C. Ethe ) 
     4   !!    TOP :   Output of passive tracers 
     5   !!==================================================================================== 
     6   !! History :   1.0  !  2009-05 (C. Ethe)  Original code 
     7   !!                  !  2010-03 (C. Ethe, R. Seferian ) Add the tracer transport trends 
    88   !!---------------------------------------------------------------------- 
    99#if defined key_top &&  defined key_iomput 
     
    1111   !!   'key_top' && 'key_iomput'                              TOP models 
    1212   !!---------------------------------------------------------------------- 
    13    !! trc_wri     :  outputs of concentration fields 
     13   !! trc_wri_trc   :  outputs of concentration fields 
     14   !! trc_wri_trd   :  outputs of transport trends 
    1415   !!---------------------------------------------------------------------- 
     16   USE dom_oce         ! ocean space and time domain variables 
     17   USE oce_trc 
     18   USE trp_trc 
    1519   USE trc 
     20   USE trdmld_trc_oce, ONLY : luttrd 
    1621   USE iom 
    1722#if defined key_off_tra 
     
    3540CONTAINS 
    3641 
    37    SUBROUTINE trc_wri( kt )   
     42   SUBROUTINE trc_wri( kt ) 
    3843      !!--------------------------------------------------------------------- 
    3944      !!                     ***  ROUTINE trc_wri  *** 
     45      !!  
     46      !! ** Purpose :   output passive tracers fields and dynamical trends 
     47      !!--------------------------------------------------------------------- 
     48      INTEGER, INTENT( in ) :: kt 
     49      !!--------------------------------------------------------------------- 
     50 
     51      ! 
     52      CALL iom_setkt  ( kt + ndttrc - 1 )       ! set the passive tracer time step 
     53      CALL trc_wri_trc( kt              )       ! outputs for tracer concentration 
     54      CALL trc_wri_trd( kt              )       ! outputs for dynamical trends 
     55      CALL iom_setkt  ( kt              )       ! set the model time step 
     56      ! 
     57   END SUBROUTINE trc_wri 
     58 
     59   SUBROUTINE trc_wri_trc( kt )   
     60      !!--------------------------------------------------------------------- 
     61      !!                     ***  ROUTINE trc_wri_trc  *** 
    4062      !! 
    4163      !! ** Purpose :   output passive tracers fields  
     
    4365      INTEGER, INTENT( in ) :: kt       ! ocean time-step 
    4466      INTEGER               :: jn 
    45       CHARACTER (len=20)    :: cltra 
     67      CHARACTER (len=20)    :: cltra, cltras 
    4668#if defined key_off_tra 
    4769      CHARACTER (len=40) :: clhstnam 
    4870      INTEGER ::   inum = 11            ! temporary logical unit 
    4971#endif 
    50  
    5172      !!--------------------------------------------------------------------- 
    5273  
    53       ! Initialisation 
    54       ! -------------- 
    55  
    56       CALL iom_setkt( kt + ndttrc - 1 ) ! set the passive tracer time step 
    57  
    5874#if defined key_off_tra 
    5975      IF( kt == nittrc000 ) THEN 
     
    6783      ENDIF 
    6884#endif 
    69  
    70  
    7185      ! write the tracer concentrations in the file 
    7286      ! --------------------------------------- 
     
    7690      END DO 
    7791      ! 
    78       CALL iom_setkt( kt )       ! set the model time step 
     92   END SUBROUTINE trc_wri_trc 
    7993 
     94# if defined key_trc_diatrd 
     95 
     96   SUBROUTINE trc_wri_trd( kt ) 
     97      !!---------------------------------------------------------------------- 
     98      !!                     ***  ROUTINE trc_wri_trd  *** 
     99      !! 
     100      !! ** Purpose :   output of passive tracer : advection-diffusion trends 
     101      !! 
     102      !!---------------------------------------------------------------------- 
     103      INTEGER, INTENT( in ) ::   kt          ! ocean time-step 
     104      !! 
     105      CHARACTER (len=3) ::   cltra 
     106      INTEGER  ::   jn, jl, ikn 
     107      !!---------------------------------------------------------------------- 
     108 
     109      DO jn = 1, jptra 
     110         IF( luttrd(jn) ) THEN 
     111            ikn = ikeep(jn) 
     112            DO jl = 1, jpdiatrc 
     113               IF( jl == jptrc_xad ) WRITE (cltra,"(3a)") 'XAD' ! x advection for tracer 
     114               IF( jl == jptrc_yad ) WRITE (cltra,"(3a)") 'YAD'  ! y advection for tracer 
     115               IF( jl == jptrc_zad ) WRITE (cltra,"(3a)") 'ZAD'  ! z advection for tracer 
     116               IF( jl == jptrc_xdf ) WRITE (cltra,"(3a)") 'XDF'  ! x diffusion for tracer 
     117               IF( jl == jptrc_ydf ) WRITE (cltra,"(3a)") 'YDF'  ! y diffusion for tracer 
     118               IF( jl == jptrc_zdf ) WRITE (cltra,"(3a)") 'ZDF'  ! z diffusion for tracer 
     119# if defined key_trcldf_eiv 
     120               IF( jl == jptrc_xei ) WRITE (cltra,"(3a)") 'XGV'  ! x gent velocity for tracer 
     121               IF( jl == jptrc_yei ) WRITE (cltra,"(3a)") 'YGV'  ! y gent velocity for tracer 
     122               IF( jl == jptrc_zei ) WRITE (cltra,"(3a)") 'ZGV'  ! z gent velocity for tracer 
     123# endif 
     124# if defined key_trcdmp 
     125               IF( jl == jptrc_dmp ) WRITE (cltra,"(3a)") 'DMP'  ! damping 
     126# endif 
     127               IF( jl == jptrc_sbc ) WRITE (cltra,"(3a)") 'SBC'  ! surface boundary conditions 
     128               ! write the trends 
     129               CALL iom_put( cltra, trtrd(:,:,:,ikn,jl) ) 
     130            END DO 
     131         END IF 
     132      END DO 
    80133      ! 
    81    END SUBROUTINE trc_wri 
     134   END SUBROUTINE trc_wri_trd 
    82135 
     136# else 
     137   SUBROUTINE trc_wri_trd( kt )                      ! Dummy routine 
     138      INTEGER, INTENT ( in ) ::   kt 
     139   END SUBROUTINE trc_wri_trd 
     140#endif 
    83141#else 
    84142   !!---------------------------------------------------------------------- 
     
    90148   INTEGER, INTENT(in) :: kt 
    91149   END SUBROUTINE trc_wri 
    92  
    93150#endif 
    94151 
Note: See TracChangeset for help on using the changeset viewer.