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 3028 – NEMO

Changeset 3028


Ignore:
Timestamp:
2011-10-31T09:42:39+01:00 (12 years ago)
Author:
cetlod
Message:

branch dev_LOCEAN_2011 : minor changes in TOP component relative to the management of additional diagnostics

Location:
branches/2011/dev_LOCEAN_2011/NEMOGCM/NEMO/TOP_SRC
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_LOCEAN_2011/NEMOGCM/NEMO/TOP_SRC/C14b/trcsms_c14b.F90

    r2977 r3028  
    9696      USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    9797      USE wrk_nemo, ONLY:   zatmbc14 => wrk_2d_1 
    98       USE wrk_nemo, ONLY:   zw3d     => wrk_3d_1 
     98      USE wrk_nemo, ONLY:   zdecay   => wrk_3d_1 
    9999      ! 
    100100      INTEGER, INTENT(in) ::   kt    ! ocean time-step index 
     
    251251            ! cumulation of surface flux at each time step 
    252252            qint_c14(ji,jj) = qint_c14(ji,jj) + qtr_c14(ji,jj) * rdt 
    253  
    254             !                                        ! Save 2D diagnostics 
    255             IF( .NOT.lk_iomput .AND. ln_diatrc ) THEN 
    256                trc2d(ji,jj,jp_c14b0_2d    ) = qtr_c14 (ji,jj) 
    257                trc2d(ji,jj,jp_c14b0_2d + 1) = qint_c14(ji,jj) 
    258             ENDIF  
    259253            ! 
    260254         END DO 
     
    266260            DO ji = 1, jpi 
    267261#if defined key_degrad 
    268                ztra = trn(ji,jj,jk,jpc14) * ( 1. - EXP( -xlambda * rdt * facvol(ji,jj,jk) ) ) 
     262               zdecay(ji,jj,jk) = trn(ji,jj,jk,jpc14) * ( 1. - EXP( -xlambda * rdt * facvol(ji,jj,jk) ) ) 
    269263#else 
    270                ztra = trn(ji,jj,jk,jpc14) * xaccum 
     264               zdecay(ji,jj,jk) = trn(ji,jj,jk,jpc14) * xaccum 
    271265#endif 
    272                tra(ji,jj,jk,jpc14) = tra(ji,jj,jk,jpc14) - ztra / rdt 
    273                !                                     ! save 3D diag : radioactive decay 
    274                IF( ln_diatrc ) THEN 
    275                   IF( lk_iomput ) THEN   ;   zw3d(ji,jj,jk)               = ztra 
    276                   ELSE                   ;   trc3d(ji,jj,jk,jp_c14b0_3d ) = ztra 
    277                   ENDIF 
    278                ENDIF 
     266               tra(ji,jj,jk,jpc14) = tra(ji,jj,jk,jpc14) - zdecay(ji,jj,jk) / rdt 
    279267               ! 
    280268            END DO 
     
    282270      END DO 
    283271 
    284       IF( lk_iomput ) THEN 
    285          CALL iom_put( "qtrC14b"  , qtr_c14  ) 
    286          CALL iom_put( "qintC14b" , qint_c14 ) 
    287          CALL iom_put( "fdecay"   , zw3d     ) 
     272      IF( ln_diatrc ) THEN 
     273         IF( lk_iomput ) THEN 
     274            CALL iom_put( "qtrC14b"  , qtr_c14  ) 
     275            CALL iom_put( "qintC14b" , qint_c14 ) 
     276            CALL iom_put( "fdecay"   , zdecay   ) 
     277          ELSE 
     278            trc2d(:,:  ,jp_c14b0_2d     ) = qtr_c14 (:,:) 
     279            trc2d(:,:  ,jp_c14b0_2d + 1 ) = qint_c14(:,:) 
     280            trc3d(:,:,:,jp_c14b0_3d     ) = zdecay  (:,:,:) 
     281          ENDIF 
    288282      ENDIF 
    289283 
  • branches/2011/dev_LOCEAN_2011/NEMOGCM/NEMO/TOP_SRC/LOBSTER/trcbio.F90

    r3010 r3028  
    8080      !!--------------------------------------------------------------------- 
    8181 
    82       IF( ln_diatrc .AND. lk_iomput ) THEN 
     82      IF( ln_diatrc ) THEN 
    8383         IF( ( wrk_in_use(3, 2) ) .OR. ( wrk_in_use(4, 1) ) ) THEN 
    8484            CALL ctl_stop('trc_bio : requested workspace arrays unavailable.')  ;  RETURN 
     
    9797      fbod(:,:) = 0.e0 
    9898      IF( ln_diatrc ) THEN 
    99          ! 
    100          IF( lk_iomput ) THEN 
    101             zw2d  (:,:,:) = 0.e0 
    102             zw3d(:,:,:,:) = 0.e0 
    103          ELSE 
    104             trc2d(:,:,  jp_lob0_2d:jp_lob1_2d) = 0.e0 
    105             trc3d(:,:,:,jp_lob0_3d:jp_lob1_3d) = 0.e0 
    106          ENDIF 
    107          ! 
     99         zw2d  (:,:,:) = 0.e0 
     100         zw3d(:,:,:,:) = 0.e0 
    108101      ENDIF 
    109102 
     
    223216                  ! convert fluxes in per day 
    224217                  ze3t = fse3t(ji,jj,jk) * 86400. 
    225                   IF( lk_iomput ) THEN 
    226                      zw2d(ji,jj,1)  = zw2d(ji,jj,1)  + zno3phy * ze3t 
    227                      zw2d(ji,jj,2)  = zw2d(ji,jj,2)  + znh4phy * ze3t 
    228                      zw2d(ji,jj,3)  = zw2d(ji,jj,3)  + zphydom * ze3t 
    229                      zw2d(ji,jj,4)  = zw2d(ji,jj,4)  + zphynh4 * ze3t 
    230                      zw2d(ji,jj,5)  = zw2d(ji,jj,5)  + zphyzoo * ze3t 
    231                      zw2d(ji,jj,6)  = zw2d(ji,jj,6)  + zphydet * ze3t 
    232                      zw2d(ji,jj,7)  = zw2d(ji,jj,7)  + zdetzoo * ze3t 
    233                      zw2d(ji,jj,8)  = zw2d(ji,jj,8)  + zzoodet * ze3t 
    234                      zw2d(ji,jj,9)  = zw2d(ji,jj,9)  + zzoobod * ze3t 
    235                      zw2d(ji,jj,10) = zw2d(ji,jj,10) + zzoonh4 * ze3t 
    236                      zw2d(ji,jj,11) = zw2d(ji,jj,11) + zzoodom * ze3t 
    237                      zw2d(ji,jj,12) = zw2d(ji,jj,12) + znh4no3 * ze3t 
    238                      zw2d(ji,jj,13) = zw2d(ji,jj,13) + zdomnh4 * ze3t 
    239                      zw2d(ji,jj,14) = zw2d(ji,jj,14) + zdetnh4 * ze3t 
    240                      zw2d(ji,jj,15) = zw2d(ji,jj,15) + ( zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo - zphydet ) * ze3t 
    241                      zw2d(ji,jj,16) = zw2d(ji,jj,16) + ( zphyzoo + zdetzoo - zzoodet - zzoobod - zzoonh4 - zzoodom ) * ze3t 
    242                      zw2d(ji,jj,17) = zw2d(ji,jj,17) + zdetdom * ze3t 
    243                      !    
    244                      zw3d(ji,jj,jk,1) = zno3phy * 86400 
    245                      zw3d(ji,jj,jk,2) = znh4phy * 86400      
    246                      zw3d(ji,jj,jk,3) = znh4no3 * 86400    
    247                   ELSE    
    248                      trc2d(ji,jj,jp_lob0_2d    ) = trc2d(ji,jj, jp_lob0_2d    ) + zno3phy * ze3t 
    249                      trc2d(ji,jj,jp_lob0_2d + 1) = trc2d(ji,jj, jp_lob0_2d + 1) + znh4phy * ze3t 
    250                      trc2d(ji,jj,jp_lob0_2d + 2) = trc2d(ji,jj, jp_lob0_2d + 2) + zphydom * ze3t 
    251                      trc2d(ji,jj,jp_lob0_2d + 3) = trc2d(ji,jj, jp_lob0_2d + 3) + zphynh4 * ze3t 
    252                      trc2d(ji,jj,jp_lob0_2d + 4) = trc2d(ji,jj, jp_lob0_2d + 4) + zphyzoo * ze3t 
    253                      trc2d(ji,jj,jp_lob0_2d + 5) = trc2d(ji,jj, jp_lob0_2d + 5) + zphydet * ze3t 
    254                      trc2d(ji,jj,jp_lob0_2d + 6) = trc2d(ji,jj, jp_lob0_2d + 6) + zdetzoo * ze3t 
    255                      ! trend number 8 is in trcsed.F             
    256                      trc2d(ji,jj,jp_lob0_2d +  8) = trc2d(ji,jj,jp_lob0_2d +  8) + zzoodet * ze3t 
    257                      trc2d(ji,jj,jp_lob0_2d +  9) = trc2d(ji,jj,jp_lob0_2d +  9) + zzoobod * ze3t 
    258                      trc2d(ji,jj,jp_lob0_2d + 10) = trc2d(ji,jj,jp_lob0_2d + 10) + zzoonh4 * ze3t 
    259                      trc2d(ji,jj,jp_lob0_2d + 11) = trc2d(ji,jj,jp_lob0_2d + 11) + zzoodom * ze3t 
    260                      trc2d(ji,jj,jp_lob0_2d + 12) = trc2d(ji,jj,jp_lob0_2d + 12) + znh4no3 * ze3t 
    261                      trc2d(ji,jj,jp_lob0_2d + 13) = trc2d(ji,jj,jp_lob0_2d + 13) + zdomnh4 * ze3t 
    262                      trc2d(ji,jj,jp_lob0_2d + 14) = trc2d(ji,jj,jp_lob0_2d + 14) + zdetnh4 * ze3t 
    263                      trc2d(ji,jj,jp_lob0_2d + 15) = trc2d(ji,jj,jp_lob0_2d + 15) + (  zno3phy + znh4phy - zphynh4   & 
    264                         &                                 - zphydom - zphyzoo - zphydet ) * ze3t 
    265                      trc2d(ji,jj,jp_lob0_2d + 16) = trc2d(ji,jj,jp_lob0_2d + 16) + (  zphyzoo + zdetzoo - zzoodet   & 
    266                         &                                 - zzoobod - zzoonh4 - zzoodom ) * ze3t 
    267                      trc2d(ji,jj,jp_lob0_2d + 17) = trc2d(ji,jj,jp_lob0_2d + 17) + zdetdom * ze3t 
    268                      ! trend number 19 is in trcexp.F 
    269                      trc3d(ji,jj,jk,jp_lob0_3d    ) = zno3phy * 86400 
    270                      trc3d(ji,jj,jk,jp_lob0_3d + 1) = znh4phy * 86400 
    271                      trc3d(ji,jj,jk,jp_lob0_3d + 2) = znh4no3 * 86400 
    272                      ! 
    273                   ENDIF 
     218                  zw2d(ji,jj,1)  = zw2d(ji,jj,1)  + zno3phy * ze3t 
     219                  zw2d(ji,jj,2)  = zw2d(ji,jj,2)  + znh4phy * ze3t 
     220                  zw2d(ji,jj,3)  = zw2d(ji,jj,3)  + zphydom * ze3t 
     221                  zw2d(ji,jj,4)  = zw2d(ji,jj,4)  + zphynh4 * ze3t 
     222                  zw2d(ji,jj,5)  = zw2d(ji,jj,5)  + zphyzoo * ze3t 
     223                  zw2d(ji,jj,6)  = zw2d(ji,jj,6)  + zphydet * ze3t 
     224                  zw2d(ji,jj,7)  = zw2d(ji,jj,7)  + zdetzoo * ze3t 
     225                  zw2d(ji,jj,8)  = zw2d(ji,jj,8)  + zzoodet * ze3t 
     226                  zw2d(ji,jj,9)  = zw2d(ji,jj,9)  + zzoobod * ze3t 
     227                  zw2d(ji,jj,10) = zw2d(ji,jj,10) + zzoonh4 * ze3t 
     228                  zw2d(ji,jj,11) = zw2d(ji,jj,11) + zzoodom * ze3t 
     229                  zw2d(ji,jj,12) = zw2d(ji,jj,12) + znh4no3 * ze3t 
     230                  zw2d(ji,jj,13) = zw2d(ji,jj,13) + zdomnh4 * ze3t 
     231                  zw2d(ji,jj,14) = zw2d(ji,jj,14) + zdetnh4 * ze3t 
     232                  zw2d(ji,jj,15) = zw2d(ji,jj,15) + ( zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo - zphydet ) * ze3t 
     233                  zw2d(ji,jj,16) = zw2d(ji,jj,16) + ( zphyzoo + zdetzoo - zzoodet - zzoobod - zzoonh4 - zzoodom ) * ze3t 
     234                  zw2d(ji,jj,17) = zw2d(ji,jj,17) + zdetdom * ze3t 
     235                  !    
     236                  zw3d(ji,jj,jk,1) = zno3phy * 86400 
     237                  zw3d(ji,jj,jk,2) = znh4phy * 86400      
     238                  zw3d(ji,jj,jk,3) = znh4no3 * 86400    
    274239                   !  
    275240                ENDIF 
     
    372337                  ! convert fluxes in per day 
    373338                  ze3t = fse3t(ji,jj,jk) * 86400. 
    374                   IF( lk_iomput ) THEN 
    375                      zw2d(ji,jj,1)  = zw2d(ji,jj,1)  + zno3phy * ze3t 
    376                      zw2d(ji,jj,2)  = zw2d(ji,jj,2)  + znh4phy * ze3t 
    377                      zw2d(ji,jj,3)  = zw2d(ji,jj,3)  + zphydom * ze3t 
    378                      zw2d(ji,jj,4)  = zw2d(ji,jj,4)  + zphynh4 * ze3t 
    379                      zw2d(ji,jj,5)  = zw2d(ji,jj,5)  + zphyzoo * ze3t 
    380                      zw2d(ji,jj,6)  = zw2d(ji,jj,6)  + zphydet * ze3t 
    381                      zw2d(ji,jj,7)  = zw2d(ji,jj,7)  + zdetzoo * ze3t 
    382                      zw2d(ji,jj,8)  = zw2d(ji,jj,8)  + zzoodet * ze3t 
    383                      zw2d(ji,jj,9)  = zw2d(ji,jj,9)  + zzoobod * ze3t 
    384                      zw2d(ji,jj,10) = zw2d(ji,jj,10) + zzoonh4 * ze3t 
    385                      zw2d(ji,jj,11) = zw2d(ji,jj,11) + zzoodom * ze3t 
    386                      zw2d(ji,jj,12) = zw2d(ji,jj,12) + znh4no3 * ze3t 
    387                      zw2d(ji,jj,13) = zw2d(ji,jj,13) + zdomnh4 * ze3t 
    388                      zw2d(ji,jj,14) = zw2d(ji,jj,14) + zdetnh4 * ze3t 
    389                      zw2d(ji,jj,15) = zw2d(ji,jj,15) + ( zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo - zphydet ) * ze3t 
    390                      zw2d(ji,jj,16) = zw2d(ji,jj,16) + ( zphyzoo + zdetzoo - zzoodet - zzoobod - zzoonh4 - zzoodom ) * ze3t 
    391                      zw2d(ji,jj,17) = zw2d(ji,jj,17) + zdetdom * ze3t 
    392                      !    
    393                      zw3d(ji,jj,jk,1) = zno3phy * 86400 
    394                      zw3d(ji,jj,jk,2) = znh4phy * 86400 
    395                      zw3d(ji,jj,jk,3) = znh4no3 * 86400 
    396                   ELSE     
    397                      trc2d(ji,jj,jp_lob0_2d    ) = trc2d(ji,jj, jp_lob0_2d    ) + zno3phy * ze3t 
    398                      trc2d(ji,jj,jp_lob0_2d + 1) = trc2d(ji,jj, jp_lob0_2d + 1) + znh4phy * ze3t 
    399                      trc2d(ji,jj,jp_lob0_2d + 2) = trc2d(ji,jj, jp_lob0_2d + 2) + zphydom * ze3t 
    400                      trc2d(ji,jj,jp_lob0_2d + 3) = trc2d(ji,jj, jp_lob0_2d + 3) + zphynh4 * ze3t 
    401                      trc2d(ji,jj,jp_lob0_2d + 4) = trc2d(ji,jj, jp_lob0_2d + 4) + zphyzoo * ze3t 
    402                      trc2d(ji,jj,jp_lob0_2d + 5) = trc2d(ji,jj, jp_lob0_2d + 5) + zphydet * ze3t 
    403                      trc2d(ji,jj,jp_lob0_2d + 6) = trc2d(ji,jj, jp_lob0_2d + 6) + zdetzoo * ze3t 
    404                      ! trend number 8 is in trcsed.F 
    405                      trc2d(ji,jj,jp_lob0_2d +  8) = trc2d(ji,jj,jp_lob0_2d +  8) + zzoodet * ze3t 
    406                      trc2d(ji,jj,jp_lob0_2d +  9) = trc2d(ji,jj,jp_lob0_2d +  9) + zzoobod * ze3t 
    407                      trc2d(ji,jj,jp_lob0_2d + 10) = trc2d(ji,jj,jp_lob0_2d + 10) + zzoonh4 * ze3t 
    408                      trc2d(ji,jj,jp_lob0_2d + 11) = trc2d(ji,jj,jp_lob0_2d + 11) + zzoodom * ze3t 
    409                      trc2d(ji,jj,jp_lob0_2d + 12) = trc2d(ji,jj,jp_lob0_2d + 12) + znh4no3 * ze3t 
    410                      trc2d(ji,jj,jp_lob0_2d + 13) = trc2d(ji,jj,jp_lob0_2d + 13) + zdomnh4 * ze3t 
    411                      trc2d(ji,jj,jp_lob0_2d + 14) = trc2d(ji,jj,jp_lob0_2d + 14) + zdetnh4 * ze3t 
    412                      trc2d(ji,jj,jp_lob0_2d + 15) = trc2d(ji,jj,jp_lob0_2d + 15) + (  zno3phy + znh4phy - zphynh4   & 
    413                         &                                 - zphydom - zphyzoo - zphydet ) * ze3t 
    414                      trc2d(ji,jj,jp_lob0_2d + 16) = trc2d(ji,jj,jp_lob0_2d + 16) + (  zphyzoo + zdetzoo - zzoodet   & 
    415                         &                                 - zzoobod - zzoonh4 - zzoodom ) * ze3t 
    416                      trc2d(ji,jj,jp_lob0_2d + 17) = trc2d(ji,jj,jp_lob0_2d + 17) + zdetdom * ze3t 
    417                      ! trend number 19 is in trcexp.F 
    418                      trc3d(ji,jj,jk,jp_lob0_3d    ) = zno3phy * 86400 
    419                      trc3d(ji,jj,jk,jp_lob0_3d + 1) = znh4phy * 86400 
    420                      trc3d(ji,jj,jk,jp_lob0_3d + 2) = znh4no3 * 86400 
    421                      ! 
    422                   ENDIF 
     339                  zw2d(ji,jj,1)  = zw2d(ji,jj,1)  + zno3phy * ze3t 
     340                  zw2d(ji,jj,2)  = zw2d(ji,jj,2)  + znh4phy * ze3t 
     341                  zw2d(ji,jj,3)  = zw2d(ji,jj,3)  + zphydom * ze3t 
     342                  zw2d(ji,jj,4)  = zw2d(ji,jj,4)  + zphynh4 * ze3t 
     343                  zw2d(ji,jj,5)  = zw2d(ji,jj,5)  + zphyzoo * ze3t 
     344                  zw2d(ji,jj,6)  = zw2d(ji,jj,6)  + zphydet * ze3t 
     345                  zw2d(ji,jj,7)  = zw2d(ji,jj,7)  + zdetzoo * ze3t 
     346                  zw2d(ji,jj,8)  = zw2d(ji,jj,8)  + zzoodet * ze3t 
     347                  zw2d(ji,jj,9)  = zw2d(ji,jj,9)  + zzoobod * ze3t 
     348                  zw2d(ji,jj,10) = zw2d(ji,jj,10) + zzoonh4 * ze3t 
     349                  zw2d(ji,jj,11) = zw2d(ji,jj,11) + zzoodom * ze3t 
     350                  zw2d(ji,jj,12) = zw2d(ji,jj,12) + znh4no3 * ze3t 
     351                  zw2d(ji,jj,13) = zw2d(ji,jj,13) + zdomnh4 * ze3t 
     352                  zw2d(ji,jj,14) = zw2d(ji,jj,14) + zdetnh4 * ze3t 
     353                  zw2d(ji,jj,15) = zw2d(ji,jj,15) + ( zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo - zphydet ) * ze3t 
     354                  zw2d(ji,jj,16) = zw2d(ji,jj,16) + ( zphyzoo + zdetzoo - zzoodet - zzoobod - zzoonh4 - zzoodom ) * ze3t 
     355                  zw2d(ji,jj,17) = zw2d(ji,jj,17) + zdetdom * ze3t 
     356                  !    
     357                  zw3d(ji,jj,jk,1) = zno3phy * 86400 
     358                  zw3d(ji,jj,jk,2) = znh4phy * 86400 
     359                  zw3d(ji,jj,jk,3) = znh4no3 * 86400 
    423360                   ! 
    424361                ENDIF 
     
    429366      IF( ln_diatrc ) THEN 
    430367         ! 
     368         DO jl = 1, 17  
     369            CALL lbc_lnk( zw2d(:,:,jl),'T', 1. ) 
     370         END DO 
     371         DO jl = 1, 3 
     372            CALL lbc_lnk( zw3d(:,:,:,jl),'T', 1. ) 
     373         END DO 
    431374         IF( lk_iomput ) THEN 
    432             DO jl = 1, 17  
    433                CALL lbc_lnk( zw2d(:,:,jl),'T', 1. ) 
    434             END DO 
    435             DO jl = 1, 3 
    436                CALL lbc_lnk( zw3d(:,:,:,jl),'T', 1. ) 
    437             END DO 
    438375            ! Save diagnostics 
    439376            CALL iom_put( "TNO3PHY", zw2d(:,:,1) ) 
     
    460397         ELSE 
    461398            ! 
    462            DO jl = jp_lob0_2d, jp_lob1_2d 
    463               CALL lbc_lnk( trc2d(:,:,jl),'T', 1. ) 
    464            END DO  
    465            ! 
    466            DO jl = jp_lob0_3d, jp_lob1_3d 
    467              CALL lbc_lnk( trc3d(:,:,1,jl),'T', 1. ) 
    468            END DO  
    469            ! 
    470         ENDIF 
     399            trc2d(:,:,jp_lob0_2d    ) = zw2d(:,:,1)  
     400            trc2d(:,:,jp_lob0_2d + 1) = zw2d(:,:,2)  
     401            trc2d(:,:,jp_lob0_2d + 2) = zw2d(:,:,3)  
     402            trc2d(:,:,jp_lob0_2d + 3) = zw2d(:,:,4)  
     403            trc2d(:,:,jp_lob0_2d + 4) = zw2d(:,:,5)  
     404            trc2d(:,:,jp_lob0_2d + 5) = zw2d(:,:,6)  
     405            trc2d(:,:,jp_lob0_2d + 6) = zw2d(:,:,7)  
     406                     ! trend number 8 is in trcsed.F 
     407            trc2d(:,:,jp_lob0_2d +  8) = zw2d(:,:,8)  
     408            trc2d(:,:,jp_lob0_2d +  9) = zw2d(:,:,9)  
     409            trc2d(:,:,jp_lob0_2d + 10) = zw2d(:,:,10)  
     410            trc2d(:,:,jp_lob0_2d + 11) = zw2d(:,:,11)  
     411            trc2d(:,:,jp_lob0_2d + 12) = zw2d(:,:,12)  
     412            trc2d(:,:,jp_lob0_2d + 13) = zw2d(:,:,13)  
     413            trc2d(:,:,jp_lob0_2d + 14) = zw2d(:,:,14)  
     414            trc2d(:,:,jp_lob0_2d + 15) = zw2d(:,:,15)  
     415            trc2d(:,:,jp_lob0_2d + 16) = zw2d(:,:,16)  
     416            trc2d(:,:,jp_lob0_2d + 17) = zw2d(:,:,17)  
     417            ! trend number 19 is in trcexp.F 
     418            trc3d(:,:,:,jp_lob0_3d    ) = zw3d(:,:,:,1)  
     419            trc3d(:,:,:,jp_lob0_3d + 1) = zw3d(:,:,:,2)  
     420            trc3d(:,:,:,jp_lob0_3d + 2) = zw3d(:,:,:,3)  
     421         ENDIF 
    471422        ! 
    472423      ENDIF 
  • branches/2011/dev_LOCEAN_2011/NEMOGCM/NEMO/TOP_SRC/LOBSTER/trcsed.F90

    r2977 r3028  
    5757      !!--------------------------------------------------------------------- 
    5858      USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 
    59       USE wrk_nemo, ONLY: zw2d  => wrk_2d_1, zwork => wrk_3d_2 
     59      USE wrk_nemo, ONLY: zwork => wrk_3d_2, ztra => wrk_3d_3 
     60      USE wrk_nemo, ONLY: zw2d  => wrk_2d_1 
    6061      !! 
    6162      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index       
    6263      !! 
    6364      INTEGER  ::   ji, jj, jk, jl, ierr 
    64       REAL(wp) ::   ztra, ze3t 
    6565      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  ztrbio 
    6666      CHARACTER (len=25) :: charout 
     
    7373      ENDIF 
    7474 
    75       IF( wrk_in_use(2, 1) .OR. wrk_in_use(3, 2) ) THEN 
     75      IF( wrk_in_use(2, 1) .OR. wrk_in_use(3, 2,3) ) THEN 
    7676         CALL ctl_stop('trc_sed : requested workspace arrays unavailable.')  ;  RETURN 
    7777      END IF 
     
    8585      ENDIF 
    8686 
    87       IF( ln_diatrc .AND. lk_iomput )  zw2d(:,:) = 0. 
     87      IF( ln_diatrc )  zw2d(:,:) = 0. 
    8888 
    8989      ! sedimentation of detritus  : upstream scheme 
     
    103103         DO jj = 1, jpj 
    104104            DO ji = 1, jpi 
    105                ztra  = - ( zwork(ji,jj,jk) - zwork(ji,jj,jk+1) ) / fse3t(ji,jj,jk) 
    106                tra(ji,jj,jk,jp_lob_det) = tra(ji,jj,jk,jp_lob_det) + ztra 
    107                ! 
    108                IF( ln_diabio )  trbio(ji,jj,jk,jp_lob0_trd + 7) = ztra 
    109                IF( ln_diatrc ) THEN 
    110                   ze3t = ztra * fse3t(ji,jj,jk) * 86400. 
    111                   IF( lk_iomput ) THEN   ;  zw2d(ji,jj) = zw2d(ji,jj) + ze3t  
    112                   ELSE                   ;  trc2d(ji,jj,jp_lob0_2d + 7) = trc2d(ji,jj,jp_lob0_2d + 7) + ze3t 
    113                   ENDIF 
    114                ENDIF 
    115                ! 
     105               ztra(ji,jj,jk)  = - ( zwork(ji,jj,jk) - zwork(ji,jj,jk+1) ) / fse3t(ji,jj,jk) 
     106               tra(ji,jj,jk,jp_lob_det) = tra(ji,jj,jk,jp_lob_det) + ztra(ji,jj,jk)  
    116107            END DO 
    117108         END DO 
    118109      END DO 
    119110 
    120       IF( ln_diatrc .AND. lk_iomput )  CALL iom_put( "TDETSED", zw2d ) 
    121  
     111      IF( ln_diatrc ) THEN  
     112         zw2d(:,:) = 0. 
     113         DO jk = 1, jpkm1 
     114            DO jj = 1, jpj 
     115               DO ji = 1, jpi 
     116                  zw2d(ji,jj) = zw2d(ji,jj) + ztra(ji,jj,jk) * fse3t(ji,jj,jk) * 86400. 
     117               END DO 
     118            END DO 
     119         END DO 
     120         IF( lk_iomput )  THEN 
     121           CALL iom_put( "TDETSED", zw2d ) 
     122         ELSE 
     123           trc2d(:,:,jp_lob0_2d + 7) = zw2d(:,:) 
     124         ENDIF 
     125      ENDIF 
     126      ! 
     127      IF( ln_diabio )  trbio(:,:,:,jp_lob0_trd + 7) = ztra(:,:,:) 
     128      ! 
    122129      IF( l_trdtrc ) THEN 
    123130         ztrbio(:,:,:) = tra(:,:,:,jp_lob_det) - ztrbio(:,:,:) 
     
    133140      ENDIF 
    134141 
    135       IF( ( wrk_not_released(2, 1) ) .OR. ( wrk_not_released(3, 2) ) )  & 
     142      IF( ( wrk_not_released(2, 1) ) .OR. ( wrk_not_released(3, 2,3) ) )  & 
    136143       &         CALL ctl_stop('trc_sed : failed to release workspace arrays.') 
    137144 
  • branches/2011/dev_LOCEAN_2011/NEMOGCM/NEMO/TOP_SRC/PISCES/p4zflx.F90

    r2987 r3028  
    8383      !!              - Add option for time-interpolation of atcco2.txt   
    8484      !!--------------------------------------------------------------------- 
    85       USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    86       USE wrk_nemo, ONLY:   zkgco2 => wrk_2d_11 , zkgo2 => wrk_2d_12 , zh2co3 => wrk_2d_13  
    87       USE wrk_nemo, ONLY:   zoflx  => wrk_2d_14 , zkg   => wrk_2d_15 
    88       USE wrk_nemo, ONLY:   zdpco2 => wrk_2d_16 , zdpo2 => wrk_2d_17 
     85      USE wrk_nemo, ONLY:  wrk_in_use, wrk_not_released 
     86      USE wrk_nemo, ONLY:  zkgco2 => wrk_2d_11 , zkgo2 => wrk_2d_12  
     87      USE wrk_nemo, ONLY:  zh2co3 => wrk_2d_13 , zoflx => wrk_2d_14  
     88      USE wrk_nemo, ONLY:    
    8989      ! 
    9090      INTEGER, INTENT(in) ::   kt   ! 
     
    9898      !!--------------------------------------------------------------------- 
    9999 
    100       IF( wrk_in_use(2, 11,12,13,14,15,16,17) ) THEN 
     100      IF( wrk_in_use(2, 11,12,13,14) ) THEN 
    101101         CALL ctl_stop('p4z_flx: requested workspace arrays unavailable')   ;   RETURN 
    102102      ENDIF 
     
    196196            zfld16 = atcox * patm(ji,jj) * chemc(ji,jj,2) * tmask(ji,jj,1) * zkgo2(ji,jj)          ! (mol/L) * (m/s) 
    197197            zflu16 = trn(ji,jj,1,jpoxy) * tmask(ji,jj,1) * zkgo2(ji,jj) 
    198             tra(ji,jj,1,jpoxy) = tra(ji,jj,1,jpoxy) + ( zfld16 - zflu16 ) / fse3t(ji,jj,1) 
    199  
    200             IF( ln_diatrc ) THEN          ! Save diagnostics 
    201               IF( lk_iomput ) THEN 
    202                  zoflx(ji,jj) = ( zfld16 - zflu16 ) * 1000. * tmask(ji,jj,1) 
    203                  zkg  (ji,jj) = zkgco2(ji,jj) * tmask(ji,jj,1) 
    204                  zdpco2(ji,jj) = ( satmco2(ji,jj) * patm(ji,jj) - zh2co3(ji,jj) / ( chemc(ji,jj,1) + rtrn ) ) * tmask(ji,jj,1) 
    205                  zdpo2 (ji,jj) = ( atcox * patm(ji,jj) - trn(ji,jj,1,jpoxy)    / ( chemc(ji,jj,2) + rtrn ) ) * tmask(ji,jj,1) 
    206               ELSE 
    207                  zfact = 1. / e1e2t(ji,jj) / rfact 
    208                  trc2d(ji,jj,jp_pcs0_2d    ) = oce_co2(ji,jj) * zfact 
    209                  trc2d(ji,jj,jp_pcs0_2d + 1) = ( zfld16 - zflu16 ) * 1000. * tmask(ji,jj,1) 
    210                  trc2d(ji,jj,jp_pcs0_2d + 2) = zkgco2(ji,jj) * tmask(ji,jj,1) 
    211                  trc2d(ji,jj,jp_pcs0_2d + 3) = ( satmco2(ji,jj)  * patm(ji,jj) - zh2co3(ji,jj) / ( chemc(ji,jj,1) + rtrn ) ) & 
    212                     &                            * tmask(ji,jj,1) 
    213               ENDIF 
    214            ENDIF 
     198            zoflx(ji,jj) = zfld16 - zflu16 
     199            tra(ji,jj,1,jpoxy) = tra(ji,jj,1,jpoxy) + zoflx(ji,jj) / fse3t(ji,jj,1) 
    215200         END DO 
    216201      END DO 
     
    241226 
    242227      IF( ln_diatrc ) THEN 
    243          CALL iom_put( "Cflx" , oce_co2(:,:) / e1e2t(:,:) / rfact )  
    244          CALL iom_put( "Oflx" , zoflx  ) 
    245          CALL iom_put( "Kg"   , zkg    ) 
    246          CALL iom_put( "Dpco2", zdpco2 ) 
    247          CALL iom_put( "Dpo2" , zdpo2  ) 
    248       ENDIF 
    249       ! 
    250       IF( wrk_not_released(2, 11,12,13,14,15,16,17) )  & 
    251         &             CALL ctl_stop('p4z_flx: failed to release workspace arrays') 
     228         IF( lk_iomput ) THEN 
     229            CALL iom_put( "Cflx" , oce_co2(:,:) / e1e2t(:,:) / rfact )  
     230            CALL iom_put( "Oflx" , zoflx(:,:) * 1000 * tmask(:,:,1)  ) 
     231            CALL iom_put( "Kg"   , zkgco2(:,:) * tmask(:,:,1) ) 
     232            CALL iom_put( "Dpco2", ( satmco2(:,:) * patm(:,:) - zh2co3(:,:) / ( chemc(:,:,1) + rtrn ) ) * tmask(:,:,1) ) 
     233            CALL iom_put( "Dpo2" , ( atcox * patm(:,:) - trn(:,:,1,jpoxy) / ( chemc(:,:,2) + rtrn ) ) * tmask(:,:,1) ) 
     234         ELSE 
     235            trc2d(:,:,jp_pcs0_2d    ) = oce_co2(:,:) / e1e2t(:,:) / rfact  
     236            trc2d(:,:,jp_pcs0_2d + 1) = zoflx(:,:) * 1000 * tmask(:,:,1)  
     237            trc2d(:,:,jp_pcs0_2d + 2) = zkgco2(:,:) * tmask(:,:,1)  
     238            trc2d(:,:,jp_pcs0_2d + 3) = ( satmco2(:,:) * patm(:,:) - zh2co3(:,:) / ( chemc(:,:,1) + rtrn ) ) * tmask(:,:,1)  
     239         ENDIF 
     240      ENDIF 
     241      ! 
     242      IF( wrk_not_released(2, 11,12,13,14) ) CALL ctl_stop('p4z_flx: failed to release workspace arrays') 
    252243      ! 
    253244   END SUBROUTINE p4z_flx 
Note: See TracChangeset for help on using the changeset viewer.