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 for branches/2011/dev_LOCEAN_2011/NEMOGCM/NEMO/TOP_SRC/PISCES/p4zflx.F90 – NEMO

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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.