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 6455 for branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z – NEMO

Ignore:
Timestamp:
2016-04-08T10:57:55+02:00 (8 years ago)
Author:
aumont
Message:

upgrade to last revision of 3_6_stable

Location:
branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zche.F90

    r6453 r6455  
    121121   REAL(wp) :: devk510  = 0.0 
    122122   ! 
    123  
    124  
    125123   ! General parameters 
    126124   REAL(wp), PARAMETER :: pp_rdel_ah_target = 1.E-4_wp 
     
    133131   ! - SOLVE_AT_GENERAL 
    134132   INTEGER :: niter_atgen    = jp_maxniter_atgen 
    135  
    136  
    137133 
    138134   !!* Substitution 
     
    182178            zcek1 = 9345.17/ztkel - 60.2409 + 23.3585 * LOG(zt) + zsal*(0.023517 - 0.00023656*ztkel    & 
    183179            &       + 0.0047036e-4*ztkel**2) 
    184             !                             ! SET SOLUBILITIES OF O2 AND CO2  
    185180            chemc(ji,jj,1) = EXP( zcek1 ) * 1E-6 ! mol/(kg atm) 
    186181            chemc(ji,jj,2) = -1636.75 + 12.0408*ztkel - 0.0327957*ztkel**2 + 0.0000316528*ztkel**3 
     
    261256               &         + LOG(1.0 - 0.001005 * zsal)) 
    262257 
    263  
    264258               ! DISSOCIATION CONSTANT FOR FLUORIDES on free H scale (Dickson and Riley 79) 
    265259               zckf    = EXP( 1590.2*ztr - 12.641 + 1.525*zisqrt   & 
     
    267261               &         + LOG(1.0d0 + zst/zcks)) 
    268262 
    269  
    270                ! DISSOCIATION CONSTANT FOR BORATE 
     263               ! DISSOCIATION CONSTANT FOR CARBONATE AND BORATE 
    271264               zckb=  (-8966.90 - 2890.53*zsqrt - 77.942*zsal        & 
    272265               &      + 1.728*zsal15 - 0.0996*zsal*zsal)*ztr         & 
    273266               &      + (148.0248 + 137.1942*zsqrt + 1.62142*zsal)   & 
    274                &      + (-24.4344 - 25.085*zsqrt - 0.2474*zsal)      & 
     267               &      + (-24.4344 - 25.085*zsqrt - 0.2474*zsal)      &  
    275268               &      * zlogt + 0.053105*zsqrt*ztkel 
    276269 
     
    281274               zck2    = -1.0*(471.78*ztr + 25.9290 - 3.16967*zlogt      & 
    282275                  - 0.01781*zsal + 0.0001122*zsal*zsal) 
    283  
    284276 
    285277               ! PKW (H2O) (MILLERO, 1995) from composite data 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zflx.F90

    r6453 r6455  
    178178            zfco2 = satmco2(ji,jj) * ( patm(ji,jj) - zvapsw ) * zfugcoeff 
    179179            ! Compute CO2 flux for the sea and air 
    180             zfld = zfco2 * tmask(ji,jj,1) * chemc(ji,jj,1) * zkgco2(ji,jj)   ! (mol/L) * (m/s) 
     180            zfld = satmco2(ji,jj) * patm(ji,jj) * tmask(ji,jj,1) * chemc(ji,jj,1) * zkgco2(ji,jj)   ! (mol/L) * (m/s) 
    181181            zflu = zh2co3(ji,jj) * tmask(ji,jj,1) * zkgco2(ji,jj)                                   ! (mol/L) (m/s) ? 
    182182            oce_co2(ji,jj) = ( zfld - zflu ) * rfact2 * e1e2t(ji,jj) * tmask(ji,jj,1) * 1000. 
     
    216216         ENDIF 
    217217         IF( iom_use( "Dpco2" ) ) THEN 
    218            zw2d(:,:) = oce_co2(:,:) / e1e2t(:,:) / 1000. * rfact2r * tmask(:,:,1) / ( zkgco2(:,:) * chemc(:,:,1) + rtrn ) 
     218           zw2d(:,:) = ( satmco2(:,:) * patm(:,:) - zh2co3(:,:) / ( chemc(:,:,1) + rtrn ) ) * tmask(:,:,1) 
    219219           CALL iom_put( "Dpco2" ,  zw2d ) 
    220220         ENDIF 
     
    233233            trc2d(:,:,jp_pcs0_2d + 2) = zkgco2(:,:) * tmask(:,:,1) 
    234234            trc2d(:,:,jp_pcs0_2d + 3) = ( satmco2(:,:) * patm(:,:) - zh2co3(:,:) / ( chemc(:,:,1) + rtrn ) ) * tmask(:,:,1) 
    235          ENDIF 
    236       ENDIF 
    237  
    238       IF( ln_diatrc ) THEN 
    239          IF( lk_iomput .AND. knt == nrdttrc ) THEN 
    240             CALL iom_put( "Cflx" , oce_co2(:,:) / e1e2t(:,:) / rfact )  
    241             CALL iom_put( "Oflx" , zoflx(:,:) * 1000 * tmask(:,:,1)  ) 
    242             CALL iom_put( "Kg"   , zkgco2(:,:) * tmask(:,:,1) ) 
    243             CALL iom_put( "Dpco2", ( satmco2(:,:) * patm(:,:) - zh2co3(:,:) / ( chemc(:,:,1) + rtrn ) ) * tmask(:,:,1) ) 
    244             CALL iom_put( "Dpo2" , ( atcox * patm(:,:) - trb(:,:,1,jpoxy) * atcox / ( chemo2(:,:,1) + rtrn ) ) * tmask(:,:,1) ) 
    245          ELSE 
    246             trc2d(:,:,jp_pcs0_2d    ) = oce_co2(:,:) / e1e2t(:,:) / rfact  
    247             trc2d(:,:,jp_pcs0_2d + 1) = zoflx(:,:) * 1000 * tmask(:,:,1)  
    248             trc2d(:,:,jp_pcs0_2d + 2) = zkgco2(:,:) * tmask(:,:,1)  
    249             trc2d(:,:,jp_pcs0_2d + 3) = ( satmco2(:,:) * patm(:,:) - zh2co3(:,:) / ( chemc(:,:,1) + rtrn ) ) * tmask(:,:,1)  
    250235         ENDIF 
    251236      ENDIF 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90

    r6453 r6455  
    7272      CHARACTER (len=25) :: charout 
    7373      REAL(wp), POINTER, DIMENSION(:,:  ) :: zpdep, zsidep, zwork1, zwork2, zwork3 
     74      REAL(wp), POINTER, DIMENSION(:,:)   :: zsedcal, zsedsi, zsedc 
    7475      REAL(wp), POINTER, DIMENSION(:,:  ) :: zdenit2d, zironice, zbureff 
    7576      REAL(wp), POINTER, DIMENSION(:,:  ) :: zwsbio3, zwsbio4, zwscal 
     
    8788      ! Allocate temporary workspace 
    8889      CALL wrk_alloc( jpi, jpj, zdenit2d, zwork1, zwork2, zwork3, zbureff ) 
     90      CALL wrk_alloc( jpi, jpj, zsedcal,  zsedsi, zsedc ) 
    8991      CALL wrk_alloc( jpi, jpj, zwsbio3, zwsbio4, zwscal ) 
    9092      CALL wrk_alloc( jpi, jpj, jpk, zsoufer ) 
     
    98100      zwork2  (:,:) = 0.e0 
    99101      zwork3  (:,:) = 0.e0 
     102      zsedsi   (:,:) = 0.e0 
     103      zsedcal  (:,:) = 0.e0 
     104      zsedc    (:,:) = 0.e0 
    100105 
    101106      ! Iron input/uptake due to sea ice : Crude parameterization based on Lancelot et al. 
     
    315320            tra(ji,jj,ikt,jptal) =  tra(ji,jj,ikt,jptal) + zcaloss * zrivalk * 2.0 
    316321            tra(ji,jj,ikt,jpdic) =  tra(ji,jj,ikt,jpdic) + zcaloss * zrivalk 
     322            zsedcal(ji,jj) = (1.0 - zrivalk) * zcaloss / zdep 
     323            zsedsi (ji,jj) = (1.0 - zrivsil) * zsiloss / zdep 
    317324#endif 
    318325         END DO 
     
    362369            tra(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + rno3 * (zolimit + (1.+rdenit) * (zpdenit + zdenitt) ) 
    363370            tra(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zpdenit + zolimit + zdenitt 
    364             sdenit(ji,jj) = rdenit * zpdenit * fse3t(ji,jj,ikt) 
     371            sdenit(ji,jj) = rdenit * zpdenit / zdep 
     372            zsedc(ji,jj)   = (1. - zrivno3) * zwstpoc / zdep 
    365373#endif 
    366374         END DO 
     
    418426               CALL iom_put( "INTNFIX" , zwork1 )  
    419427            ENDIF 
     428            IF( iom_use("SedCal" ) ) CALL iom_put( "SedCal", zsedcal(:,:) * 1.e+3 ) 
     429            IF( iom_use("SedSi" ) )  CALL iom_put( "SedSi",  zsedsi (:,:) * 1.e+3 ) 
     430            IF( iom_use("SedC" ) )   CALL iom_put( "SedC",   zsedc  (:,:) * 1.e+3 ) 
     431            IF( iom_use("Sdenit" ) ) CALL iom_put( "Sdenit", sdenit (:,:) * 1.e+3 * rno3 ) 
    420432         ENDIF 
    421433      ELSE 
     
    431443      ! 
    432444      CALL wrk_dealloc( jpi, jpj, zdenit2d, zwork1, zwork2, zwork3, zbureff ) 
     445      CALL wrk_dealloc( jpi, jpj, zsedcal , zsedsi, zsedc ) 
    433446      CALL wrk_dealloc( jpi, jpj, zwsbio3, zwsbio4, zwscal ) 
    434447      CALL wrk_dealloc( jpi, jpj, jpk, zsoufer ) 
Note: See TracChangeset for help on using the changeset viewer.