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 1457 for trunk/NEMO/TOP_SRC/PISCES/p4zflx.F90 – NEMO

Ignore:
Timestamp:
2009-05-23T10:16:38+02:00 (15 years ago)
Author:
cetlod
Message:

distribution of iom_put in TOP routines, see ticket:437

File:
1 edited

Legend:

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

    r1329 r1457  
    2323   USE prtctl_trc 
    2424   USE p4zche 
     25   USE iom 
    2526 
    2627   USE lib_mpp 
     
    3233 
    3334   REAL(wp) :: &  ! pre-industrial atmospheric [co2] (ppm)   
    34      atcox  = 0.20946 ,   &  !: 
    35      atcco2 = 278.           !: 
    36  
    37    REAL(wp) :: & 
    38      tco2flx                 !: Total flux of carbon per year 
     35      atcox  = 0.20946 ,    &  !: 
     36      atcco2 = 278.            !: 
     37  
     38   REAL(wp) :: &           
     39      xconv  = 0.01/3600.,  &  ! coefficients for conversion        
     40      tco2flx                 !: Total flux of carbon per year 
    3941 
    4042   !!* Substitution 
     
    5860      INTEGER, INTENT(in) :: kt 
    5961      INTEGER  ::   ji, jj, jrorr, nspyr 
    60       REAL(wp) ::   zttc, zws, zkgwan 
     62      REAL(wp) ::   ztc, ztc2, ztc3, zws, zkgwan 
    6163      REAL(wp) ::   zfld, zflu, zfld16, zflu16, zfact 
    62       REAL(wp) ::   zph, zah2, zbot, zdic, zalk, zschmitto2, zalka, zschmittco2 
     64      REAL(wp) ::   zph, zah2, zbot, zdic, zalk, zsch_o2, zalka, zsch_co2 
    6365      REAL(wp), DIMENSION(jpi,jpj) ::   zkgco2, zkgo2, zh2co3, ztco2flx 
     66#if defined key_trc_diaadd && defined key_iomput 
     67      REAL(wp), DIMENSION(jpi,jpj) ::  zcflx, zoflx, zkg, zdelc 
     68#endif 
    6469      CHARACTER (len=25) :: charout 
    6570 
     
    120125!CDIR NOVERRCHK 
    121126         DO ji = 1, jpi 
    122  
    123             zttc = MIN( 35., tn(ji,jj,1) ) 
    124  
    125       ! Compute the schmidt Number both O2 and CO2 
    126       ! ------------------------------------------ 
    127  
    128             zschmittco2 = 2073.1 - 125.62 * zttc + 3.6276 * zttc**2 - 0.043126 * zttc**3 
    129             zschmitto2  = 1953.4 - 128.0 * zttc + 3.9918 * zttc**2 - 0.050091 * zttc**3 
    130  
     127            ztc  = MIN( 35., tn(ji,jj,1) ) 
     128            ztc2 = ztc * ztc 
     129            ztc3 = ztc * ztc2  
     130            ! Compute the schmidt Number both O2 and CO2 
     131            zsch_co2 = 2073.1 - 125.62 * ztc + 3.6276 * ztc2 - 0.043126 * ztc3 
     132            zsch_o2  = 1953.4 - 128.0  * ztc + 3.9918 * ztc2 - 0.050091 * ztc3 
    131133            !  wind speed  
    132             zws  = wndm(ji,jj) 
    133  
    134       ! Compute the piston velocity for O2 and CO2 
    135       ! ------------------------------------------ 
    136  
    137             zkgwan = (  0.3 * zws * zws    & 
    138                &   + 2.5 * ( 0.5246 + zttc * ( 0.016256+zttc*0.00049946 ) ) ) & 
     134            zws  = wndm(ji,jj) * wndm(ji,jj) 
     135            ! Compute the piston velocity for O2 and CO2 
     136            zkgwan = 0.3 * zws  + 2.5 * ( 0.5246 + 0.016256 * ztc + 0.00049946  * ztc2 ) 
    139137# if defined key_off_degrad 
    140                &         * facvol(ji,jj,1)      & 
    141 # endif 
    142                &   / (100. * 3600.)* ( 1.- fr_i(ji,jj) ) * tmask(ji,jj,1)   
    143  
    144             ! COMPUTE GAS EXCHANGE FOR CO2 
    145             zkgco2(ji,jj) = zkgwan * SQRT( 660./ zschmittco2 ) 
    146             zkgo2(ji,jj)  = zkgwan * SQRT( 660./ zschmitto2 ) 
    147  
    148          END DO 
    149       END DO 
    150  
    151       ztco2flx(:,:) = 0. 
     138            zkgwan = zkgwan * xconv * ( 1.- fr_i(ji,jj) ) * tmask(ji,jj,1) * facvol(ji,jj,1) 
     139#else 
     140            zkgwan = zkgwan * xconv * ( 1.- fr_i(ji,jj) ) * tmask(ji,jj,1) 
     141#endif  
     142            ! compute gas exchange for CO2 and O2 
     143            zkgco2(ji,jj) = zkgwan * SQRT( 660./ zsch_co2 ) 
     144            zkgo2 (ji,jj) = zkgwan * SQRT( 660./ zsch_o2 ) 
     145         END DO 
     146      END DO 
     147 
     148#if ! defined key_iomput 
    152149      DO jj = 1, jpj 
    153150         DO ji = 1, jpi 
     
    167164            tra(ji,jj,1,jpoxy) = tra(ji,jj,1,jpoxy) + ( zfld16 - zflu16 ) / fse3t(ji,jj,1) 
    168165 
    169 # if defined key_trc_diaadd 
     166# if defined key_trc_diaadd  
    170167            ! Save diagnostics 
    171168            trc2d(ji,jj,jp_pcs0_2d    ) = ( zfld - zflu ) * 1000.  * tmask(ji,jj,1) 
     
    177174      END DO 
    178175      ! 
     176#else 
     177      DO jj = 1, jpj 
     178         DO ji = 1, jpi 
     179            ! Compute CO2 flux for the sea and air 
     180            zfld = atcco2 * tmask(ji,jj,1) * chemc(ji,jj,1) * zkgco2(ji,jj) 
     181            zflu = zh2co3(ji,jj) * tmask(ji,jj,1) * zkgco2(ji,jj) 
     182            tra(ji,jj,1,jpdic) = tra(ji,jj,1,jpdic) + ( zfld - zflu ) / fse3t(ji,jj,1) 
     183 
     184            ! compute flux of carbon 
     185            ztco2flx(ji,jj) = ( zfld - zflu ) * rfact & 
     186               &             * e1t(ji,jj) * e2t(ji,jj) * tmask(ji,jj,1) * 1000. 
     187 
     188            ! Compute O2 flux  
     189            zfld16 = atcox * chemc(ji,jj,2) *tmask(ji,jj,1) * zkgo2(ji,jj) 
     190            zflu16 = trn(ji,jj,1,jpoxy) * tmask(ji,jj,1) * zkgo2(ji,jj) 
     191            tra(ji,jj,1,jpoxy) = tra(ji,jj,1,jpoxy) + ( zfld16 - zflu16 ) / fse3t(ji,jj,1) 
     192# if defined key_trc_diaadd  
     193            ! Save diagnostics 
     194            zcflx(ji,jj) = ( zfld - zflu ) * 1000.  * tmask(ji,jj,1) 
     195            zoflx(ji,jj) = ( zfld16 - zflu16 ) * 1000. * tmask(ji,jj,1) 
     196            zkg  (ji,jj) = zkgco2(ji,jj) * tmask(ji,jj,1) 
     197            zdelc(ji,jj) = atcco2 - zh2co3(ji,jj) / ( chemc(ji,jj,1) + rtrn ) * tmask(ji,jj,1) 
     198# endif 
     199         END DO 
     200      END DO 
     201#endif 
    179202 
    180203      ! Total Flux of Carbon 
     
    203226      ENDIF 
    204227 
     228# if defined key_trc_diaadd && defined key_iomput 
     229      CALL iom_put( "Cflx", zcflx ) 
     230      CALL iom_put( "Oflx", zoflx ) 
     231      CALL iom_put( "Kg"  , zkg   ) 
     232      CALL iom_put( "DelC", zdelc ) 
     233#endif 
    205234 
    206235   END SUBROUTINE p4z_flx 
Note: See TracChangeset for help on using the changeset viewer.