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 11993 for NEMO/trunk/src/TOP/PISCES – NEMO

Ignore:
Timestamp:
2019-11-28T11:20:53+01:00 (4 years ago)
Author:
cetlod
Message:

trunk : undo bad commit. Oups

Location:
NEMO/trunk/src/TOP/PISCES/P4Z
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zflx.F90

    r11989 r11993  
    160160            zfld = zfco2 * chemc(ji,jj,1) * zkgco2(ji,jj)  ! (mol/L) * (m/s) 
    161161            zflu = zh2co3(ji,jj) * zkgco2(ji,jj)                                   ! (mol/L) (m/s) ? 
    162             oce_co2(ji,jj) = ( zfld - zflu ) * tmask(ji,jj,1)  
     162            oce_co2(ji,jj) = ( zfld - zflu ) * rfact2 * e1e2t(ji,jj) * tmask(ji,jj,1) * 1000. 
    163163            ! compute the trend 
    164             tra(ji,jj,1,jpdic) = tra(ji,jj,1,jpdic) + oce_co2(ji,jj) * rfact2 / e3t_n(ji,jj,1) 
     164            tra(ji,jj,1,jpdic) = tra(ji,jj,1,jpdic) + ( zfld - zflu ) * rfact2 / e3t_n(ji,jj,1) * tmask(ji,jj,1) 
    165165 
    166166            ! Compute O2 flux  
     
    174174      IF( iom_use("tcflx") .OR. iom_use("tcflxcum") .OR. kt == nitrst   & 
    175175         &                 .OR. (ln_check_mass .AND. kt == nitend) )    & 
    176          t_oce_co2_flx  = glob_sum( 'p4zflx', oce_co2(:,:) * e1e2t(:,:) * 1000. )                    !  Total Flux of Carbon 
     176         t_oce_co2_flx  = glob_sum( 'p4zflx', oce_co2(:,:) )                    !  Total Flux of Carbon 
    177177      t_oce_co2_flx_cum = t_oce_co2_flx_cum + t_oce_co2_flx       !  Cumulative Total Flux of Carbon 
    178178!      t_atm_co2_flx     = glob_sum( 'p4zflx', satmco2(:,:) * e1e2t(:,:) )       ! Total atmospheric pCO2 
     
    186186 
    187187      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
    188          CALL iom_put( "AtmCo2" , satmco2(:,:) * tmask(:,:,1) )   ! Atmospheric CO2 concentration 
    189          !  
    190188         ALLOCATE( zw2d(jpi,jpj) )   
    191189         IF( iom_use( "Cflx"  ) )  THEN 
    192             zw2d(:,:) = oce_co2(:,:) * 1000.  ! conversion in molC/m2/s 
     190            zw2d(:,:) = oce_co2(:,:) / e1e2t(:,:) * rfact2r 
    193191            CALL iom_put( "Cflx"     , zw2d )  
    194192         ENDIF 
    195193         IF( iom_use( "Oflx"  ) )  THEN 
    196             zw2d(:,:) =  zoflx(:,:) * 1000. 
     194            zw2d(:,:) =  zoflx(:,:) * 1000 * tmask(:,:,1) 
    197195            CALL iom_put( "Oflx" , zw2d ) 
    198196         ENDIF 
     
    205203           CALL iom_put( "Dpco2" ,  zw2d ) 
    206204         ENDIF 
    207          IF( iom_use( "pCO2sea" ) ) THEN 
    208            zw2d(:,:) = ( zh2co3(:,:) / ( chemc(:,:,1) + rtrn ) ) * tmask(:,:,1) 
    209            CALL iom_put( "pCO2sea" ,  zw2d ) 
    210          ENDIF 
    211  
    212205         IF( iom_use( "Dpo2" ) )  THEN 
    213206           zw2d(:,:) = ( atcox * patm(:,:) - atcox * trb(:,:,1,jpoxy) / ( chemo2(:,:,1) + rtrn ) ) * tmask(:,:,1) 
    214207           CALL iom_put( "Dpo2"  , zw2d ) 
    215208         ENDIF 
    216          CALL iom_put( "tcflx"    , t_oce_co2_flx     )   ! molC/s 
    217          CALL iom_put( "tcflxcum" , t_oce_co2_flx_cum )   ! molC 
     209         CALL iom_put( "tcflx"    , t_oce_co2_flx * rfact2r )   ! molC/s 
     210         CALL iom_put( "tcflxcum" , t_oce_co2_flx_cum       )   ! molC 
    218211         ! 
    219212         DEALLOCATE( zw2d ) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zsms.F90

    r11989 r11993  
    3535   INTEGER ::    numco2, numnut, numnit      ! logical unit for co2 budget 
    3636   REAL(wp) ::   alkbudget, no3budget, silbudget, ferbudget, po4budget 
    37    REAL(wp) ::   xfact, xfact1, xfact2, xfact3 
     37   REAL(wp) ::   xfact1, xfact2, xfact3 
    3838 
    3939   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xnegtr     ! Array used to indicate negative tracer values 
     
    6363      REAL(wp) ::  ztra 
    6464      CHARACTER (len=25) :: charout 
    65       REAL(wp), ALLOCATABLE, DIMENSION(:,:    ) :: zw2d 
    66       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:  ) :: zw3d 
    67       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) ::   ztrdt   ! 4D workspace 
    68  
    6965      !!--------------------------------------------------------------------- 
    7066      ! 
     
    8985      rfact = r2dttrc 
    9086      ! 
    91       ! trends computation initialisation 
    92       IF( l_trdtrc )  THEN 
    93          ALLOCATE( ztrdt(jpi,jpj,jpk,jp_pisces) )  !* store now fields before applying the Asselin filter 
    94          ztrdt(:,:,:,:)  = trn(:,:,:,:) 
    95       ENDIF 
    96       ! 
    97  
    9887      IF( ( ln_top_euler .AND. kt == nittrc000 )  .OR. ( .NOT.ln_top_euler .AND. kt <= nittrc000 + nn_dttrc ) ) THEN 
    9988         rfactr  = 1. / rfact 
     
    10190         rfact2r = 1. / rfact2 
    10291         xstep = rfact2 / rday         ! Time step duration for biology 
    103          xfact = 1.e+3 * rfact2r 
    10492         IF(lwp) WRITE(numout,*)  
    10593         IF(lwp) WRITE(numout,*) '    Passive Tracer  time step    rfact  = ', rfact, ' rdt = ', rdt 
     
    146134         END DO 
    147135        ! 
    148         IF(  iom_use( 'INTdtAlk' ) .OR. iom_use( 'INTdtDIC' ) .OR. iom_use( 'INTdtFer' ) .OR.  & 
    149           &  iom_use( 'INTdtDIN' ) .OR. iom_use( 'INTdtDIP' ) .OR. iom_use( 'INTdtSil' ) )  THEN 
    150           ! 
    151           ALLOCATE( zw3d(jpi,jpj,jpk), zw2d(jpi,jpj) ) 
    152           zw3d(:,:,jpk) = 0. 
    153           DO jk = 1, jpkm1 
    154               zw3d(:,:,jk) = xnegtr(:,:,jk) * xfact * e3t_n(:,:,jk) * tmask(:,:,jk) 
    155           ENDDO 
    156           ! 
    157           zw2d(:,:) = 0. 
    158           DO jk = 1, jpkm1 
    159              zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * tra(:,:,jk,jptal) 
    160           ENDDO 
    161           CALL iom_put( 'INTdtAlk', zw2d ) 
    162           ! 
    163           zw2d(:,:) = 0. 
    164           DO jk = 1, jpkm1 
    165              zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * tra(:,:,jk,jpdic) 
    166           ENDDO 
    167           CALL iom_put( 'INTdtDIC', zw2d ) 
    168           ! 
    169           zw2d(:,:) = 0. 
    170           DO jk = 1, jpkm1 
    171              zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * rno3 * ( tra(:,:,jk,jpno3) + tra(:,:,jk,jpnh4) ) 
    172           ENDDO 
    173           CALL iom_put( 'INTdtDIN', zw2d ) 
    174           ! 
    175           zw2d(:,:) = 0. 
    176           DO jk = 1, jpkm1 
    177              zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * po4r * tra(:,:,jk,jppo4) 
    178           ENDDO 
    179           CALL iom_put( 'INTdtDIP', zw2d ) 
    180           ! 
    181           zw2d(:,:) = 0. 
    182           DO jk = 1, jpkm1 
    183              zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * tra(:,:,jk,jpfer) 
    184           ENDDO 
    185           CALL iom_put( 'INTdtFer', zw2d ) 
    186           ! 
    187           zw2d(:,:) = 0. 
    188           DO jk = 1, jpkm1 
    189              zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * tra(:,:,jk,jpsil) 
    190           ENDDO 
    191           CALL iom_put( 'INTdtSil', zw2d ) 
    192           ! 
    193           DEALLOCATE( zw3d, zw2d ) 
    194         ENDIF 
    195         ! 
    196136         DO jn = jp_pcs0, jp_pcs1 
    197137            tra(:,:,:,jn) = 0._wp 
     
    204144         ENDIF 
    205145      END DO 
     146 
    206147      ! 
    207148      IF( l_trdtrc ) THEN 
    208149         DO jn = jp_pcs0, jp_pcs1 
    209            ztrdt(:,:,:,jn) = ( trb(:,:,:,jn) - ztrdt(:,:,:,jn) ) * rfact2r  
    210            CALL trd_trc( ztrdt(:,:,:,jn), jn, jptra_sms, kt )   ! save trends 
     150           CALL trd_trc( tra(:,:,:,jn), jn, jptra_sms, kt )   ! save trends 
    211151         END DO 
    212          DEALLOCATE( ztrdt )  
    213152      END IF 
    214153#endif 
Note: See TracChangeset for help on using the changeset viewer.