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 1255 for trunk/NEMO/TOP_SRC/CFC/trcsms_cfc.F90 – NEMO

Ignore:
Timestamp:
2009-01-13T11:20:17+01:00 (15 years ago)
Author:
cetlod
Message:

minor modifications in all top models, see ticket:299

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/TOP_SRC/CFC/trcsms_cfc.F90

    r1146 r1255  
    1919   USE par_trc      ! TOP parameters 
    2020   USE trc          ! TOP variables 
     21   USE trdmld_trc_oce 
     22   USE trdmld_trc 
    2123 
    2224   IMPLICIT NONE 
     
    3133   INTEGER , PUBLIC    ::   nyear_beg      ! initial year (aa)  
    3234    
    33    REAL(wp), PUBLIC, DIMENSION(jpyear,jphem, jp_cfc0:jp_cfc1) ::   p_cfc   ! partial hemispheric pressure for CFC           
    34    REAL(wp), PUBLIC, DIMENSION(jpi,jpj)                       ::   xphem    ! spatial interpolation factor for patm 
    35    REAL(wp), PUBLIC, DIMENSION(jpi,jpj      ,jp_cfc0:jp_cfc1) ::   qtr      ! input function 
    36    REAL(wp), PUBLIC, DIMENSION(jpi,jpj      ,jp_cfc0:jp_cfc1) ::   qint     ! flux function 
    37  
    38    REAL(wp), DIMENSION(jp_cfc0:jp_cfc1) ::   soa1, soa2, soa3, soa4   ! coefficient for solubility of CFC [mol/l/atm] 
    39    REAL(wp), DIMENSION(jp_cfc0:jp_cfc1) ::   sob1, sob2, sob3         !    "               " 
    40    REAL(wp), DIMENSION(jp_cfc0:jp_cfc1) ::   sca1, sca2, sca3, sca4   ! coefficients for schmidt number in degre Celcius 
     35   REAL(wp), PUBLIC, DIMENSION(jpyear,jphem, jp_cfc) ::   p_cfc    ! partial hemispheric pressure for CFC           
     36   REAL(wp), PUBLIC, DIMENSION(jpi,jpj)              ::   xphem    ! spatial interpolation factor for patm 
     37   REAL(wp), PUBLIC, DIMENSION(jpi,jpj     ,jp_cfc) ::   qtr_cfc  ! flux at surface 
     38   REAL(wp), PUBLIC, DIMENSION(jpi,jpj     ,jp_cfc) ::   qint_cfc ! cumulative flux  
     39 
     40   REAL(wp), DIMENSION(4,jp_cfc) ::   soa   ! coefficient for solubility of CFC [mol/l/atm] 
     41   REAL(wp), DIMENSION(3,jp_cfc) ::   sob   !    "               " 
     42   REAL(wp), DIMENSION(4,jp_cfc) ::   sca   ! coefficients for schmidt number in degre Celcius 
    4143       
    4244   !                          ! coefficients for conversion 
     
    7476      INTEGER, INTENT( in ) ::   kt    ! ocean time-step index 
    7577      !! 
    76       INTEGER ::   ji, jj, jn, jm 
     78      INTEGER ::   ji, jj, jn, jl, jm, js 
    7779      INTEGER ::   iyear_beg, iyear_end 
    7880      INTEGER ::   im1, im2 
     
    8789 
    8890      REAL(wp), DIMENSION(jphem,jp_cfc)   ::   zpatm       ! atmospheric function 
     91      REAL(wp), DIMENSION(jpi,jpj,jpk)    ::   ztrcfc      ! use for CFC sms trend 
    8992      !!---------------------------------------------------------------------- 
    9093 
     
    105108      iyear_end = iyear_beg + 1 
    106109 
    107       !                                                         !------------! 
    108       DO jn = jp_cfc0, jp_cfc1                                  !  CFC loop  ! 
    109          !                                                      !------------! 
     110      !                                                  !------------! 
     111      DO jl = 1, jp_cfc                                  !  CFC loop  ! 
     112         !                                               !------------! 
     113         jn = jp_cfc0 + jl - 1 
    110114         ! time interpolation at time kt 
    111115         DO jm = 1, jphem 
    112             zpatm(jm,jn) = (  p_cfc(iyear_beg, jm, jn) * FLOAT (im1)  & 
    113                &           +  p_cfc(iyear_end, jm, jn) * FLOAT (im2) ) / 12. 
     116            zpatm(jm,jl) = (  p_cfc(iyear_beg, jm, jl) * FLOAT (im1)  & 
     117               &           +  p_cfc(iyear_end, jm, jl) * FLOAT (im2) ) / 12. 
    114118         END DO 
    115119          
     
    119123  
    120124               ! space interpolation 
    121                zpp_cfc  =       xphem(ji,jj)   * zpatm(1,jn)   & 
    122                   &     + ( 1.- xphem(ji,jj) ) * zpatm(2,jn) 
     125               zpp_cfc  =       xphem(ji,jj)   * zpatm(1,jl)   & 
     126                  &     + ( 1.- xphem(ji,jj) ) * zpatm(2,jl) 
    123127 
    124128               ! Computation of concentration at equilibrium : in picomol/l 
     
    126130               IF( tmask(ji,jj,1) .GE. 0.5 ) THEN 
    127131                  ztap  = ( tn(ji,jj,1) + 273.16 ) * 0.01 
    128                   zdtap = ( sob3(jn) * ztap + sob2(jn) ) * ztap + sob1(jn)  
    129                   zsol  =  EXP( soa1(jn) + soa2(jn) / ztap + soa3(jn) * LOG( ztap )   & 
    130                      &                   + soa4(jn) * ztap * ztap + sn(ji,jj,1) * zdtap )  
     132                  zdtap = sob(1,jl) + ztap * ( sob(2,jl) + ztap * sob(3,jl) )  
     133                  zsol  =  EXP( soa(1,jl) + soa(2,jl) / ztap + soa(3,jl) * LOG( ztap )   & 
     134                     &                    + soa(4,jl) * ztap * ztap + sn(ji,jj,1) * zdtap )  
    131135               ELSE 
    132136                  zsol  = 0.e0 
     
    142146               zt2  = zt1 * zt1  
    143147               zt3  = zt1 * zt2 
    144                zsch = sca1(jn) + sca2(jn) * zt1 + sca3(jn) * zt2 + sca4(jn) * zt3 
     148               zsch = sca(1,jl) + sca(2,jl) * zt1 + sca(3,jl) * zt2 + sca(4,jl) * zt3 
    145149 
    146150               !    speed transfert : formulae of wanninkhof 1992 
     
    151155               ! Input function  : speed *( conc. at equil - concen at surface ) 
    152156               ! trn in pico-mol/l idem qtr; ak in en m/s 
    153                qtr(ji,jj,jn) = -zak_cfc * ( trb(ji,jj,1,jn) - zca_cfc )   & 
     157               qtr_cfc(ji,jj,jl) = -zak_cfc * ( trb(ji,jj,1,jn) - zca_cfc )   & 
    154158#if defined key_off_degrad 
    155                   &                     * facvol(ji,jj,1)                           & 
     159                  &                         * facvol(ji,jj,1)                           & 
    156160#endif 
    157                   &                     * tmask(ji,jj,1) * ( 1. - fr_i(ji,jj) ) 
     161                  &                         * tmask(ji,jj,1) * ( 1. - fr_i(ji,jj) ) 
    158162 
    159163               ! Add the surface flux to the trend 
    160                tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + qtr(ji,jj,jn) / fse3t(ji,jj,1)  
     164               tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + qtr_cfc(ji,jj,jl) / fse3t(ji,jj,1)  
    161165 
    162166               ! cumulation of surface flux at each time step 
    163                qint(ji,jj,jn) = qint (ji,jj,jn) + qtr(ji,jj,jn) * rdt 
     167               qint_cfc(ji,jj,jl) = qint_cfc(ji,jj,jl) + qtr_cfc(ji,jj,jl) * rdt 
     168 
     169# if defined key_trc_diaadd 
     170               ! Save diagnostics , just for CFC11 
     171               js = 1  
     172               trc2d(ji,jj,jp_cfc0_2d    ) = qtr_cfc (ji,jj,js) 
     173               trc2d(ji,jj,jp_cfc0_2d + 1) = qint_cfc(ji,jj,js) 
     174# endif               
    164175               !                                               !----------------! 
    165176            END DO                                             !  end i-j loop  ! 
     
    168179      END DO                                                !  end CFC loop  ! 
    169180      !                                                     !----------------! 
     181 
     182      IF( l_trdtrc ) THEN 
     183          DO jn = jp_cfc0, jp_cfc1 
     184            ztrcfc(:,:,:) = tra(:,:,:,jn) 
     185            CALL trd_mod_trc( ztrcfc, jn, jptrc_trd_sms, kt )   ! save trends 
     186          END DO 
     187      END IF 
     188 
    170189   END SUBROUTINE trc_sms_cfc 
    171190 
     
    177196      !!--------------------------------------------------------------------- 
    178197 
    179       ! coefficient for solubility of CFC11/CFC12 in mol/l/atm 
    180  
    181         soa1(jp11) = -229.9261  
    182         soa2(jp11) =  319.6552 
    183         soa3(jp11) =  119.4471 
    184         soa4(jp11) =  -1.39165 
    185         sob1(jp11) =  -0.142382 
    186         sob2(jp11) =   0.091459 
    187         sob3(jp11) =  -0.0157274 
    188  
    189         soa1(jp12) = -218.0971 
    190         soa2(jp12) =  298.9702 
    191         soa3(jp12) =  113.8049 
    192         soa4(jp12) =  -1.39165 
    193         sob1(jp12) =  -0.143566 
    194         sob2(jp12) =   0.091015 
    195         sob3(jp12) =  -0.0153924 
    196  
    197           
    198       ! coefficients for schmidt number in degre Celcius 
    199         sca1(jp11) = 3501.8 
    200         sca2(jp11) = -210.31 
    201         sca3(jp11) =  6.1851 
    202         sca4(jp11) = -0.07513 
    203  
    204         sca1(jp12) =  3845.4  
    205         sca2(jp12) =  -228.95 
    206         sca3(jp12) =  6.1908  
    207         sca4(jp12) =  -0.067430 
     198 
     199        ! coefficient for CFC11  
     200        !---------------------- 
     201 
     202        ! Solubility 
     203        soa(1,1) = -229.9261  
     204        soa(2,1) =  319.6552 
     205        soa(3,1) =  119.4471 
     206        soa(4,1) =  -1.39165 
     207 
     208        sob(1,1) =  -0.142382 
     209        sob(2,1) =   0.091459 
     210        sob(3,1) =  -0.0157274 
     211 
     212        ! Schmidt number  
     213        sca(1,1) = 3501.8 
     214        sca(2,1) = -210.31 
     215        sca(3,1) =  6.1851 
     216        sca(4,1) = -0.07513 
     217 
     218        ! coefficient for CFC12  
     219        !---------------------- 
     220 
     221        ! Solubility 
     222        soa(1,2) = -218.0971 
     223        soa(2,2) =  298.9702 
     224        soa(3,2) =  113.8049 
     225        soa(4,2) =  -1.39165 
     226 
     227        sob(1,2) =  -0.143566 
     228        sob(2,2) =   0.091015 
     229        sob(3,2) =  -0.0153924 
     230 
     231        ! schmidt number  
     232        sca(1,2) =  3845.4  
     233        sca(2,2) =  -228.95 
     234        sca(3,2) =  6.1908  
     235        sca(4,2) =  -0.067430 
    208236 
    209237   END SUBROUTINE trc_cfc_cst 
Note: See TracChangeset for help on using the changeset viewer.