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

Ignore:
Timestamp:
2020-02-12T15:39:06+01:00 (4 years ago)
Author:
acc
Message:

The big one. Merging all 2019 developments from the option 1 branch back onto the trunk.

This changeset reproduces 2019/dev_r11943_MERGE_2019 on the trunk using a 2-URL merge
onto a working copy of the trunk. I.e.:

svn merge --ignore-ancestry \

svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/trunk \
svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/branches/2019/dev_r11943_MERGE_2019 ./

The --ignore-ancestry flag avoids problems that may otherwise arise from the fact that
the merge history been trunk and branch may have been applied in a different order but
care has been taken before this step to ensure that all applicable fixes and updates
are present in the merge branch.

The trunk state just before this step has been branched to releases/release-4.0-HEAD
and that branch has been immediately tagged as releases/release-4.0.2. Any fixes
or additions in response to tickets on 4.0, 4.0.1 or 4.0.2 should be done on
releases/release-4.0-HEAD. From now on future 'point' releases (e.g. 4.0.2) will
remain unchanged with periodic releases as needs demand. Note release-4.0-HEAD is a
transitional naming convention. Future full releases, say 4.2, will have a release-4.2
branch which fulfills this role and the first point release (e.g. 4.2.0) will be made
immediately following the release branch creation.

2020 developments can be started from any trunk revision later than this one.

Location:
NEMO/trunk
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk

    • Property svn:externals
      •  

        old new  
        33^/utils/build/mk@HEAD         mk 
        44^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
         5^/vendors/AGRIF/dev_r11615_ENHANCE-04_namelists_as_internalfiles_agrif@HEAD      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
  • NEMO/trunk/src/TOP/PISCES/SED/oce_sed.F90

    r10362 r12377  
    1313   USE dom_oce , ONLY :   glamt     =>   glamt          !: longitude of t-point (degre) 
    1414   USE dom_oce , ONLY :   gphit     =>   gphit          !: latitude  of t-point (degre) 
    15    USE dom_oce , ONLY :   e3t_n     =>   e3t_n          !: latitude  of t-point (degre) 
     15   USE dom_oce , ONLY :   e3t       =>   e3t            !: latitude  of t-point (degre) 
    1616   USE dom_oce , ONLY :   e3t_1d    =>   e3t_1d         !: reference depth of t-points (m) 
    1717   USE dom_oce , ONLY :   gdepw_0   =>   gdepw_0        !: reference depth of t-points (m) 
     
    2626   !                                !: that may have been run with different time steps. 
    2727 
    28    USE oce     , ONLY :  tsn        =>   tsn             !: pot. temperature (celsius) and salinity (psu) 
    29    USE trc     , ONLY :  trb        =>   trb             !: pot. temperature (celsius) and salinity (psu) 
     28   USE oce     , ONLY :   ts        =>   ts              !: pot. temperature (celsius) and salinity (psu) 
     29   USE trc     , ONLY :   tr        =>   tr              !: pot. temperature (celsius) and salinity (psu) 
    3030 
    3131   USE sms_pisces, ONLY : wsbio4    =>   wsbio4          !: sinking flux for POC 
    3232   USE sms_pisces, ONLY : wsbio3    =>   wsbio3          !: sinking flux for GOC 
    33    USE sms_pisces, ONLY : wsbio2    =>   wsbio2           !: sinking flux for calcite 
     33   USE sms_pisces, ONLY : wsbio2    =>   wsbio2          !: sinking flux for calcite 
    3434   USE sms_pisces, ONLY : wsbio     =>   wsbio           !: sinking flux for calcite 
    3535   USE sms_pisces, ONLY : ln_p5z    =>   ln_p5z          !: PISCES-QUOTA flag 
     
    4949   USE p4zche, ONLY     : sulfat    =>   sulfat          !: Chemical constants   
    5050   USE p4zche, ONLY     : sio3eq    =>   sio3eq          !: Chemical constants   
    51    USE p4zsbc, ONLY     : dust      =>   dust 
    52    USE trc       , ONLY : r2dttrc   =>   r2dttrc 
     51   USE p4zbc, ONLY     : dust      =>   dust 
     52   USE trc  , ONLY : r2dttrc   =>   r2dttrc 
    5353 
    5454END MODULE oce_sed 
  • NEMO/trunk/src/TOP/PISCES/SED/sedchem.F90

    r10356 r12377  
    2323   REAL(wp), PARAMETER :: pp_rdel_ah_target = 1.E-4_wp 
    2424 
     25   !! * Substitutions 
     26#  include "do_loop_substitute.h90" 
    2527   !! * Module variables 
    2628   REAL(wp) :: & 
     
    136138         CALL sed_chem_cst 
    137139      ELSE 
    138          DO jj = 1,jpj 
    139             DO ji = 1, jpi 
    140                ikt = mbkt(ji,jj)  
    141                IF ( tmask(ji,jj,ikt) == 1 ) THEN 
    142                   zchem_data(ji,jj,1) = ak13  (ji,jj,ikt) 
    143                   zchem_data(ji,jj,2) = ak23  (ji,jj,ikt) 
    144                   zchem_data(ji,jj,3) = akb3  (ji,jj,ikt) 
    145                   zchem_data(ji,jj,4) = akw3  (ji,jj,ikt) 
    146                   zchem_data(ji,jj,5) = aksp  (ji,jj,ikt) 
    147                   zchem_data(ji,jj,6) = borat (ji,jj,ikt) 
    148                   zchem_data(ji,jj,7) = ak1p3 (ji,jj,ikt) 
    149                   zchem_data(ji,jj,8) = ak2p3 (ji,jj,ikt) 
    150                   zchem_data(ji,jj,9) = ak3p3 (ji,jj,ikt) 
    151                   zchem_data(ji,jj,10)= aksi3 (ji,jj,ikt) 
    152                   zchem_data(ji,jj,11)= sio3eq(ji,jj,ikt) 
    153                   zchem_data(ji,jj,12)= aks3  (ji,jj,ikt) 
    154                   zchem_data(ji,jj,13)= akf3  (ji,jj,ikt) 
    155                   zchem_data(ji,jj,14)= sulfat(ji,jj,ikt) 
    156                   zchem_data(ji,jj,15)= fluorid(ji,jj,ikt) 
    157                ENDIF 
    158             ENDDO 
    159          ENDDO 
     140         DO_2D_11_11 
     141            ikt = mbkt(ji,jj)  
     142            IF ( tmask(ji,jj,ikt) == 1 ) THEN 
     143               zchem_data(ji,jj,1) = ak13  (ji,jj,ikt) 
     144               zchem_data(ji,jj,2) = ak23  (ji,jj,ikt) 
     145               zchem_data(ji,jj,3) = akb3  (ji,jj,ikt) 
     146               zchem_data(ji,jj,4) = akw3  (ji,jj,ikt) 
     147               zchem_data(ji,jj,5) = aksp  (ji,jj,ikt) 
     148               zchem_data(ji,jj,6) = borat (ji,jj,ikt) 
     149               zchem_data(ji,jj,7) = ak1p3 (ji,jj,ikt) 
     150               zchem_data(ji,jj,8) = ak2p3 (ji,jj,ikt) 
     151               zchem_data(ji,jj,9) = ak3p3 (ji,jj,ikt) 
     152               zchem_data(ji,jj,10)= aksi3 (ji,jj,ikt) 
     153               zchem_data(ji,jj,11)= sio3eq(ji,jj,ikt) 
     154               zchem_data(ji,jj,12)= aks3  (ji,jj,ikt) 
     155               zchem_data(ji,jj,13)= akf3  (ji,jj,ikt) 
     156               zchem_data(ji,jj,14)= sulfat(ji,jj,ikt) 
     157               zchem_data(ji,jj,15)= fluorid(ji,jj,ikt) 
     158            ENDIF 
     159         END_2D 
    160160 
    161161         CALL pack_arr ( jpoce, ak1s  (1:jpoce), zchem_data(1:jpi,1:jpj,1) , iarroce(1:jpoce) ) 
  • NEMO/trunk/src/TOP/PISCES/SED/seddta.F90

    r10362 r12377  
    2222   REAL(wp) ::  conv2    ! [kg/m2/month]-->[g/cm2/s] ( 1 month has 30 days ) 
    2323 
     24   !! * Substitutions 
     25#  include "do_loop_substitute.h90" 
    2426   !! $Id$ 
    2527CONTAINS 
     
    2931   !!--------------------------------------------------------------------------- 
    3032 
    31    SUBROUTINE sed_dta( kt ) 
     33   SUBROUTINE sed_dta( kt, Kbb, Kmm ) 
    3234      !!---------------------------------------------------------------------- 
    3335      !!                   ***  ROUTINE sed_dta  *** 
     
    4345 
    4446      !! Arguments 
    45       INTEGER, INTENT(in) ::  kt    ! time-step 
     47      INTEGER, INTENT(in) ::  kt         ! time-step 
     48      INTEGER, INTENT(in) ::  Kbb, Kmm   ! time level indices 
    4649 
    4750      !! * Local declarations 
     
    9295      !    ----------------------------------------------------------- 
    9396      IF (ln_sediment_offline) THEN 
    94          DO jj = 1, jpj 
    95             DO ji = 1, jpi 
    96                ikt = mbkt(ji,jj) 
    97                zwsbio4(ji,jj) = wsbio2 / rday 
    98                zwsbio3(ji,jj) = wsbio  / rday 
    99             END DO 
    100          END DO 
     97         DO_2D_11_11 
     98            ikt = mbkt(ji,jj) 
     99            zwsbio4(ji,jj) = wsbio2 / rday 
     100            zwsbio3(ji,jj) = wsbio  / rday 
     101         END_2D 
    101102      ELSE 
    102          DO jj = 1, jpj 
    103             DO ji = 1, jpi 
    104                ikt = mbkt(ji,jj) 
    105                zdep = e3t_n(ji,jj,ikt) / r2dttrc 
    106                zwsbio4(ji,jj) = MIN( 0.99 * zdep, wsbio4(ji,jj,ikt) / rday ) 
    107                zwsbio3(ji,jj) = MIN( 0.99 * zdep, wsbio3(ji,jj,ikt) / rday ) 
    108             END DO 
    109          END DO 
     103         DO_2D_11_11 
     104            ikt = mbkt(ji,jj) 
     105            zdep = e3t(ji,jj,ikt,Kmm) / r2dttrc 
     106            zwsbio4(ji,jj) = MIN( 0.99 * zdep, wsbio4(ji,jj,ikt) / rday ) 
     107            zwsbio3(ji,jj) = MIN( 0.99 * zdep, wsbio3(ji,jj,ikt) / rday ) 
     108         END_2D 
    110109      ENDIF 
    111110 
    112111      trc_data(:,:,:) = 0. 
    113       DO jj = 1,jpj 
    114          DO ji = 1, jpi 
    115             ikt = mbkt(ji,jj) 
    116             IF ( tmask(ji,jj,ikt) == 1 ) THEN 
    117                trc_data(ji,jj,1)   = trb(ji,jj,ikt,jpsil) 
    118                trc_data(ji,jj,2)   = trb(ji,jj,ikt,jpoxy) 
    119                trc_data(ji,jj,3)   = trb(ji,jj,ikt,jpdic) 
    120                trc_data(ji,jj,4)   = trb(ji,jj,ikt,jpno3) / 7.625 
    121                trc_data(ji,jj,5)   = trb(ji,jj,ikt,jppo4) / 122. 
    122                trc_data(ji,jj,6)   = trb(ji,jj,ikt,jptal) 
    123                trc_data(ji,jj,7)   = trb(ji,jj,ikt,jpnh4) / 7.625 
    124                trc_data(ji,jj,8)   = 0.0 
    125                trc_data(ji,jj,9)   = 28.0E-3 
    126                trc_data(ji,jj,10)  = trb(ji,jj,ikt,jpfer) 
    127                trc_data(ji,jj,11 ) = MIN(trb(ji,jj,ikt,jpgsi), 1E-4) * zwsbio4(ji,jj) * 1E3 
    128                trc_data(ji,jj,12 ) = MIN(trb(ji,jj,ikt,jppoc), 1E-4) * zwsbio3(ji,jj) * 1E3 
    129                trc_data(ji,jj,13 ) = MIN(trb(ji,jj,ikt,jpgoc), 1E-4) * zwsbio4(ji,jj) * 1E3 
    130                trc_data(ji,jj,14)  = MIN(trb(ji,jj,ikt,jpcal), 1E-4) * zwsbio4(ji,jj) * 1E3 
    131                trc_data(ji,jj,15)  = tsn(ji,jj,ikt,jp_tem) 
    132                trc_data(ji,jj,16)  = tsn(ji,jj,ikt,jp_sal) 
    133                trc_data(ji,jj,17 ) = ( trb(ji,jj,ikt,jpsfe) * zwsbio3(ji,jj) + trb(ji,jj,ikt,jpbfe)  & 
    134                &                     * zwsbio4(ji,jj)  ) * 1E3 / ( trc_data(ji,jj,12 ) + trc_data(ji,jj,13 ) + rtrn ) 
    135                trc_data(ji,jj,17 ) = MIN(1E-3, trc_data(ji,jj,17 ) ) 
    136             ENDIF 
    137          ENDDO 
    138       ENDDO 
     112      DO_2D_11_11 
     113         ikt = mbkt(ji,jj) 
     114         IF ( tmask(ji,jj,ikt) == 1 ) THEN 
     115            trc_data(ji,jj,1)   = tr(ji,jj,ikt,jpsil,Kbb) 
     116            trc_data(ji,jj,2)   = tr(ji,jj,ikt,jpoxy,Kbb) 
     117            trc_data(ji,jj,3)   = tr(ji,jj,ikt,jpdic,Kbb) 
     118            trc_data(ji,jj,4)   = tr(ji,jj,ikt,jpno3,Kbb) / 7.625 
     119            trc_data(ji,jj,5)   = tr(ji,jj,ikt,jppo4,Kbb) / 122. 
     120            trc_data(ji,jj,6)   = tr(ji,jj,ikt,jptal,Kbb) 
     121            trc_data(ji,jj,7)   = tr(ji,jj,ikt,jpnh4,Kbb) / 7.625 
     122            trc_data(ji,jj,8)   = 0.0 
     123            trc_data(ji,jj,9)   = 28.0E-3 
     124            trc_data(ji,jj,10)  = tr(ji,jj,ikt,jpfer,Kbb) 
     125            trc_data(ji,jj,11 ) = MIN(tr(ji,jj,ikt,jpgsi,Kbb), 1E-4) * zwsbio4(ji,jj) * 1E3 
     126            trc_data(ji,jj,12 ) = MIN(tr(ji,jj,ikt,jppoc,Kbb), 1E-4) * zwsbio3(ji,jj) * 1E3 
     127            trc_data(ji,jj,13 ) = MIN(tr(ji,jj,ikt,jpgoc,Kbb), 1E-4) * zwsbio4(ji,jj) * 1E3 
     128            trc_data(ji,jj,14)  = MIN(tr(ji,jj,ikt,jpcal,Kbb), 1E-4) * zwsbio4(ji,jj) * 1E3 
     129            trc_data(ji,jj,15)  = ts(ji,jj,ikt,jp_tem,Kmm) 
     130            trc_data(ji,jj,16)  = ts(ji,jj,ikt,jp_sal,Kmm) 
     131            trc_data(ji,jj,17 ) = ( tr(ji,jj,ikt,jpsfe,Kbb) * zwsbio3(ji,jj) + tr(ji,jj,ikt,jpbfe,Kbb)  & 
     132            &                     * zwsbio4(ji,jj)  ) * 1E3 / ( trc_data(ji,jj,12 ) + trc_data(ji,jj,13 ) + rtrn ) 
     133            trc_data(ji,jj,17 ) = MIN(1E-3, trc_data(ji,jj,17 ) ) 
     134         ENDIF 
     135      END_2D 
    139136 
    140137      ! Pore water initial concentration [mol/l] in  k=1 
  • NEMO/trunk/src/TOP/PISCES/SED/sedini.F90

    r11536 r12377  
    1313   USE sedarr 
    1414   USE sedadv 
    15    USE trc_oce, ONLY : nn_dttrc 
    1615   USE trcdmp_sed 
    1716   USE trcdta 
     
    2322   PRIVATE 
    2423 
     24   !! * Substitutions 
     25#  include "do_loop_substitute.h90" 
    2526   !! Module variables 
    2627   REAL(wp)    ::  & 
     
    134135      ! Determination of sediments number of points and allocate global variables 
    135136      epkbot(:,:) = 0. 
    136       DO jj = 1, jpj 
    137          DO ji = 1, jpi 
    138             ikt = mbkt(ji,jj)  
    139             IF( tmask(ji,jj,ikt) == 1 ) epkbot(ji,jj) = e3t_1d(ikt) 
    140             gdepbot(ji,jj) = gdepw_0(ji,jj,ikt) 
    141          ENDDO 
    142       ENDDO 
     137      DO_2D_11_11 
     138         ikt = mbkt(ji,jj)  
     139         IF( tmask(ji,jj,ikt) == 1 ) epkbot(ji,jj) = e3t_1d(ikt) 
     140         gdepbot(ji,jj) = gdepw_0(ji,jj,ikt) 
     141      END_2D 
    143142 
    144143      ! computation of total number of ocean points 
     
    248247      ! Computation of 1D array of sediments points 
    249248      indoce = 0 
    250       DO jj = 1, jpj 
    251          DO ji = 1, jpi 
    252             IF (  epkbot(ji,jj) > 0. ) THEN 
    253                indoce          = indoce + 1 
    254                iarroce(indoce) = (jj - 1) * jpi + ji 
    255             ENDIF 
    256          END DO 
    257       END DO 
     249      DO_2D_11_11 
     250         IF (  epkbot(ji,jj) > 0. ) THEN 
     251            indoce          = indoce + 1 
     252            iarroce(indoce) = (jj - 1) * jpi + ji 
     253         ENDIF 
     254      END_2D 
    258255 
    259256      IF ( indoce .EQ. 0 ) THEN 
     
    406403      !!---------------------------------------------------------------------- 
    407404 
    408       INTEGER ::   numnamsed_ref = -1           !! Logical units for namelist sediment 
    409       INTEGER ::   numnamsed_cfg = -1           !! Logical units for namelist sediment 
     405      CHARACTER(:), ALLOCATABLE ::   numnamsed_ref           !! Character buffer for reference namelist sediment 
     406      CHARACTER(:), ALLOCATABLE ::   numnamsed_cfg           !! Character buffer for configuration namelist sediment 
    410407      INTEGER :: ios                 ! Local integer output status for namelist read 
    411408      CHARACTER(LEN=20)   ::   clname 
     
    452449      IF(lwp) WRITE(numsed,*) ' sed_init_nam : read SEDIMENT namelist' 
    453450      IF(lwp) WRITE(numsed,*) ' ~~~~~~~~~~~~~~' 
    454       CALL ctl_opn( numnamsed_ref, TRIM( clname )//'_ref', 'OLD'    , 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
    455       CALL ctl_opn( numnamsed_cfg, TRIM( clname )//'_cfg', 'OLD'    , 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
     451      CALL load_nml( numnamsed_ref, TRIM( clname )//'_ref', numout, lwm ) 
     452      CALL load_nml( numnamsed_cfg, TRIM( clname )//'_cfg', numout, lwm ) 
    456453 
    457454      nitsed000 = nittrc000 
    458455      nitsedend = nitend 
    459456      ! Namelist nam_run 
    460       REWIND( numnamsed_ref )              ! Namelist nam_run in reference namelist : Pisces variables 
    461457      READ  ( numnamsed_ref, nam_run, IOSTAT = ios, ERR = 901) 
    462458901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_run in reference namelist' ) 
    463459 
    464       REWIND( numnamsed_cfg )              ! Namelist nam_run in reference namelist : Pisces variables 
    465460      READ  ( numnamsed_cfg, nam_run, IOSTAT = ios, ERR = 902) 
    466461902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_run in configuration namelist' ) 
     
    474469      IF ( ln_p5z .AND. ln_sed_2way ) CALL ctl_stop( '2 ways coupling with sediment cannot be activated with PISCES-QUOTA' ) 
    475470 
    476       REWIND( numnamsed_ref )              ! Namelist nam_geom in reference namelist : Pisces variables 
    477471      READ  ( numnamsed_ref, nam_geom, IOSTAT = ios, ERR = 903) 
    478472903   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_geom in reference namelist' ) 
    479473 
    480       REWIND( numnamsed_cfg )              ! Namelist nam_geom in reference namelist : Pisces variables 
    481474      READ  ( numnamsed_cfg, nam_geom, IOSTAT = ios, ERR = 904) 
    482475904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_geom in configuration namelist' ) 
     
    497490      dtsed = r2dttrc 
    498491 
    499       REWIND( numnamsed_ref )              ! Namelist nam_trased in reference namelist : Pisces variables 
    500492      READ  ( numnamsed_ref, nam_trased, IOSTAT = ios, ERR = 905) 
    501493905   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_trased in reference namelist' ) 
    502494 
    503       REWIND( numnamsed_cfg )              ! Namelist nam_trased in reference namelist : Pisces variables 
    504495      READ  ( numnamsed_cfg, nam_trased, IOSTAT = ios, ERR = 906) 
    505496906   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_trased in configuration namelist' ) 
     
    530521      ENDIF 
    531522 
    532       REWIND( numnamsed_ref )              ! Namelist nam_diased in reference namelist : Pisces variables 
    533523      READ  ( numnamsed_ref, nam_diased, IOSTAT = ios, ERR = 907) 
    534524907   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_diased in reference namelist' ) 
    535525 
    536       REWIND( numnamsed_cfg )              ! Namelist nam_diased in reference namelist : Pisces variables 
    537526      READ  ( numnamsed_cfg, nam_diased, IOSTAT = ios, ERR = 908) 
    538527908   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_diased in configuration namelist' ) 
     
    572561      ! Inorganic chemistry parameters 
    573562      !---------------------------------- 
    574       REWIND( numnamsed_ref )              ! Namelist nam_inorg in reference namelist : Pisces variables 
    575563      READ  ( numnamsed_ref, nam_inorg, IOSTAT = ios, ERR = 909) 
    576564909   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_inorg in reference namelist' ) 
    577565 
    578       REWIND( numnamsed_cfg )              ! Namelist nam_inorg in reference namelist : Pisces variables 
    579566      READ  ( numnamsed_cfg, nam_inorg, IOSTAT = ios, ERR = 910) 
    580567910   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_inorg in configuration namelist' ) 
     
    598585      ! Additional parameter linked to POC/O2/No3/Po4 
    599586      !---------------------------------------------- 
    600       REWIND( numnamsed_ref )              ! Namelist nam_poc in reference namelist : Pisces variables 
    601587      READ  ( numnamsed_ref, nam_poc, IOSTAT = ios, ERR = 911) 
    602588911   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_poc in reference namelist' ) 
    603589 
    604       REWIND( numnamsed_cfg )              ! Namelist nam_poc in reference namelist : Pisces variables 
    605590      READ  ( numnamsed_cfg, nam_poc, IOSTAT = ios, ERR = 912) 
    606591912   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_poc in configuration namelist' ) 
     
    650635      ! Bioturbation parameter 
    651636      !------------------------ 
    652       REWIND( numnamsed_ref )              ! Namelist nam_btb in reference namelist : Pisces variables 
    653637      READ  ( numnamsed_ref, nam_btb, IOSTAT = ios, ERR = 913) 
    654638913   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_btb in reference namelist' ) 
    655639 
    656       REWIND( numnamsed_cfg )              ! Namelist nam_btb in reference namelist : Pisces variables 
    657640      READ  ( numnamsed_cfg, nam_btb, IOSTAT = ios, ERR = 914) 
    658641914   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_btb in configuration namelist' ) 
     
    671654      ! Initial value (t=0) for sediment pore water and solid components 
    672655      !---------------------------------------------------------------- 
    673       REWIND( numnamsed_ref )              ! Namelist nam_rst in reference namelist : Pisces variables 
    674656      READ  ( numnamsed_ref, nam_rst, IOSTAT = ios, ERR = 915) 
    675657915   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_rst in reference namelist' ) 
    676658 
    677       REWIND( numnamsed_cfg )              ! Namelist nam_rst in reference namelist : Pisces variables 
    678659      READ  ( numnamsed_cfg, nam_rst, IOSTAT = ios, ERR = 916) 
    679660916   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_rst in configuration namelist' ) 
     
    684665         WRITE(numsed,*) ' ' 
    685666      ENDIF 
    686       nn_dtsed = nn_dttrc 
    687  
    688       CLOSE( numnamsed_cfg ) 
    689       CLOSE( numnamsed_ref ) 
     667      nn_dtsed = 1 
     668 
    690669 
    691670   END SUBROUTINE sed_init_nam 
  • NEMO/trunk/src/TOP/PISCES/SED/sedinitrc.F90

    r10225 r12377  
    3333 
    3434 
    35    SUBROUTINE sed_initrc 
     35   SUBROUTINE sed_initrc( Kbb, Kmm ) 
    3636      !!---------------------------------------------------------------------- 
    3737      !!                   ***  ROUTINE sed_init  *** 
     
    5050      !!        !  06-07  (C. Ethe)  Re-organization 
    5151      !!---------------------------------------------------------------------- 
     52      INTEGER, INTENT(in)  ::  Kbb, Kmm      ! time level indices 
    5253      INTEGER :: ji, jj, ikt 
    5354      !!---------------------------------------------------------------------- 
     
    6566      ! ( only clay or reading restart file ) 
    6667      !--------------------------------------- 
    67       CALL sed_init_data 
     68      CALL sed_init_data( Kbb, Kmm ) 
    6869 
    6970 
     
    7475 
    7576 
    76    SUBROUTINE sed_init_data 
     77   SUBROUTINE sed_init_data( Kbb, Kmm ) 
    7778      !!---------------------------------------------------------------------- 
    7879      !!                   ***  ROUTINE sed_init_data  *** 
     
    8586      !!        !  06-07  (C. Ethe)  original 
    8687      !!---------------------------------------------------------------------- 
     88      INTEGER, INTENT(in)  ::  Kbb, Kmm      ! time level indices 
    8789  
    8890      ! local variables 
     
    128130 
    129131      ! Load initial Pisces Data for bot. wat. Chem and fluxes 
    130       CALL sed_dta ( nitsed000 )  
     132      CALL sed_dta ( nitsed000, Kbb, Kmm )  
    131133 
    132134      ! Initialization of chemical constants 
  • NEMO/trunk/src/TOP/PISCES/SED/sedmodel.F90

    r10222 r12377  
    1616CONTAINS 
    1717 
    18    SUBROUTINE sed_model ( kt ) 
     18   SUBROUTINE sed_model ( kt, Kbb, Kmm, Krhs ) 
    1919      !!--------------------------------------------------------------------- 
    2020      !!                  ***  ROUTINE sed_model  *** 
     
    2929      !!        !  07-02 (C. Ethe)  Original 
    3030      !!---------------------------------------------------------------------- 
    31       INTEGER, INTENT(in) ::   kt       ! number of iteration 
     31      INTEGER, INTENT(in) ::   kt               ! number of iteration 
     32      INTEGER, INTENT(in) ::   Kbb, Kmm, Krhs   ! time level indices 
    3233 
    3334 
    3435      IF( ln_timing )  CALL timing_start('sed_model') 
    3536 
    36       IF( kt == nittrc000 ) CALL sed_initrc       ! Initialization of sediment model 
    37                             CALL sed_stp( kt )  ! Time stepping of Sediment model 
     37      IF( kt == nittrc000 ) CALL sed_initrc( Kbb, Kmm )         ! Initialization of sediment model 
     38                            CALL sed_stp( kt, Kbb, Kmm, Krhs )  ! Time stepping of Sediment model 
    3839 
    3940      IF( ln_timing )  CALL timing_stop('sed_model') 
  • NEMO/trunk/src/TOP/PISCES/SED/sedrst.F90

    r11536 r12377  
    1010   USE sed 
    1111   USE sedarr 
    12    USE trc_oce, ONLY : l_offline, nn_dttrc 
     12   USE trc_oce, ONLY : l_offline 
    1313   USE phycst , ONLY : rday 
    1414   USE iom 
     
    6666 
    6767      ! to get better performances with NetCDF format: 
    68       ! we open and define the tracer restart file one tracer time step before writing the data (-> at nitrst - 2*nn_dttrc + 1) 
    69       ! except if we write tracer restart files every tracer time step or if a tracer restart file was writen at nitend - 2*nn_dttrc + 1 
     68      ! we open and define the tracer restart file one tracer time step before writing the data (-> at nitrst - 1) 
     69      ! except if we write tracer restart files every tracer time step or if a tracer restart file was writen at nitend - 1 
    7070      IF( kt == nitrst - 2*nn_dtsed .OR. nn_stock == nn_dtsed .OR. ( kt == nitend - nn_dtsed .AND. .NOT. lrst_sed ) ) THEN 
    7171         ! beware of the format used to write kt (default is i8.8, that should be large enough) 
  • NEMO/trunk/src/TOP/PISCES/SED/sedsfc.F90

    r10222 r12377  
    1111   PUBLIC sed_sfc 
    1212 
     13   !! * Substitutions 
     14#  include "do_loop_substitute.h90" 
    1315   !! $Id$ 
    1416CONTAINS 
    1517 
    16    SUBROUTINE sed_sfc( kt ) 
     18   SUBROUTINE sed_sfc( kt, Kbb ) 
    1719      !!--------------------------------------------------------------------- 
    1820      !!                  ***  ROUTINE sed_sfc *** 
     
    2628      !!* Arguments 
    2729      INTEGER, INTENT(in) ::  kt              ! time step 
     30      INTEGER, INTENT(in) ::  Kbb             ! time index 
    2831 
    2932      ! * local variables 
     
    4548 
    4649 
    47       DO jj = 1,jpj 
    48          DO ji = 1, jpi 
    49             ikt = mbkt(ji,jj) 
    50             IF ( tmask(ji,jj,ikt) == 1 ) THEN 
    51                trb(ji,jj,ikt,jptal) = trc_data(ji,jj,1) 
    52                trb(ji,jj,ikt,jpdic) = trc_data(ji,jj,2) 
    53                trb(ji,jj,ikt,jpno3) = trc_data(ji,jj,3) * 7.625 
    54                trb(ji,jj,ikt,jppo4) = trc_data(ji,jj,4) * 122. 
    55                trb(ji,jj,ikt,jpoxy) = trc_data(ji,jj,5) 
    56                trb(ji,jj,ikt,jpsil) = trc_data(ji,jj,6) 
    57                trb(ji,jj,ikt,jpnh4) = trc_data(ji,jj,7) * 7.625 
    58                trb(ji,jj,ikt,jpfer) = trc_data(ji,jj,8) 
    59             ENDIF 
    60          ENDDO 
    61       ENDDO 
     50      DO_2D_11_11 
     51         ikt = mbkt(ji,jj) 
     52         IF ( tmask(ji,jj,ikt) == 1 ) THEN 
     53            tr(ji,jj,ikt,jptal,Kbb) = trc_data(ji,jj,1) 
     54            tr(ji,jj,ikt,jpdic,Kbb) = trc_data(ji,jj,2) 
     55            tr(ji,jj,ikt,jpno3,Kbb) = trc_data(ji,jj,3) * 7.625 
     56            tr(ji,jj,ikt,jppo4,Kbb) = trc_data(ji,jj,4) * 122. 
     57            tr(ji,jj,ikt,jpoxy,Kbb) = trc_data(ji,jj,5) 
     58            tr(ji,jj,ikt,jpsil,Kbb) = trc_data(ji,jj,6) 
     59            tr(ji,jj,ikt,jpnh4,Kbb) = trc_data(ji,jj,7) * 7.625 
     60            tr(ji,jj,ikt,jpfer,Kbb) = trc_data(ji,jj,8) 
     61         ENDIF 
     62      END_2D 
    6263 
    6364      IF( ln_timing )  CALL timing_stop('sed_sfc') 
  • NEMO/trunk/src/TOP/PISCES/SED/sedstp.F90

    r10222 r12377  
    2929CONTAINS 
    3030 
    31    SUBROUTINE sed_stp ( kt ) 
     31   SUBROUTINE sed_stp ( kt, Kbb, Kmm, Krhs ) 
    3232      !!--------------------------------------------------------------------- 
    3333      !!                  ***  ROUTINE sed_stp  *** 
     
    4444      !!        !  06-04 (C. Ethe)  Re-organization 
    4545      !!---------------------------------------------------------------------- 
    46       INTEGER, INTENT(in) ::   kt       ! number of iteration 
     46      INTEGER, INTENT(in) ::   kt                ! number of iteration 
     47      INTEGER, INTENT(in) ::   Kbb, Kmm, Krhs    ! time level indices 
    4748      INTEGER :: ji,jk,js,jn,jw 
    4849      !!---------------------------------------------------------------------- 
     
    5253      IF( lrst_sed )            CALL sed_rst_cal  ( kt, 'WRITE' )   ! calenda 
    5354 
    54       IF(ln_sediment_offline)   CALL trc_dmp_sed  ( kt ) 
     55      IF(ln_sediment_offline)   CALL trc_dmp_sed  ( kt, Kbb, Kmm, Krhs ) 
    5556 
    5657      dtsed  = r2dttrc 
    5758!      dtsed2 = dtsed 
    5859      IF (kt /= nitsed000) THEN 
    59          CALL sed_dta( kt )       ! Load  Data for bot. wat. Chem and fluxes 
     60         CALL sed_dta( kt, Kbb, Kmm )       ! Load  Data for bot. wat. Chem and fluxes 
    6061      ENDIF 
    6162 
     
    8081         CALL sed_mbc( kt )         ! cumulation for mass balance calculation 
    8182 
    82          IF (ln_sed_2way) CALL sed_sfc( kt )         ! Give back new bottom wat chem to tracer model 
     83         IF (ln_sed_2way) CALL sed_sfc( kt, Kbb )         ! Give back new bottom wat chem to tracer model 
    8384      ENDIF 
    8485      CALL sed_wri( kt )         ! outputs 
  • NEMO/trunk/src/TOP/PISCES/SED/trcdmp_sed.F90

    r10225 r12377  
    3535 
    3636   !! * Substitutions 
    37 #  include "vectopt_loop_substitute.h90" 
     37#  include "do_loop_substitute.h90" 
    3838   !!---------------------------------------------------------------------- 
    3939   !! NEMO/TOP 3.3 , NEMO Consortium (2010) 
     
    5454 
    5555 
    56    SUBROUTINE trc_dmp_sed( kt ) 
     56   SUBROUTINE trc_dmp_sed( kt, Kbb, Kmm, Krhs ) 
    5757      !!---------------------------------------------------------------------- 
    5858      !!                   ***  ROUTINE trc_dmp_sed  *** 
     
    6464      !! ** Method  :   Newtonian damping towards trdta computed  
    6565      !!      and add to the general tracer trends: 
    66       !!                     trn = tra + restotr * (trdta - trb) 
     66      !!                     tr(Kmm) = tr(Krhs) + restotr * (trdta - tr(Kbb)) 
    6767      !!         The trend is computed either throughout the water column 
    6868      !!      (nlmdmptr=0) or in area of weak vertical mixing (nlmdmptr=1) or 
    6969      !!      below the well mixed layer (nlmdmptr=2) 
    7070      !! 
    71       !! ** Action  : - update the tracer trends tra with the newtonian  
     71      !! ** Action  : - update the tracer trends tr(Krhs) with the newtonian  
    7272      !!                damping trends. 
    7373      !!              - save the trends ('key_trdmxl_trc') 
    7474      !!---------------------------------------------------------------------- 
    75       INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
     75      INTEGER, INTENT(in) ::   kt              ! ocean time-step index 
     76      INTEGER, INTENT(in) ::   Kbb, Kmm, Krhs  ! time level index 
    7677      ! 
    7778      INTEGER ::   ji, jj, jk, jn, jl, ikt   ! dummy loop indices 
     
    9091               ! 
    9192               jl = n_trc_index(jn)  
    92                CALL trc_dta( kt, sf_trcdta(jl), rf_trfac(jl), ztrcdta )   ! read tracer data at nit000 
     93               CALL trc_dta( kt, Kmm, sf_trcdta(jl), rf_trfac(jl), ztrcdta )   ! read tracer data at nit000 
    9394               ! 
    94                DO jj = 1, jpj 
    95                   DO ji = 1, jpi   ! vector opt. 
    96                      ikt = mbkt(ji,jj) 
    97                      trb(ji,jj,ikt,jn) = ztrcdta(ji,jj,ikt) + ( trb(ji,jj,ikt,jn) -  ztrcdta(ji,jj,ikt) )     & 
    98                      &                  * exp( -restosed(ji,jj,ikt) * dtsed ) 
    99                   END DO 
    100                END DO 
     95               DO_2D_11_11 
     96                  ikt = mbkt(ji,jj) 
     97                  tr(ji,jj,ikt,jn,Kbb) = ztrcdta(ji,jj,ikt) + ( tr(ji,jj,ikt,jn,Kbb) -  ztrcdta(ji,jj,ikt) )     & 
     98                  &                  * exp( -restosed(ji,jj,ikt) * dtsed ) 
     99               END_2D 
    101100               !  
    102101            ENDIF 
     
    106105      ! 
    107106      !                                          ! print mean trends (used for debugging) 
    108       IF( ln_ctl ) THEN 
     107      IF( sn_cfctl%l_prttrc ) THEN 
    109108         WRITE(charout, FMT="('dmp ')") 
    110109         CALL prt_ctl_trc_info(charout) 
    111          CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
     110         CALL prt_ctl_trc( tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
    112111      ENDIF 
    113112      ! 
     
    148147   !!---------------------------------------------------------------------- 
    149148CONTAINS 
    150    SUBROUTINE trc_dmp_sed( kt )        ! Empty routine 
     149   SUBROUTINE trc_dmp_sed( kt, Kbb, Kmm, Krhs )   ! Empty routine 
    151150      INTEGER, INTENT(in) :: kt 
     151      INTEGER, INTENT(in) :: Kbb, Kmm, Krhs 
    152152      WRITE(*,*) 'trc_dmp_sed: You should not have seen this print! error?', kt 
    153153   END SUBROUTINE trc_dmp_sed 
Note: See TracChangeset for help on using the changeset viewer.