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 4258 for branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC – NEMO

Ignore:
Timestamp:
2013-11-19T16:54:37+01:00 (11 years ago)
Author:
acc
Message:

Branch 2013/dev_r3858_NOC_ZTC, #863. Merge in trunk changes from 3858 to 4119; resolve conflicts and check in prior to compiling and testing

Location:
branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90

    r3780 r4258  
    129129                  zoxy   = trn(ji,jj,jk,jpoxy) * ( rhop(ji,jj,jk) / 1.e3 ) 
    130130                  ! Fe2+ oxydation rate from Santana-Casiano et al. (2005) 
    131                   zkox   = 35.407 - 6.7109 * zph + 0.5342 * zph * zph - 5362.6 / ( tsn(ji,jj,1,jp_tem) + 273.15 )  & 
     131                  zkox   = 35.407 - 6.7109 * zph + 0.5342 * zph * zph - 5362.6 / ( tsn(ji,jj,jk,jp_tem) + 273.15 )  & 
    132132                    &    - 0.04406 * SQRT( tsn(ji,jj,jk,jp_sal) ) - 0.002847 * tsn(ji,jj,jk,jp_sal) 
    133133                  zkox   = ( 10.** zkox ) * spd 
     
    263263               zdep    = MIN( 1., 1000. / fsdept(ji,jj,jk) ) 
    264264               zlam1b  = xlam1 * MAX( 0.e0, ( trn(ji,jj,jk,jpfer) * 1.e9 - ztotlig(ji,jj,jk) ) ) 
    265                zcoag   = zfeequi * zlam1b * zstep + 1E-4 * ( 1. - zlamfac ) * zdep * zstep *zfecoll 
     265               zcoag   = zfeequi * zlam1b * zstep + 1E-4 * ( 1. - zlamfac ) * zdep * zstep * trn(ji,jj,jk,jpfer) 
    266266 
    267267               !  Compute the coagulation of colloidal iron. This parameterization  
     
    278278               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zscave * zdenom1 + zaggdfea + zaggdfeb 
    279279#else 
    280                zlam1b = 3.53E3 *   trn(ji,jj,jk,jpgoc) * xdiss(ji,jj,jk) + 1E-4 * ( 1. - zlamfac ) * zdep  
     280               zlam1b = 3.53E3 *   trn(ji,jj,jk,jpgoc) * xdiss(ji,jj,jk) 
    281281               zaggdfeb = zlam1b * zstep * zfecoll 
    282282               ! 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zflx.F90

    r3481 r4258  
    109109         ! then the first atmospheric CO2 record read is at years(1) 
    110110         zyr_dec = REAL( nyear + nn_offset, wp ) + REAL( nday_year, wp ) / REAL( nyear_len(1), wp ) 
    111          jm = 2 
    112          DO WHILE( jm <= nmaxrec .AND. years(jm-1) < zyr_dec .AND. years(jm) >= zyr_dec ) ;  jm = jm + 1 ;  END DO 
     111         jm = 1 
     112         DO WHILE( jm <= nmaxrec .AND. years(jm) < zyr_dec ) ;  jm = jm + 1 ;  END DO 
    113113         iind = jm  ;   iindm1 = jm - 1 
    114114         zdco2dt = ( atcco2h(iind) - atcco2h(iindm1) ) / ( years(iind) - years(iindm1) + rtrn ) 
     
    196196      END DO 
    197197 
    198       t_oce_co2_flx = t_oce_co2_flx + glob_sum( oce_co2(:,:) )            ! Cumulative Total Flux of Carbon 
    199       t_atm_co2_flx = glob_sum( satmco2(:,:) * patm(:,:) * e1e2t(:,:) )   ! Total atmospheric pCO2 
     198      t_oce_co2_flx = t_oce_co2_flx + glob_sum( oce_co2(:,:) )      ! Cumulative Total Flux of Carbon 
     199      t_atm_co2_flx = glob_sum( satmco2(:,:) * e1e2t(:,:) )         ! Total atmospheric pCO2 
    200200 
    201201      IF(ln_ctl)   THEN  ! print mean trends (used for debugging) 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90

    r3856 r4258  
    140140               !  ---------------------------------- 
    141141# if ! defined key_kriest 
    142                zgrazffeg = grazflux  * zstep * wsbio4(ji,jj,jk)      & 
    143 !                 &                   * tgfunc2(ji,jj,jk) * trn(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpmes) 
    144                &                     * 2. *  trn(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpmes) 
     142               zgrazffeg = grazflux  * zstep * wsbio4(ji,jj,jk) * trn(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpmes) 
    145143               zgrazfffg = zgrazffeg * trn(ji,jj,jk,jpbfe) / (trn(ji,jj,jk,jpgoc) + rtrn) 
    146144# endif 
    147                zgrazffep = grazflux  * zstep *  wsbio3(ji,jj,jk)     & 
    148 !                 &                   * tgfunc2(ji,jj,jk) * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jpmes) 
    149                &                     * 2. * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jpmes) 
     145               zgrazffep = grazflux  * zstep *  wsbio3(ji,jj,jk) * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jpmes) 
    150146               zgrazfffp = zgrazffep * trn(ji,jj,jk,jpsfe) / (trn(ji,jj,jk,jppoc) + rtrn) 
    151147              ! 
     
    154150              ! Compute the proportion of filter feeders 
    155151              zproport  = (zgrazffep + zgrazffeg)/(rtrn + zgraztot) 
     152              ! Compute fractionation of aggregates. It is assumed that diatoms based aggregates are more prone to fractionation 
     153              ! since they are more porous (marine snow instead of fecal pellets) 
    156154              zratio    = trn(ji,jj,jk,jpgsi) / ( trn(ji,jj,jk,jpgoc) + rtrn ) 
    157155              zratio2   = zratio * zratio 
    158 !              zfrac =  zproport * 0.15 * zstep *                     & 
    159 !                       ( 0.2 + 0.8 * zratio2 / ( 1.5**2 + zratio2 ) )   & 
    160 !                      *trn(ji,jj,jk,jpmes)/3E-7 *trn(ji,jj,jk,jpgoc) 
    161               zfrac     = zproport * grazflux  * zstep * wsbio4(ji,jj,jk)      & 
    162                  &       * ( 0.1 + 3.9 * zratio2 / ( 1.**2 + zratio2 ) )       & 
    163                  &       * 2. * trn(ji,jj,jk,jpmes) * trn(ji,jj,jk,jpgoc)  
     156              zfrac     = zproport * zgrazffeg * ( 0.1 + 3.9 * zratio2 / ( 1.**2 + zratio2 ) ) 
    164157 
    165158              zfracfe   = zfrac * trn(ji,jj,jk,jpbfe) / (trn(ji,jj,jk,jpgoc) + rtrn) 
     
    193186               zepshert  = epsher2 * MIN( 1., zncratio ) 
    194187               zepsherv  = zepshert * MIN( 1., zgrasrat / ferat3 ) 
    195                zgrarem2  = zgraztot * ( 1. - zepsherv - unass2 ) + zrespz2  & 
    196                &    + ( 1. - zepsherv - unass2 ) /( 1. - zepsherv + rtrn) * ztortz2 
    197                zgrafer2  = zgraztot * MAX( 0. , ( 1. - unass2 ) * zgrasrat - ferat3 * zepsherv )    & 
    198                &    + ferat3 * ( zrespz2 + ( 1. - zepsherv - unass2 ) /( 1. - zepsherv + rtrn) * ztortz2 ) 
     188               zgrarem2  =  zgraztot * ( 1. - zepsherv - unass2 ) + zrespz2  & 
     189                  &       + ( 1. - zepsherv - unass2 ) /( 1. - zepsherv ) * ztortz2 
     190               zgrafer2  =  zgraztot * MAX( 0. , ( 1. - unass2 ) * zgrasrat - ferat3 * zepsherv )    & 
     191                  &       + ferat3 * ( zrespz2 + ( 1. - zepsherv - unass2 ) /( 1. - zepsherv ) * ztortz2 ) 
    199192               zgrapoc2  = zgraztot * unass2 
    200193 
     
    208201               tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + zgrarsig 
    209202               tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + rno3 * zgrarsig               
    210 #if defined key_kriest 
    211                tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zgrapoc2 
    212                tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) + zgrapoc2 * xkr_dmeso 
    213                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zgraztotf * unass2 
    214 #else 
    215                tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zgrapoc2 - zfrac  
    216                tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zfrac 
    217                tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zgraztotf * unass2 - zfracfe 
    218                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zfracfe 
    219  
    220 #endif 
     203 
    221204               zmortz2 = ztortz2 + zrespz2 
    222                zmortzgoc = unass2 / ( 1. - zepsherv + rtrn ) * ztortz2 
     205               zmortzgoc = unass2 / ( 1. - zepsherv ) * ztortz2 
    223206               tra(ji,jj,jk,jpmes) = tra(ji,jj,jk,jpmes) - zmortz2 + zepsherv * zgraztot  
    224207               tra(ji,jj,jk,jpdia) = tra(ji,jj,jk,jpdia) - zgrazd 
     
    242225#if defined key_kriest 
    243226               znumpoc = trn(ji,jj,jk,jpnum) / ( trn(ji,jj,jk,jppoc) + rtrn ) 
    244                tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortzgoc - zgrazpoc - zgrazffep 
    245                tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) - zgrazpoc * znumpoc & 
    246                &   + zmortzgoc * xkr_dmeso - zgrazffep * znumpoc * wsbio4(ji,jj,jk) / ( wsbio3(ji,jj,jk) + rtrn ) 
    247                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + ferat3 * zmortz2 - zgrazfffp - zgrazpof 
     227               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortzgoc - zgrazpoc - zgrazffep + zgrapoc2 
     228               tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) - zgrazpoc * znumpoc + zgrapoc2 * xkr_dmeso      & 
     229               &                   + zmortzgoc * xkr_dmeso - zgrazffep * znumpoc * wsbio4(ji,jj,jk) / ( wsbio3(ji,jj,jk) + rtrn ) 
     230               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + ferat3 * zmortz2 - zgrazfffp - zgrazpof + zgraztotf * unass2 
    248231#else 
    249                tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - zgrazpoc - zgrazffep 
    250                tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zmortzgoc - zgrazffeg 
    251                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) - zgrazpof - zgrazfffp 
    252                tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + ferat3 * zmortzgoc - zgrazfffg 
     232               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - zgrazpoc - zgrazffep + zfrac 
     233               tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zmortzgoc - zgrazffeg + zgrapoc2 - zfrac 
     234               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) - zgrazpof - zgrazfffp + zfracfe 
     235               tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + ferat3 * zmortzgoc - zgrazfffg + zgraztotf * unass2 - zfracfe 
    253236#endif 
    254  
    255237            END DO 
    256238         END DO 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90

    r3686 r4258  
    201201                      zconctemp2  = trn(ji,jj,jk,jpdia) - zconctemp 
    202202                      ! 
    203                       zpislopead (ji,jj,jk) = pislope  * ( 1.+ zadap  * EXP( enano(ji,jj,jk) ) ) 
     203                      zpislopead (ji,jj,jk) = pislope  * ( 1.+ zadap  * EXP( -0.21 * enano(ji,jj,jk) ) ) 
    204204                      zpislopead2(ji,jj,jk) = (pislope * zconctemp2 + pislope2 * zconctemp)  / ( trn(ji,jj,jk,jpdia) + rtrn ) 
    205205 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90

    r3751 r4258  
    6969      REAL(wp) ::  zwflux, zfminus, zfplus 
    7070      REAL(wp) ::  zlim, zfact, zfactcal 
    71       REAL(wp) ::  zo2, zno3, zflx, zpdenit, z1pdenit 
     71      REAL(wp) ::  zo2, zno3, zflx, zpdenit, z1pdenit, zdenitt, zolimit 
    7272      REAL(wp) ::  zsiloss, zcaloss, zwsbio3, zwsbio4, zwscal, zdep, zwstpoc 
    7373      REAL(wp) ::  ztrfer, ztrpo4, zwdust 
     
    8282      IF( nn_timing == 1 )  CALL timing_start('p4z_sed') 
    8383      ! 
    84       IF( kt == nit000 .AND. jnt == 1 )  THEN 
     84      IF( kt == nittrc000 .AND. jnt == 1 )  THEN 
    8585         ryyss    = nyear_len(1) * rday    ! number of seconds per year and per month 
    8686         rmtss    = ryyss / raamo 
     
    105105            DO ji = 1, jpi 
    106106               zdep    = rfact2 / fse3t(ji,jj,1) 
    107     !           zwflux  = ( emps(ji,jj) - emp(ji,jj) ) & 
    108     !           &        * tsn(ji,jj,1,jp_sal) / ( tsn(ji,jj,1,jp_sal) - 6.0 ) / 1000. 
    109                zwflux = 0. 
    110                zfminus = MIN( 0., -zwflux ) * trn(ji,jj,1,jpfer) * zdep 
    111                zfplus  = MAX( 0., -zwflux ) * 10E-9 * zdep 
     107               zwflux  = fmmflx(ji,jj) / 1000._wp 
     108               zfminus = MIN( 0._wp, -zwflux ) * trn(ji,jj,1,jpfer) * zdep 
     109               zfplus  = MAX( 0._wp, -zwflux ) * icefeinput * zdep 
    112110               zironice(ji,jj) =  zfplus + zfminus 
    113111            END DO 
     
    135133         ENDIF 
    136134         zsidep(:,:) = 8.8 * 0.075 * dust(:,:) * rfact2 / fse3t(:,:,1) / ( 28.1  * rmtss ) 
    137          zpdep (:,:) = 0.1 * 0.021 * dust(:,:) * rfact2 / fse3t(:,:,1) / ( 31.   * rmtss ) 
     135         zpdep (:,:) = 0.1 * 0.021 * dust(:,:) * rfact2 / fse3t(:,:,1) / ( 31.   * rmtss ) / po4r  
    138136         !                                              ! Iron solubilization of particles in the water column 
    139137         zwdust = 0.005 / ( wdust * 55.85 * 30.42 ) / ( 45. * rday )  
     
    246244#endif 
    247245 
    248       ! THEN this loss is scaled at each bottom grid cell for 
    249       ! equilibrating the total budget of silica in the ocean. 
    250       ! Thus, the amount of silica lost in the sediments equal 
    251       ! the supply at the surface (dust+rivers) 
     246      ! This loss is scaled at each bottom grid cell for equilibrating the total budget of silica in the ocean. 
     247      ! Thus, the amount of silica lost in the sediments equal the supply at the surface (dust+rivers) 
    252248      ! ------------------------------------------------------ 
    253249#if ! defined key_sed 
     
    302298 
    303299#if ! defined key_sed 
    304             zpdenit  = MIN( ( trn(ji,jj,ikt,jpno3) - rtrn ) / rdenit, zdenit2d(ji,jj) * zwstpoc * zrivno3 ) 
     300            ! The 0.5 factor in zpdenit and zdenitt is to avoid negative NO3 concentration after both denitrification 
     301            ! in the sediments and just above the sediments. Not very clever, but simpliest option. 
     302            zpdenit  = MIN( 0.5 * ( trn(ji,jj,ikt,jpno3) - rtrn ) / rdenit, zdenit2d(ji,jj) * zwstpoc * zrivno3 ) 
    305303            z1pdenit = zwstpoc * zrivno3 - zpdenit 
    306             trn(ji,jj,ikt,jpdoc) = trn(ji,jj,ikt,jpdoc) + z1pdenit 
    307             trn(ji,jj,ikt,jppo4) = trn(ji,jj,ikt,jppo4) + zpdenit 
    308             trn(ji,jj,ikt,jpnh4) = trn(ji,jj,ikt,jpnh4) + zpdenit 
    309             trn(ji,jj,ikt,jpno3) = trn(ji,jj,ikt,jpno3) - rdenit * zpdenit 
    310             trn(ji,jj,ikt,jptal) = trn(ji,jj,ikt,jptal) + rno3 * ( 1. + rdenit ) * zpdenit 
    311             trn(ji,jj,ikt,jpdic) = trn(ji,jj,ikt,jpdic) + zpdenit 
     304            zolimit = MIN( ( trn(ji,jj,ikt,jpoxy) - rtrn ) / o2ut, z1pdenit * ( 1.- nitrfac(ji,jj,ikt) ) ) 
     305            zdenitt = MIN(  0.5 * ( trn(ji,jj,ikt,jpno3) - rtrn ) / rdenit, z1pdenit * nitrfac(ji,jj,ikt) ) 
     306            trn(ji,jj,ikt,jpdoc) = trn(ji,jj,ikt,jpdoc) + z1pdenit - zolimit - zdenitt 
     307            trn(ji,jj,ikt,jppo4) = trn(ji,jj,ikt,jppo4) + zpdenit + zolimit + zdenitt 
     308            trn(ji,jj,ikt,jpnh4) = trn(ji,jj,ikt,jpnh4) + zpdenit + zolimit + zdenitt 
     309            trn(ji,jj,ikt,jpno3) = trn(ji,jj,ikt,jpno3) - rdenit * (zpdenit + zdenitt) 
     310            trn(ji,jj,ikt,jpoxy) = trn(ji,jj,ikt,jpoxy) - zolimit * o2ut 
     311            trn(ji,jj,ikt,jptal) = trn(ji,jj,ikt,jptal) + rno3 * (zolimit + (1.+rdenit) * (zpdenit + zdenitt) ) 
     312            trn(ji,jj,ikt,jpdic) = trn(ji,jj,ikt,jpdic) + zpdenit + zolimit + zdenitt 
    312313            zwork4(ji,jj) = rdenit * zpdenit * fse3t(ji,jj,ikt) 
    313314#endif 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90

    r3829 r4258  
    156156            DO ji = 1, jpi 
    157157               IF( tmask(ji,jj,jk) == 1 ) THEN 
    158                  zwsmax = 0.8 * fse3t(ji,jj,jk) / xstep 
     158                 zwsmax = 0.5 * fse3t(ji,jj,jk) / xstep 
    159159                 wsbio3(ji,jj,jk) = MIN( wsbio3(ji,jj,jk), zwsmax * FLOAT( iiter1 ) ) 
    160160                 wsbio4(ji,jj,jk) = MIN( wsbio4(ji,jj,jk), zwsmax * FLOAT( iiter2 ) ) 
     
    217217               zaggdoc  = ( ( 0.369 * 0.3 * trn(ji,jj,jk,jpdoc) + 102.4 * trn(ji,jj,jk,jppoc) ) * zfact       & 
    218218               &            + 2.4 * zstep * trn(ji,jj,jk,jppoc) ) * 0.3 * trn(ji,jj,jk,jpdoc) 
    219 !               zaggdoc  = ( 0.83 * trn(ji,jj,jk,jpdoc) + 271. * trn(ji,jj,jk,jppoc) ) * zfact * trn(ji,jj,jk,jpdoc) 
    220219               ! transfer of DOC to GOC :  
    221220               ! 1st term is shear aggregation 
    222221               ! 2nd term is differential settling  
    223222               zaggdoc2 = ( 3.53E3 * zfact + 0.1 * zstep ) * trn(ji,jj,jk,jpgoc) * 0.3 * trn(ji,jj,jk,jpdoc) 
    224 !               zaggdoc2 = 1.07e4 * zfact * trn(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpdoc) 
    225223               ! tranfer of DOC to POC due to brownian motion 
    226 !               zaggdoc3 =   0.02 * ( 16706. * trn(ji,jj,jk,jppoc) + 231. * trn(ji,jj,jk,jpdoc) ) * zstep * trn(ji,jj,jk,jpdoc) 
    227224               zaggdoc3 =  ( 5095. * trn(ji,jj,jk,jppoc) + 114. * 0.3 * trn(ji,jj,jk,jpdoc) ) *zstep * 0.3 * trn(ji,jj,jk,jpdoc) 
    228225 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsms.F90

    r3780 r4258  
    7676      ENDIF 
    7777      ! 
    78       IF( ln_rsttr .AND. kt == nittrc000 )                         CALL p4z_rst( nittrc000, 'READ' )  !* read or initialize all required fields  
    79       IF( ln_rsttr  .AND. ln_pisclo )                              CALL p4z_clo            ! damping on closed seas 
     78      IF( kt == nittrc000 ) THEN 
     79        ! 
     80        CALL p4z_che                              ! initialize the chemical constants 
     81        ! 
     82        IF( .NOT. ln_rsttr ) THEN  ;   CALL p4z_ph_ini   !  set PH at kt=nit000  
     83        ELSE                       ;   CALL p4z_rst( nittrc000, 'READ' )  !* read or initialize all required fields  
     84        ENDIF 
     85        ! 
     86      ENDIF 
     87 
    8088      IF( ln_pisdmp .AND. MOD( kt - nn_dttrc, nn_pisdmp ) == 0 )   CALL p4z_dmp( kt )      ! Relaxation of some tracers 
    8189      ! 
     
    164172      NAMELIST/nampiskrp/ xkr_eta, xkr_zeta, xkr_ncontent, xkr_mass_min, xkr_mass_max 
    165173#endif 
    166       NAMELIST/nampisdmp/ ln_pisdmp, nn_pisdmp, ln_pisclo 
     174      NAMELIST/nampisdmp/ ln_pisdmp, nn_pisdmp 
    167175      NAMELIST/nampismass/ ln_check_mass 
    168176      !!---------------------------------------------------------------------- 
     
    215223      ln_pisdmp = .true. 
    216224      nn_pisdmp = 1 
    217       ln_pisclo = .false. 
    218225 
    219226      REWIND( numnatp ) 
     
    225232         WRITE(numout,*) '    Relaxation of tracer to glodap mean value             ln_pisdmp      =', ln_pisdmp 
    226233         WRITE(numout,*) '    Frequency of Relaxation                               nn_pisdmp      =', nn_pisdmp 
    227          WRITE(numout,*) '    Restoring of tracer to initial value  on closed seas  ln_pisclo      =', ln_pisclo 
    228234         WRITE(numout,*) ' ' 
    229235      ENDIF 
     
    241247   END SUBROUTINE p4z_sms_init 
    242248 
     249   SUBROUTINE p4z_ph_ini 
     250      !!--------------------------------------------------------------------- 
     251      !!                   ***  ROUTINE p4z_ini_ph  *** 
     252      !! 
     253      !!  ** Purpose : Initialization of chemical variables of the carbon cycle 
     254      !!--------------------------------------------------------------------- 
     255      INTEGER  ::  ji, jj, jk 
     256      REAL(wp) ::  zcaralk, zbicarb, zco3 
     257      REAL(wp) ::  ztmas, ztmas1 
     258      !!--------------------------------------------------------------------- 
     259 
     260      ! Set PH from  total alkalinity, borat (???), akb3 (???) and ak23 (???) 
     261      ! -------------------------------------------------------- 
     262      DO jk = 1, jpk 
     263         DO jj = 1, jpj 
     264            DO ji = 1, jpi 
     265               ztmas   = tmask(ji,jj,jk) 
     266               ztmas1  = 1. - tmask(ji,jj,jk) 
     267               zcaralk = trn(ji,jj,jk,jptal) - borat(ji,jj,jk) / (  1. + 1.E-8 / ( rtrn + akb3(ji,jj,jk) )  ) 
     268               zco3    = ( zcaralk - trn(ji,jj,jk,jpdic) ) * ztmas + 0.5e-3 * ztmas1 
     269               zbicarb = ( 2. * trn(ji,jj,jk,jpdic) - zcaralk ) 
     270               hi(ji,jj,jk) = ( ak23(ji,jj,jk) * zbicarb / zco3 ) * ztmas + 1.e-9 * ztmas1 
     271            END DO 
     272         END DO 
     273     END DO 
     274     ! 
     275   END SUBROUTINE p4z_ph_ini 
     276 
    243277   SUBROUTINE p4z_rst( kt, cdrw ) 
    244278      !!--------------------------------------------------------------------- 
     
    269303         ELSE 
    270304!            hi(:,:,:) = 1.e-9  
    271             ! Set PH from  total alkalinity, borat (???), akb3 (???) and ak23 (???) 
    272             ! -------------------------------------------------------- 
    273             DO jk = 1, jpk 
    274                DO jj = 1, jpj 
    275                   DO ji = 1, jpi 
    276                      ztmas   = tmask(ji,jj,jk) 
    277                      ztmas1  = 1. - tmask(ji,jj,jk) 
    278                      zcaralk = trn(ji,jj,jk,jptal) - borat(ji,jj,jk) / (  1. + 1.E-8 / ( rtrn + akb3(ji,jj,jk) )  ) 
    279                      zco3    = ( zcaralk - trn(ji,jj,jk,jpdic) ) * ztmas + 0.5e-3 * ztmas1 
    280                      zbicarb = ( 2. * trn(ji,jj,jk,jpdic) - zcaralk ) 
    281                      hi(ji,jj,jk) = ( ak23(ji,jj,jk) * zbicarb / zco3 ) * ztmas + 1.e-9 * ztmas1 
    282                   END DO 
    283                END DO 
    284             END DO 
     305            CALL p4z_ph_ini 
    285306         ENDIF 
    286307         CALL iom_get( numrtr, jpdom_autoglo, 'Silicalim', xksi(:,:) ) 
     
    395416#endif 
    396417            &                    + trn(:,:,:,jpsfe)                     & 
    397             &                    + trn(:,:,:,jpzoo)                     & 
     418            &                    + trn(:,:,:,jpzoo) * ferat3            & 
    398419            &                    + trn(:,:,:,jpmes) * ferat3            ) * cvol(:,:,:)  ) 
    399420 
     
    421442   END SUBROUTINE p4z_chk_mass 
    422443 
    423    SUBROUTINE p4z_clo    
    424       !!--------------------------------------------------------------------- 
    425       !!                  ***  ROUTINE p4z_clo  *** 
    426       !! 
    427       !! ** Purpose :   Closed sea domain initialization 
    428       !! 
    429       !! ** Method  :   if a closed sea is located only in a model grid point 
    430       !!                we restore to initial data 
    431       !! 
    432       !! ** Action  :   ictsi1(), ictsj1() : south-west closed sea limits (i,j) 
    433       !!                ictsi2(), ictsj2() : north-east Closed sea limits (i,j) 
    434       !!---------------------------------------------------------------------- 
    435       INTEGER, PARAMETER           ::   npicts   = 4        ! number of closed sea 
    436       INTEGER, DIMENSION(npicts)   ::   ictsi1, ictsj1      ! south-west closed sea limits (i,j) 
    437       INTEGER, DIMENSION(npicts)   ::   ictsi2, ictsj2      ! north-east closed sea limits (i,j) 
    438       INTEGER :: ji, jj, jk, jn, jl, jc                     ! dummy loop indices 
    439       INTEGER :: ierr                                       ! local integer 
    440       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::  ztrcdta     ! 4D  workspace 
    441       !!---------------------------------------------------------------------- 
    442  
    443       IF(lwp) WRITE(numout,*) 
    444       IF(lwp) WRITE(numout,*)' p4z_clo : closed seas ' 
    445       IF(lwp) WRITE(numout,*)'~~~~~~~' 
    446  
    447       ! initial values 
    448       ictsi1(:) = 1  ;  ictsi2(:) = 1  
    449       ictsj1(:) = 1  ;  ictsj2(:) = 1  
    450  
    451       ! set the closed seas (in data domain indices) 
    452       ! ------------------- 
    453  
    454       IF( cp_cfg == "orca" ) THEN 
    455          ! 
    456          SELECT CASE ( jp_cfg ) 
    457          !                                           ! ======================= 
    458          CASE ( 2 )                                  !  ORCA_R2 configuration 
    459             !                                        ! ======================= 
    460             !                                            ! Caspian Sea 
    461             ictsi1(1)   =  11  ;  ictsj1(1)   = 103 
    462             ictsi2(1)   =  17  ;  ictsj2(1)   = 112 
    463             !                                            ! Great North American Lakes 
    464             ictsi1(2)   =  97  ;  ictsj1(2)   = 107 
    465             ictsi2(2)   = 103  ;  ictsj2(2)   = 111 
    466             !                                            ! Black Sea 1 : west part of the Black Sea 
    467             ictsi1(3)   = 174  ; ictsj1(3)   = 107 
    468             ictsi2(3)   = 181  ; ictsj2(3)   = 112 
    469             !                                            ! Black Sea 2 : est part of the Black Sea 
    470             ictsi1(4)   =   2  ;  ictsj1(4)   = 107 
    471             ictsi2(4)   =   6  ;  ictsj2(4)   = 112 
    472             !                                        ! ======================= 
    473          CASE ( 4 )                                  !  ORCA_R4 configuration 
    474             !                                        ! ======================= 
    475             !                                            ! Caspian Sea 
    476             ictsi1(1)   =  4  ;  ictsj1(1)   = 53 
    477             ictsi2(1)   =  4  ;  ictsj2(1)   = 56 
    478             !                                            ! Great North American Lakes 
    479             ictsi1(2)   = 49  ;  ictsj1(2)   = 55 
    480             ictsi2(2)   = 51  ;  ictsj2(2)   = 56 
    481             !                                            ! Black Sea 
    482             ictsi1(3)   = 88  ;  ictsj1(3)   = 55 
    483             ictsi2(3)   = 91  ;  ictsj2(3)   = 56 
    484             !                                            ! Baltic Sea 
    485             ictsi1(4)   = 75  ;  ictsj1(4)   = 59 
    486             ictsi2(4)   = 76  ;  ictsj2(4)   = 61 
    487             !                                        ! ======================= 
    488             !                                        ! ======================= 
    489          CASE ( 025 )                                ! ORCA_R025 configuration 
    490             !                                        ! ======================= 
    491                                                      ! Caspian + Aral sea 
    492             ictsi1(1)   = 1330 ; ictsj1(1)   = 645 
    493             ictsi2(1)   = 1400 ; ictsj2(1)   = 795 
    494             !                                        ! Azov Sea 
    495             ictsi1(2)   = 1284 ; ictsj1(2)   = 722 
    496             ictsi2(2)   = 1304 ; ictsj2(2)   = 747 
    497             ! 
    498          END SELECT 
    499          ! 
    500       ENDIF 
    501  
    502       ! convert the position in local domain indices 
    503       ! -------------------------------------------- 
    504       DO jc = 1, npicts  
    505          ictsi1(jc)   = mi0( ictsi1(jc) ) 
    506          ictsj1(jc)   = mj0( ictsj1(jc) ) 
    507  
    508          ictsi2(jc)   = mi1( ictsi2(jc) ) 
    509          ictsj2(jc)   = mj1( ictsj2(jc) ) 
    510       END DO 
    511  
    512       ! Restore close seas values to initial data 
    513       IF( ln_trcdta .AND. nb_trcdta > 0 )  THEN   ! Initialisation of tracer from a file that may also be used for damping 
    514          ! 
    515          CALL wrk_alloc( jpi, jpj, jpk, nb_trcdta, ztrcdta )   ! Memory allocation 
    516          ! 
    517          CALL trc_dta( nittrc000, ztrcdta )   ! read tracer data at nittrc000 
    518          ! 
    519          DO jn = 1, jptra 
    520             IF( ln_trc_ini(jn) ) THEN      ! update passive tracers arrays with input data read from file 
    521                 jl = n_trc_index(jn) 
    522                 DO jc = 1, npicts 
    523                    DO jk = 1, jpkm1 
    524                       DO jj = ictsj1(jc), ictsj2(jc) 
    525                          DO ji = ictsi1(jc), ictsi2(jc) 
    526                             trn(ji,jj,jk,jn) = ztrcdta(ji,jj,jk,jl) * tmask(ji,jj,jk) 
    527                             trb(ji,jj,jk,jn) = trn(ji,jj,jk,jn) 
    528                          ENDDO 
    529                       ENDDO 
    530                    ENDDO 
    531                 ENDDO 
    532              ENDIF 
    533           ENDDO 
    534           CALL wrk_dealloc( jpi, jpj, jpk, nb_trcdta, ztrcdta ) 
    535       ENDIF 
    536       ! 
    537    END SUBROUTINE p4z_clo 
    538444#else 
    539445   !!====================================================================== 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/PISCES/sms_pisces.F90

    r3780 r4258  
    5656   LOGICAL  ::  ln_pisdmp          !: restoring or not of nutrients to a mean value 
    5757   INTEGER  ::  nn_pisdmp          !: frequency of relaxation or not of nutrients to a mean value 
    58    LOGICAL  ::  ln_pisclo          !: Restoring or not of nutrients to initial value on closed seas 
    5958 
    6059   !!* Mass conservation 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/PISCES/trcini_pisces.F90

    r3757 r4258  
    122122      rdenita =   3._wp /  5._wp 
    123123      o2ut    = 131._wp / 122._wp 
    124  
    125       CALL p4z_che        ! initialize the chemical constants 
    126124 
    127125      ! Initialization of tracer concentration in case of  no restart  
     
    162160         xksi(:,:)    = 2.e-6 
    163161         xksimax(:,:) = xksi(:,:) 
    164  
    165          ! Initialization of chemical variables of the carbon cycle 
    166          ! -------------------------------------------------------- 
    167          DO jk = 1, jpk 
    168             DO jj = 1, jpj 
    169                DO ji = 1, jpi 
    170                   ztmas   = tmask(ji,jj,jk) 
    171                   ztmas1  = 1. - tmask(ji,jj,jk) 
    172                   zcaralk = trn(ji,jj,jk,jptal) - borat(ji,jj,jk) / (  1. + 1.E-8 / ( rtrn + akb3(ji,jj,jk) )  ) 
    173                   zco3    = ( zcaralk - trn(ji,jj,jk,jpdic) ) * ztmas + 0.5e-3 * ztmas1 
    174                   zbicarb = ( 2. * trn(ji,jj,jk,jpdic) - zcaralk ) 
    175                   hi(ji,jj,jk) = ( ak23(ji,jj,jk) * zbicarb / zco3 ) * ztmas + 1.e-9 * ztmas1 
    176                END DO 
    177             END DO 
    178          END DO 
    179          ! 
     162        ! 
    180163      END IF 
    181164 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/TRP/trcdmp.F90

    r3294 r4258  
    1111   !!            3.3  !  2010-06  (C. Ethe, G. Madec) merge TRA-TRC  
    1212   !!---------------------------------------------------------------------- 
    13 #if  defined key_top && defined key_trcdmp  
    14    !!---------------------------------------------------------------------- 
    15    !!   key_trcdmp                                         internal damping 
     13#if  defined key_top  
    1614   !!---------------------------------------------------------------------- 
    1715   !!   trc_dmp      : update the tracer trend with the internal damping 
     
    2523   USE prtctl_trc      ! Print control for debbuging 
    2624   USE trdtra 
     25   USE trdmod_oce 
    2726 
    2827   IMPLICIT NONE 
     
    3029 
    3130   PUBLIC trc_dmp            ! routine called by step.F90 
     31   PUBLIC trc_dmp_clo        ! routine called by step.F90 
    3232   PUBLIC trc_dmp_alloc      ! routine called by nemogcm.F90 
    3333 
    34    LOGICAL , PUBLIC, PARAMETER ::   lk_trcdmp = .TRUE.   !: internal damping flag 
    35  
    3634   !                                !!* Namelist namtrc_dmp : passive tracer newtonian damping * 
    37    INTEGER  ::   nn_hdmp_tr =   -1   ! = 0/-1/'latitude' for damping over passive tracer 
    38    INTEGER  ::   nn_zdmp_tr =    0   ! = 0/1/2 flag for damping in the mixed layer 
    39    REAL(wp) ::   rn_surf_tr =   50.  ! surface time scale for internal damping        [days] 
    40    REAL(wp) ::   rn_bot_tr  =  360.  ! bottom time scale for internal damping         [days] 
    41    REAL(wp) ::   rn_dep_tr  =  800.  ! depth of transition between rn_surf and rn_bot [meters] 
    42    INTEGER  ::   nn_file_tr =    2   ! = 1 create a damping.coeff NetCDF file  
    43  
    4435   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   restotr   ! restoring coeff. on tracers (s-1) 
     36 
     37   INTEGER, PARAMETER           ::   npncts   = 5        ! number of closed sea 
     38   INTEGER, DIMENSION(npncts)   ::   nctsi1, nctsj1      ! south-west closed sea limits (i,j) 
     39   INTEGER, DIMENSION(npncts)   ::   nctsi2, nctsj2      ! north-east closed sea limits (i,j) 
    4540 
    4641   !! * Substitutions 
     
    8681      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index 
    8782      !! 
    88       INTEGER  ::   ji, jj, jk, jn       ! dummy loop indices 
     83      INTEGER  ::   ji, jj, jk, jn, jl       ! dummy loop indices 
    8984      REAL(wp) ::   ztra                 ! temporary scalars 
    9085      CHARACTER (len=22) :: charout 
    9186      REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztrtrd 
     87      REAL(wp), POINTER, DIMENSION(:,:,:,:) ::  ztrcdta   ! 4D  workspace 
    9288      !!---------------------------------------------------------------------- 
    9389      ! 
     
    9995 
    10096      IF( l_trdtrc )   CALL wrk_alloc( jpi, jpj, jpk, ztrtrd )   ! temporary save of trends 
    101  
    102       ! 1. Newtonian damping trends on tracer fields 
    103       ! -------------------------------------------- 
    104       ! Initialize the input fields for newtonian damping 
    105       CALL trc_dta( kt ) 
    106       !                                                          ! =========== 
    107       DO jn = 1, jptra                                           ! tracer loop 
    108          !                                                       ! =========== 
    109          IF( l_trdtrc ) ztrtrd(:,:,:) = tra(:,:,:,jn)    ! save trends  
    110  
    111          IF( lutini(jn) ) THEN 
     97      ! 
     98      IF( nb_trcdta > 0 ) THEN  ! Initialisation of tracer from a file that may also be used for damping 
     99         ! 
     100         CALL wrk_alloc( jpi, jpj, jpk, nb_trcdta, ztrcdta )    ! Memory allocation 
     101         CALL trc_dta( kt, ztrcdta )   ! read tracer data at nit000 
     102         !                                                          ! =========== 
     103         DO jn = 1, jptra                                           ! tracer loop 
     104            !                                                       ! =========== 
     105            IF( l_trdtrc ) ztrtrd(:,:,:) = tra(:,:,:,jn)    ! save trends  
    112106            ! 
    113             SELECT CASE ( nn_zdmp_trc ) 
    114             ! 
    115             CASE( 0 )                !==  newtonian damping throughout the water column  ==! 
    116                DO jk = 1, jpkm1 
    117                   DO jj = 2, jpjm1 
    118                      DO ji = fs_2, fs_jpim1   ! vector opt. 
    119                         ztra = restotr(ji,jj,jk) * ( trdta(ji,jj,jk,jn) - trb(ji,jj,jk,jn) ) 
    120                         tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztra 
     107            IF( ln_trc_ini(jn) ) THEN      ! update passive tracers arrays with input data read from file 
     108                
     109               jl = n_trc_index(jn)  
     110 
     111               SELECT CASE ( nn_zdmp_tr ) 
     112               ! 
     113               CASE( 0 )                !==  newtonian damping throughout the water column  ==! 
     114                  DO jk = 1, jpkm1 
     115                     DO jj = 2, jpjm1 
     116                        DO ji = fs_2, fs_jpim1   ! vector opt. 
     117                           ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk,jl) - trb(ji,jj,jk,jn) ) 
     118                           tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztra 
     119                        END DO 
    121120                     END DO 
    122121                  END DO 
    123                END DO 
    124             ! 
    125             CASE ( 1 )                !==  no damping in the turbocline (avt > 5 cm2/s)  ==! 
    126                DO jk = 1, jpkm1 
    127                   DO jj = 2, jpjm1 
    128                      DO ji = fs_2, fs_jpim1   ! vector opt. 
    129                         IF( avt(ji,jj,jk) <= 5.e-4 )  THEN  
    130                            ztra = restotr(ji,jj,jk) * ( trdta(ji,jj,jk,jn) - trb(ji,jj,jk,jn) ) 
    131                            tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztra 
    132                         ENDIF 
     122               ! 
     123               CASE ( 1 )                !==  no damping in the turbocline (avt > 5 cm2/s)  ==! 
     124                  DO jk = 1, jpkm1 
     125                     DO jj = 2, jpjm1 
     126                        DO ji = fs_2, fs_jpim1   ! vector opt. 
     127                           IF( avt(ji,jj,jk) <= 5.e-4 )  THEN  
     128                              ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk,jl) - trb(ji,jj,jk,jn) ) 
     129                              tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztra 
     130                           ENDIF 
     131                        END DO 
    133132                     END DO 
    134133                  END DO 
    135                END DO 
    136             ! 
    137             CASE ( 2 )               !==  no damping in the mixed layer   ==!  
    138                DO jk = 1, jpkm1 
    139                   DO jj = 2, jpjm1 
    140                      DO ji = fs_2, fs_jpim1   ! vector opt. 
    141                         IF( fsdept(ji,jj,jk) >= hmlp (ji,jj) ) THEN 
    142                            ztra = restotr(ji,jj,jk,jn) * ( trdta(ji,jj,jk,jn) - trb(ji,jj,jk,jn) ) 
    143                            tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztra 
    144                         END IF 
     134               ! 
     135               CASE ( 2 )               !==  no damping in the mixed layer   ==!  
     136                  DO jk = 1, jpkm1 
     137                     DO jj = 2, jpjm1 
     138                        DO ji = fs_2, fs_jpim1   ! vector opt. 
     139                           IF( fsdept(ji,jj,jk) >= hmlp (ji,jj) ) THEN 
     140                              ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk,jl) - trb(ji,jj,jk,jn) ) 
     141                              tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztra 
     142                           END IF 
     143                        END DO 
    145144                     END DO 
    146145                  END DO 
    147                END DO 
    148             !   
    149             END SELECT 
    150             !  
    151          ENDIF 
    152          ! 
    153          IF( l_trdtrc ) THEN 
    154             ztrtrd(:,:,:) = tra(:,:,:,jn) -  ztrtrd(:,:,:) 
    155             CALL trd_tra( kt, 'TRC', jn, jptra_trd_dmp, ztrtrd ) 
    156          END IF 
    157          !                                                       ! =========== 
    158       END DO                                                     ! tracer loop 
    159       !                                                          ! =========== 
     146               !   
     147               END SELECT 
     148               !  
     149            ENDIF 
     150            ! 
     151            IF( l_trdtrc ) THEN 
     152               ztrtrd(:,:,:) = tra(:,:,:,jn) -  ztrtrd(:,:,:) 
     153               CALL trd_tra( kt, 'TRC', jn, jptra_trd_dmp, ztrtrd ) 
     154            END IF 
     155            !                                                       ! =========== 
     156         END DO                                                     ! tracer loop 
     157         !                                                          ! =========== 
     158         CALL wrk_dealloc( jpi, jpj, jpk, nb_trcdta, ztrcdta ) 
     159      ENDIF 
     160      ! 
    160161      IF( l_trdtrc )  CALL wrk_dealloc( jpi, jpj, jpk, ztrtrd ) 
    161162      !                                          ! print mean trends (used for debugging) 
     
    168169      ! 
    169170   END SUBROUTINE trc_dmp 
     171 
     172   SUBROUTINE trc_dmp_clo( kt ) 
     173      !!--------------------------------------------------------------------- 
     174      !!                  ***  ROUTINE trc_dmp_clo  *** 
     175      !! 
     176      !! ** Purpose :   Closed sea domain initialization 
     177      !! 
     178      !! ** Method  :   if a closed sea is located only in a model grid point 
     179      !!                we restore to initial data 
     180      !! 
     181      !! ** Action  :   nctsi1(), nctsj1() : south-west closed sea limits (i,j) 
     182      !!                nctsi2(), nctsj2() : north-east Closed sea limits (i,j) 
     183      !!---------------------------------------------------------------------- 
     184      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index 
     185      ! 
     186      INTEGER :: ji, jj, jk, jn, jl, jc                     ! dummy loop indicesa 
     187      REAL(wp), POINTER, DIMENSION(:,:,:,:) ::  ztrcdta     ! 4D  workspace 
     188 
     189      !!---------------------------------------------------------------------- 
     190 
     191      IF( kt == nit000 ) THEN 
     192         ! initial values 
     193         nctsi1(:) = 1  ;  nctsi2(:) = 1 
     194         nctsj1(:) = 1  ;  nctsj2(:) = 1 
     195 
     196         ! set the closed seas (in data domain indices) 
     197         ! ------------------- 
     198 
     199         IF( cp_cfg == "orca" ) THEN 
     200            ! 
     201            SELECT CASE ( jp_cfg ) 
     202            !                                           ! ======================= 
     203            CASE ( 2 )                                  !  ORCA_R2 configuration 
     204               !                                        ! ======================= 
     205               !                                            ! Caspian Sea 
     206               nctsi1(1)   =  11  ;  nctsj1(1)   = 103 
     207               nctsi2(1)   =  17  ;  nctsj2(1)   = 112 
     208               !                                            ! Great North American Lakes 
     209               nctsi1(2)   =  97  ;  nctsj1(2)   = 107 
     210               nctsi2(2)   = 103  ;  nctsj2(2)   = 111 
     211               !                                            ! Black Sea 1 : west part of the Black Sea 
     212               nctsi1(3)   = 174  ;  nctsj1(3)   = 107 
     213               nctsi2(3)   = 181  ;  nctsj2(3)   = 112 
     214              !                                            ! Black Sea 2 : est part of the Black Sea 
     215               nctsi1(4)   =   2  ;  nctsj1(4)   = 107 
     216               nctsi2(4)   =   6  ;  nctsj2(4)   = 112 
     217               !                                            ! Baltic Sea 
     218               nctsi1(5)   =  145 ;  nctsj1(5)   = 116 
     219               nctsi2(5)   =  150 ;  nctsj2(5)   = 126 
     220               !                                        ! ======================= 
     221            CASE ( 4 )                                  !  ORCA_R4 configuration 
     222               !                                        ! ======================= 
     223               !                                            ! Caspian Sea 
     224               nctsi1(1)   =  4  ;  nctsj1(1)   = 53 
     225               nctsi2(1)   =  4  ;  nctsj2(1)   = 56 
     226               !                                            ! Great North American Lakes 
     227               nctsi1(2)   = 49  ;  nctsj1(2)   = 55 
     228               nctsi2(2)   = 51  ;  nctsj2(2)   = 56 
     229               !                                            ! Black Sea 
     230               nctsi1(3)   = 88  ;  nctsj1(3)   = 55 
     231               nctsi2(3)   = 91  ;  nctsj2(3)   = 56 
     232               !                                            ! Baltic Sea 
     233               nctsi1(4)   = 75  ;  nctsj1(4)   = 59 
     234               nctsi2(4)   = 76  ;  nctsj2(4)   = 61 
     235               !                                        ! ======================= 
     236            CASE ( 025 )                                ! ORCA_R025 configuration 
     237               !                                        ! ======================= 
     238                                                     ! Caspian + Aral sea 
     239               nctsi1(1)   = 1330 ; nctsj1(1)   = 645 
     240               nctsi2(1)   = 1400 ; nctsj2(1)   = 795 
     241               !                                        ! Azov Sea 
     242               nctsi1(2)   = 1284 ; nctsj1(2)   = 722 
     243               nctsi2(2)   = 1304 ; nctsj2(2)   = 747 
     244               ! 
     245            END SELECT 
     246            ! 
     247         ENDIF 
     248         ! 
     249 
     250         ! convert the position in local domain indices 
     251         ! -------------------------------------------- 
     252         DO jc = 1, npncts 
     253            nctsi1(jc)   = mi0( nctsi1(jc) ) 
     254            nctsj1(jc)   = mj0( nctsj1(jc) ) 
     255 
     256            nctsi2(jc)   = mi1( nctsi2(jc) ) 
     257            nctsj2(jc)   = mj1( nctsj2(jc) ) 
     258         END DO 
     259         ! 
     260      ENDIF 
     261 
     262      ! Restore close seas values to initial data 
     263      IF( ln_trcdta .AND. nb_trcdta > 0 )  THEN   ! Initialisation of tracer from a file that may also be used for damping 
     264         ! 
     265         IF(lwp)  WRITE(numout,*) 
     266         IF(lwp)  WRITE(numout,*) ' trc_dmp_clo : Restoring of nutrients on close seas at time-step kt = ', kt 
     267         IF(lwp)  WRITE(numout,*) 
     268         ! 
     269         CALL wrk_alloc( jpi, jpj, jpk, nb_trcdta, ztrcdta )   ! Memory allocation 
     270         ! 
     271         CALL trc_dta( kt , ztrcdta )   ! read tracer data at nittrc000 
     272         ! 
     273         DO jn = 1, jptra 
     274            IF( ln_trc_ini(jn) ) THEN      ! update passive tracers arrays with input data read from file 
     275                jl = n_trc_index(jn) 
     276                DO jc = 1, npncts 
     277                   DO jk = 1, jpkm1 
     278                      DO jj = nctsj1(jc), nctsj2(jc) 
     279                         DO ji = nctsi1(jc), nctsi2(jc) 
     280                            trn(ji,jj,jk,jn) = ztrcdta(ji,jj,jk,jl) * tmask(ji,jj,jk) 
     281                            trb(ji,jj,jk,jn) = trn(ji,jj,jk,jn) 
     282                         ENDDO 
     283                      ENDDO 
     284                   ENDDO 
     285                ENDDO 
     286             ENDIF 
     287          ENDDO 
     288          CALL wrk_dealloc( jpi, jpj, jpk, nb_trcdta, ztrcdta ) 
     289      ENDIF 
     290      ! 
     291   END SUBROUTINE trc_dmp_clo 
    170292 
    171293 
     
    199321      END SELECT 
    200322 
    201       IF( .NOT. lk_dtatrc )   & 
    202          &   CALL ctl_stop( 'no passive tracer data define key_dtatrc' ) 
    203  
    204       IF( .NOT. lk_tradmp )   & 
     323      IF( .NOT. ln_tradmp )   & 
    205324         &   CALL ctl_stop( 'passive trace damping need key_tradmp to compute damping coef.' ) 
    206325      ! 
     
    214333      ! 
    215334   END SUBROUTINE trc_dmp_init 
     335 
    216336#else 
    217337   !!---------------------------------------------------------------------- 
    218    !!   Default key                                     NO internal damping 
    219    !!---------------------------------------------------------------------- 
    220    LOGICAL , PUBLIC, PARAMETER ::   lk_trcdmp = .FALSE.    !: internal damping flag 
     338   !!  Dummy module :                                     No passive tracer 
     339   !!---------------------------------------------------------------------- 
    221340CONTAINS 
    222341   SUBROUTINE trc_dmp( kt )        ! Empty routine 
     
    225344   END SUBROUTINE trc_dmp 
    226345#endif 
     346 
     347 
    227348   !!====================================================================== 
    228349END MODULE trcdmp 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/TRP/trcnam_trp.F90

    r3718 r4258  
    1313   !!   trc_nam_trp  : read the passive tracer namelist for transport 
    1414   !!---------------------------------------------------------------------- 
    15    USE trc                 ! ocean passive tracers variables 
     15   USE oce_trc              ! shared ocean passive tracers variables 
     16   USE trc                 ! passive tracers variables 
    1617   USE in_out_manager      ! ocean dynamics and active tracers variables 
    1718 
     
    4849   INTEGER , PUBLIC ::   nn_trczdf_exp = 3             !: number of sub-time step (explicit time stepping) 
    4950 
    50  
    51 #if defined key_trcdmp 
    5251   !                                                 !!: ** newtonian damping namelist (nam_trcdmp) ** 
    5352   INTEGER , PUBLIC ::   nn_hdmp_tr      =   -1       ! = 0/-1/'latitude' for damping over passive tracer 
     
    5756   REAL(wp), PUBLIC ::   rn_dep_tr       =  800.      ! depth of transition between rn_surf and rn_bot [meters] 
    5857   INTEGER , PUBLIC ::   nn_file_tr      =    2       ! = 1 create a damping.coeff NetCDF file  
    59 #endif 
    6058 
    6159   !!---------------------------------------------------------------------- 
     
    8280      NAMELIST/namtrc_zdf/ ln_trczdf_exp  , nn_trczdf_exp 
    8381      NAMELIST/namtrc_rad/ ln_trcrad 
    84 #if defined key_trcdmp 
    85       NAMELIST/namtrc_dmp/ ln_trcdmp, nn_hdmp_tr, nn_zdmp_tr, rn_surf_tr, & 
     82      NAMELIST/namtrc_dmp/ nn_hdmp_tr, nn_zdmp_tr, rn_surf_tr, & 
    8683        &                  rn_bot_tr , rn_dep_tr , nn_file_tr 
    87 #endif 
    8884      !!---------------------------------------------------------------------- 
    8985 
     
    148144 
    149145 
    150 # if defined key_trcdmp 
    151146      REWIND ( numnat )                  ! Read Namelist namtra_dmp : temperature and salinity damping term 
    152147      READ   ( numnat, namtrc_dmp ) 
    153       IF( lzoom )   nn_zdmp_trc = 0           ! restoring to climatology at closed north or south boundaries 
     148      IF( lzoom )   nn_zdmp_tr = 0           ! restoring to climatology at closed north or south boundaries 
    154149 
    155150      IF(lwp) THEN                       ! Namelist print 
     
    158153         WRITE(numout,*) '~~~~~~~' 
    159154         WRITE(numout,*) '   Namelist namtrc_dmp : set damping parameter' 
    160          WRITE(numout,*) '      add a damping term or not      ln_trcdmp = ', ln_trcdmp 
    161155         WRITE(numout,*) '      tracer damping option          nn_hdmp_tr = ', nn_hdmp_tr 
    162156         WRITE(numout,*) '      mixed layer damping option     nn_zdmp_tr = ', nn_zdmp_tr, '(zoom: forced to 0)' 
     
    166160         WRITE(numout,*) '      create a damping.coeff file    nn_file_tr = ', nn_file_tr 
    167161      ENDIF 
    168 #endif 
    169162      ! 
    170163   END SUBROUTINE trc_nam_trp 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/TRP/trctrp.F90

    r3680 r4258  
    6666                                CALL trc_sbc( kstp )            ! surface boundary condition 
    6767         IF( lk_trabbl )        CALL trc_bbl( kstp )            ! advective (and/or diffusive) bottom boundary layer scheme 
    68          IF( lk_trcdmp )        CALL trc_dmp( kstp )            ! internal damping trends 
     68         IF( ln_trcdmp )        CALL trc_dmp( kstp )            ! internal damping trends 
     69         IF( ln_trcdmp_clo )    CALL trc_dmp_clo( kstp )        ! internal damping trends on closed seas only 
    6970                                CALL trc_adv( kstp )            ! horizontal & vertical advection  
    7071                                CALL trc_ldf( kstp )            ! lateral mixing 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90

    r3865 r4258  
    9292   USE sbc_oce , ONLY :   emp        =>    emp        !: freshwater budget: volume flux               [Kg/m2/s] 
    9393   USE sbc_oce , ONLY :   emp_b      =>    emp_b      !: freshwater budget: volume flux               [Kg/m2/s] 
    94    USE sbc_oce , ONLY :   sfx        =>    sfx        !: downward salt flux                          [PSU/m2/s] 
     94   USE sbc_oce , ONLY :   fmmflx     =>    fmmflx     !: freshwater budget: volume flux               [Kg/m2/s] 
    9595   USE sbc_oce , ONLY :   rnf        =>    rnf        !: river runoff   [Kg/m2/s] 
    9696   USE sbc_oce , ONLY :   ln_dm2dc   =>    ln_dm2dc   !: Daily mean to Diurnal Cycle short wave (qsr)  
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/trc.F90

    r3770 r4258  
    2626   INTEGER, PUBLIC                                                 ::   numrtr        !: logical unit for trc restart (read ) 
    2727   INTEGER, PUBLIC                                                 ::   numrtw        !: logical unit for trc restart ( write ) 
    28    LOGICAL, PUBLIC                                                 ::   ln_top_euler  !: boolean term for euler integration in the first timestep 
    2928 
    3029   !! passive tracers fields (before,now,after) 
     
    5352   CHARACTER(len = 80) , PUBLIC                                    ::  cn_trcrst_out  !: suffix of pass. tracer restart name (output) 
    5453   REAL(wp)            , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)   ::  rdttrc         !: vertical profile of passive tracer time step 
     54   LOGICAL             , PUBLIC                                    ::  ln_top_euler  !: boolean term for euler integration  
    5555   LOGICAL             , PUBLIC                                    ::  ln_trcdta      !: Read inputs data from files 
    5656   LOGICAL             , PUBLIC                                    ::  ln_trcdmp      !: internal damping flag 
     57   LOGICAL             , PUBLIC                                    ::  ln_trcdmp_clo  !: internal damping flag on closed seas 
    5758   INTEGER             , PUBLIC                                    ::  nittrc000       !: first time step of passive tracers model 
    5859 
     
    140141   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  fr_i_tm    !: average ice fraction     [m/s] 
    141142   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  emp_tm     !: freshwater budget: volume flux [Kg/m2/s] 
    142    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  sfx_tm     !: downward salt flux [PSU/m2/s] 
     143   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  fmmflx_tm  !: freshwater budget: freezing/melting [Kg/m2/s] 
    143144   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  emp_b_hold !: hold emp from the beginning of each sub-stepping[m]   
    144145   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  qsr_tm     !: solar radiation average [m] 
     
    180181   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::  hdivb_temp, rotb_temp 
    181182   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  hmld_temp, qsr_temp, fr_i_temp,wndm_temp 
    182    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  emp_temp, sfx_temp, emp_b_temp 
     183   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  emp_temp, fmmflx_temp, emp_b_temp 
    183184   ! 
    184185#if defined key_trabbl 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/trcdta.F90

    r3862 r4258  
    254254            ENDDO 
    255255         ENDIF 
    256          ! 
    257          IF( .NOT.ln_trcdmp ) THEN                   !==   deallocate data structure   ==!  
     256          
     257         IF( .NOT.ln_trcdmp .AND. .NOT.ln_trcdmp_clo ) THEN      !==   deallocate data structure   ==!  
    258258            !                                              (data used only for initialisation) 
    259259            IF(lwp) WRITE(numout,*) 'trc_dta: deallocate data arrays as they are only use to initialize the run' 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/trcnam.F90

    r3749 r4258  
    5959      !! 
    6060      NAMELIST/namtrc/ nn_dttrc, nn_writetrc, ln_rsttr, nn_rsttr, & 
    61          &             cn_trcrst_in, cn_trcrst_out, sn_tracer, ln_trcdta, ln_trcdmp, & 
    62          &             ln_top_euler 
     61         &             cn_trcrst_in, cn_trcrst_out, sn_tracer, ln_trcdta, & 
     62         &             ln_trcdmp, ln_trcdmp_clo, ln_top_euler 
    6363#if defined key_trdmld_trc  || defined key_trdtrc 
    6464      NAMELIST/namtrc_trd/ nn_trd_trc, nn_ctls_trc, rn_ucf_trc, & 
     
    9292         sn_tracer(jn)%llsave  = .TRUE. 
    9393      END DO 
    94       ln_trcdta = .FALSE. 
    95       ln_trcdmp = .FALSE. 
     94      ln_trcdta     = .FALSE. 
     95      ln_trcdmp     = .FALSE. 
     96      ln_trcdmp_clo = .FALSE. 
    9697 
    9798 
     
    121122         WRITE(numout,*) '   Read inputs data from file (y/n)             ln_trcdta     = ', ln_trcdta 
    122123         WRITE(numout,*) '   Damping of passive tracer (y/n)              ln_trcdmp     = ', ln_trcdmp 
     124         WRITE(numout,*) '   Restoring of tracer on closed seas           ln_trcdmp_clo = ', ln_trcdmp_clo 
    123125         WRITE(numout,*) '   Use euler integration for TRC (y/n)          ln_top_euler  = ', ln_top_euler 
    124126         WRITE(numout,*) ' ' 
     
    181183 
    182184 
    183       IF( ln_trcdmp .AND. .NOT.ln_trcdta ) THEN 
    184          CALL ctl_warn( 'trc_nam: passive tracer damping requires data from files we set ln_trcdta to TRUE' ) 
    185          ln_trcdta = .TRUE. 
    186       ENDIF 
    187       ! 
    188       IF( ln_rsttr .AND. .NOT.ln_trcdmp .AND. ln_trcdta ) THEN 
    189           CALL ctl_warn( 'trc_nam: passive tracer restart and  data intialisation, ',   & 
    190              &           'we keep the restart values and set ln_trcdta to FALSE' ) 
    191          ln_trcdta = .FALSE. 
    192       ENDIF 
     185      IF( ln_rsttr )                      ln_trcdta = .FALSE.   ! restart : no need of clim data 
     186      ! 
     187      IF( ln_trcdmp .OR. ln_trcdmp_clo )  ln_trcdta = .TRUE.   ! damping : need to have clim data 
    193188      ! 
    194189      IF( .NOT.ln_trcdta ) THEN 
     
    199194         IF( ln_rsttr ) THEN 
    200195            WRITE(numout,*) 
    201             WRITE(numout,*) '    read a restart file for passive tracer : ', TRIM( cn_trcrst_in ) 
    202             WRITE(numout,*) 
    203          ELSE 
    204             IF( .NOT.ln_trcdta ) THEN 
    205                 WRITE(numout,*) 
    206                 WRITE(numout,*) '  All the passive tracers are initialised with constant values ' 
    207                 WRITE(numout,*) 
    208             ENDIF 
     196            WRITE(numout,*) '  Read a restart file for passive tracer : ', TRIM( cn_trcrst_in ) 
     197            WRITE(numout,*) 
     198         ENDIF 
     199         IF( ln_trcdta .AND. .NOT.ln_rsttr ) THEN 
     200            WRITE(numout,*) 
     201            WRITE(numout,*) '  Some of the passive tracers are initialised from climatologies ' 
     202            WRITE(numout,*) 
     203         ENDIF 
     204         IF( .NOT.ln_trcdta ) THEN 
     205            WRITE(numout,*) 
     206            WRITE(numout,*) '  All the passive tracers are initialised with constant values ' 
     207            WRITE(numout,*) 
    209208         ENDIF 
    210209      ENDIF 
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/trcsub.F90

    r3680 r4258  
    124124          fr_i_tm  (:,:)         = fr_i_tm  (:,:)         + fr_i  (:,:) 
    125125          emp_tm   (:,:)         = emp_tm   (:,:)         + emp   (:,:)  
    126           sfx_tm   (:,:)         = sfx_tm   (:,:)         + sfx   (:,:) 
     126          fmmflx_tm(:,:)         = fmmflx_tm(:,:)         + fmmflx(:,:) 
    127127          qsr_tm   (:,:)         = qsr_tm   (:,:)         + qsr   (:,:) 
    128128          wndm_tm  (:,:)         = wndm_tm  (:,:)         + wndm  (:,:) 
     
    212212         emp_temp   (:,:)        = emp   (:,:) 
    213213         emp_b_temp (:,:)        = emp_b (:,:) 
    214          sfx_temp   (:,:)        = sfx   (:,:) 
     214         fmmflx_temp(:,:)        = fmmflx(:,:) 
    215215         qsr_temp   (:,:)        = qsr   (:,:) 
    216216         wndm_temp  (:,:)        = wndm  (:,:) 
     
    316316         fr_i_tm  (:,:)          = fr_i_tm    (:,:)       + fr_i  (:,:) 
    317317         emp_tm   (:,:)          = emp_tm     (:,:)       + emp   (:,:)  
    318          sfx_tm   (:,:)          = sfx_tm     (:,:)       + sfx   (:,:) 
     318         fmmflx_tm(:,:)          = fmmflx_tm  (:,:)       + fmmflx(:,:) 
    319319         qsr_tm   (:,:)          = qsr_tm     (:,:)       + qsr   (:,:) 
    320320         wndm_tm  (:,:)          = wndm_tm    (:,:)       + wndm  (:,:) 
     
    335335            qsr   (:,:)          = qsr_tm     (:,:) * r1_ndttrc  
    336336            emp   (:,:)          = emp_tm     (:,:) * r1_ndttrc  
    337             sfx   (:,:)          = sfx_tm     (:,:) * r1_ndttrc  
     337            fmmflx(:,:)          = fmmflx_tm  (:,:) * r1_ndttrc  
    338338            fr_i  (:,:)          = fr_i_tm    (:,:) * r1_ndttrc 
    339339# if defined key_trabbl 
     
    351351            qsr   (:,:)          = qsr_tm     (:,:) * r1_ndttrcp1  
    352352            emp   (:,:)          = emp_tm     (:,:) * r1_ndttrcp1  
    353             sfx   (:,:)          = sfx_tm     (:,:) * r1_ndttrcp1  
     353            fmmflx(:,:)          = fmmflx_tm  (:,:) * r1_ndttrcp1  
    354354            fr_i  (:,:)          = fr_i_tm    (:,:) * r1_ndttrcp1  
    355355# if defined key_trabbl 
     
    501501         CALL lbc_lnk( emp   (:,:)         , 'T', 1. )  
    502502         CALL lbc_lnk( emp_b (:,:)         , 'T', 1. )  
    503          CALL lbc_lnk( sfx   (:,:)         , 'T', 1. )  
     503         CALL lbc_lnk( fmmflx(:,:)         , 'T', 1. )  
    504504         CALL lbc_lnk( qsr   (:,:)         , 'T', 1. )  
    505505         CALL lbc_lnk( wndm  (:,:)         , 'T', 1. )  
     
    601601      fr_i_tm(:,:) = 0._wp 
    602602      emp_tm (:,:) = 0._wp 
    603       sfx_tm(:,:)  = 0._wp 
     603      fmmflx_tm(:,:)  = 0._wp 
    604604      qsr_tm (:,:) = 0._wp 
    605605      wndm_tm(:,:) = 0._wp 
     
    708708      fr_i  (:,:)     =  fr_i_temp  (:,:) 
    709709      emp   (:,:)     =  emp_temp   (:,:) 
    710       sfx   (:,:)     =  sfx_temp   (:,:) 
     710      fmmflx(:,:)     =  fmmflx_temp(:,:) 
    711711      emp_b (:,:)     =  emp_b_temp (:,:) 
    712712      qsr   (:,:)     =  qsr_temp   (:,:) 
     
    827827      fr_i_tm    (:,:) = fr_i  (:,:) 
    828828      emp_tm     (:,:) = emp   (:,:) 
    829       sfx_tm     (:,:) = sfx   (:,:) 
     829      fmmflx_tm  (:,:) = fmmflx(:,:) 
    830830      qsr_tm     (:,:) = qsr   (:,:) 
    831831      wndm_tm    (:,:) = wndm  (:,:) 
     
    10561056         &      rnf_temp(jpi,jpj)           ,  h_rnf_temp(jpi,jpj) ,     & 
    10571057         &      tsn_temp(jpi,jpj,jpk,2)     ,  emp_b_temp(jpi,jpj),      & 
    1058          &      emp_temp(jpi,jpj)           ,  sfx_temp(jpi,jpj)  ,      & 
     1058         &      emp_temp(jpi,jpj)           ,  fmmflx_temp(jpi,jpj),     & 
    10591059         &      hmld_temp(jpi,jpj)          ,  qsr_temp(jpi,jpj) ,       & 
    10601060         &      fr_i_temp(jpi,jpj)          ,  fr_i_tm(jpi,jpj) ,        & 
     
    11041104         &      sshv_n_tm(jpi,jpj)          ,  sshv_b_hold(jpi,jpj),     & 
    11051105         &      tsn_tm(jpi,jpj,jpk,2)       ,                            & 
    1106          &      emp_tm(jpi,jpj)             ,  sfx_tm(jpi,jpj)  ,        & 
     1106         &      emp_tm(jpi,jpj)             ,  fmmflx_tm(jpi,jpj)  ,     & 
    11071107         &      emp_b_hold(jpi,jpj)         ,                            & 
    11081108         &      hmld_tm(jpi,jpj)            ,  qsr_tm(jpi,jpj) ,         & 
Note: See TracChangeset for help on using the changeset viewer.