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 8979 for branches/2017/dev_r8126_ROBUST08_no_ghost/NEMOGCM/NEMO/TOP_SRC – NEMO

Ignore:
Timestamp:
2017-12-11T17:45:55+01:00 (6 years ago)
Author:
acc
Message:

Branch 2017/dev_r8126_ROBUST08_no_ghost. Merge in trunk changes up to rev 8864 in preparation for the merge. Sette tests OK except for AGRIF restartability but uncertain about the trunks status for this?

Location:
branches/2017/dev_r8126_ROBUST08_no_ghost/NEMOGCM/NEMO/TOP_SRC
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8126_ROBUST08_no_ghost/NEMOGCM/NEMO/TOP_SRC/CFC/trcsms_cfc.F90

    r7646 r8979  
    180180      ! 
    181181      IF( lk_iomput ) THEN 
     182         jl = 0 
    182183         DO jn = jp_cfc0, jp_cfc1 
    183             CALL iom_put( 'qtr_'//ctrcnm(jn) , qtr_cfc (:,:,jn) ) 
    184             CALL iom_put( 'qint_'//ctrcnm(jn), qint_cfc(:,:,jn) ) 
     184            jl = jl + 1 
     185            CALL iom_put( 'qtr_'//TRIM(ctrcnm(jn)) , qtr_cfc (:,:,jl) ) 
     186            CALL iom_put( 'qint_'//TRIM(ctrcnm(jn)), qint_cfc(:,:,jl) ) 
    185187         ENDDO 
    186188      END IF 
  • branches/2017/dev_r8126_ROBUST08_no_ghost/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlim.F90

    r7753 r8979  
    207207                  &                                / ( oxymin + trb(ji,jj,jk,jpoxy) )  ) 
    208208               nitrfac(ji,jj,jk) = MIN( 1., nitrfac(ji,jj,jk) ) 
     209               ! 
     210               ! denitrification factor computed from NO3 levels 
     211               nitrfac2(ji,jj,jk) = MAX( 0.e0,       ( 1.E-6 - trb(ji,jj,jk,jpno3) )  & 
     212                  &                                / ( 1.E-6 + trb(ji,jj,jk,jpno3) ) ) 
     213               nitrfac2(ji,jj,jk) = MIN( 1., nitrfac2(ji,jj,jk) ) 
    209214            END DO 
    210215         END DO 
  • branches/2017/dev_r8126_ROBUST08_no_ghost/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90

    r7753 r8979  
    9595               !  no real reason except that it seems to be more stable and may mimic predation 
    9696               !  --------------------------------------------------------------- 
    97                ztortz2   = mzrat2 * 1.e6 * zfact * trb(ji,jj,jk,jpmes) 
     97               ztortz2   = mzrat2 * 1.e6 * zfact * trb(ji,jj,jk,jpmes)  * (1. - nitrfac(ji,jj,jk) ) 
    9898               ! 
    9999               zcompadi  = MAX( ( trb(ji,jj,jk,jpdia) - xthresh2dia ), 0.e0 ) 
     
    125125               !  ---------------------------------- 
    126126               zgrazffeg = grazflux  * xstep * wsbio4(ji,jj,jk)      & 
    127                &           * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jpgoc) * trb(ji,jj,jk,jpmes) 
     127               &           * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jpgoc) * trb(ji,jj,jk,jpmes) & 
     128               &           * (1. - nitrfac(ji,jj,jk)) 
    128129               zgrazfffg = zgrazffeg * trb(ji,jj,jk,jpbfe) / (trb(ji,jj,jk,jpgoc) + rtrn) 
    129130               zgrazffep = grazflux  * xstep *  wsbio3(ji,jj,jk)     & 
    130                &           * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jppoc) * trb(ji,jj,jk,jpmes) 
     131               &           * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jppoc) * trb(ji,jj,jk,jpmes) & 
     132               &           * (1. - nitrfac(ji,jj,jk)) 
    131133               zgrazfffp = zgrazffep * trb(ji,jj,jk,jpsfe) / (trb(ji,jj,jk,jppoc) + rtrn) 
    132134              ! 
  • branches/2017/dev_r8126_ROBUST08_no_ghost/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmicro.F90

    r7753 r8979  
    9393               !  no real reason except that it seems to be more stable and may mimic predation. 
    9494               !  --------------------------------------------------------------- 
    95                ztortz = mzrat * 1.e6 * zfact * trb(ji,jj,jk,jpzoo) 
     95               ztortz = mzrat * 1.e6 * zfact * trb(ji,jj,jk,jpzoo) * (1. - nitrfac(ji,jj,jk)) 
    9696 
    9797               zcompadi  = MIN( MAX( ( trb(ji,jj,jk,jpdia) - xthreshdia ), 0.e0 ), xsizedia ) 
     
    105105               zdenom    = zfoodlim / ( xkgraz + zfoodlim ) 
    106106               zdenom2   = zdenom / ( zfood + rtrn ) 
    107                zgraze    = grazrat * xstep * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jpzoo)  
     107               zgraze    = grazrat * xstep * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jpzoo) * (1. - nitrfac(ji,jj,jk)) 
    108108 
    109109               zgrazp    = zgraze  * xpref2p * zcompaph  * zdenom2  
  • branches/2017/dev_r8126_ROBUST08_no_ghost/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90

    r7753 r8979  
    6565      REAL(wp) ::   zsatur, zsatur2, znusil, znusil2, zdep, zdepmin, zfactdep 
    6666      REAL(wp) ::   zbactfer, zolimit, zonitr, zrfact2 
     67      REAL(wp) ::   zammonic, zoxyrem 
    6768      REAL(wp) ::   zosil, ztem, zdenitnh4, zolimic, zolimin, zolimip, zdenitrn, zdenitrp 
    6869      CHARACTER (len=25) :: charout 
     
    118119                  ! Ammonification in suboxic waters with denitrification 
    119120                  ! ------------------------------------------------------- 
    120                   denitr(ji,jj,jk)  = MIN(  ( trb(ji,jj,jk,jpno3) - rtrn ) / rdenit,   & 
    121                      &                     zremik * nitrfac(ji,jj,jk) * trb(ji,jj,jk,jpdoc)  ) 
     121                  zammonic = zremik * nitrfac(ji,jj,jk) * trb(ji,jj,jk,jpdoc) 
     122                  denitr(ji,jj,jk)  = zammonic * ( 1. - nitrfac2(ji,jj,jk) ) 
     123                  zoxyrem           = zammonic *        nitrfac2(ji,jj,jk) 
    122124                  ! 
    123125                  zolimi (ji,jj,jk) = MAX( 0.e0, zolimi (ji,jj,jk) ) 
    124126                  denitr (ji,jj,jk) = MAX( 0.e0, denitr (ji,jj,jk) ) 
     127                  zoxyrem           = MAX( 0.e0, zoxyrem  ) 
     128 
    125129                  ! 
    126                   tra(ji,jj,jk,jppo4) = tra(ji,jj,jk,jppo4) + zolimi (ji,jj,jk) + denitr(ji,jj,jk) 
    127                   tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + zolimi (ji,jj,jk) + denitr(ji,jj,jk) 
     130                  tra(ji,jj,jk,jppo4) = tra(ji,jj,jk,jppo4) + zolimi (ji,jj,jk) + denitr(ji,jj,jk) + zoxyrem 
     131                  tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + zolimi (ji,jj,jk) + denitr(ji,jj,jk) + zoxyrem 
    128132                  tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) - denitr (ji,jj,jk) * rdenit 
    129                   tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) - zolimi (ji,jj,jk) - denitr(ji,jj,jk) 
     133                  tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) - zolimi (ji,jj,jk) - denitr(ji,jj,jk) - zoxyrem 
    130134                  tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) - zolimi (ji,jj,jk) * o2ut 
    131                   tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + zolimi (ji,jj,jk) + denitr(ji,jj,jk) 
    132                   tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + rno3 * ( zolimi(ji,jj,jk)    & 
     135                  tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + zolimi (ji,jj,jk) + denitr(ji,jj,jk) + zoxyrem 
     136                  tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + rno3 * ( zolimi(ji,jj,jk) + zoxyrem    & 
    133137                  &                     + ( rdenit + 1.) * denitr(ji,jj,jk) ) 
    134138               END DO 
  • branches/2017/dev_r8126_ROBUST08_no_ghost/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90

    r7753 r8979  
    5454      REAL(wp) ::  zwflux, zfminus, zfplus 
    5555      REAL(wp) ::  zlim, zfact, zfactcal 
    56       REAL(wp) ::  zo2, zno3, zflx, zpdenit, z1pdenit, zdenitt, zolimit 
     56      REAL(wp) ::  zo2, zno3, zflx, zpdenit, z1pdenit, zolimit 
    5757      REAL(wp) ::  zsiloss, zcaloss, zws3, zws4, zwsc, zdep 
    5858      REAL(wp) ::  zwstpoc, zwstpon, zwstpop 
     
    319319               tra(ji,jj,ikt,jptal) =  tra(ji,jj,ikt,jptal) + zcaloss * zrivalk * 2.0 
    320320               tra(ji,jj,ikt,jpdic) =  tra(ji,jj,ikt,jpdic) + zcaloss * zrivalk 
    321                zsedcal(ji,jj) = (1.0 - zrivalk) * zcaloss / zdep 
    322                zsedsi (ji,jj) = (1.0 - zrivsil) * zsiloss / zdep 
     321               zsedcal(ji,jj) = (1.0 - zrivalk) * zcaloss * e3t_n(ji,jj,ikt)  
     322               zsedsi (ji,jj) = (1.0 - zrivsil) * zsiloss * e3t_n(ji,jj,ikt)  
    323323            END DO 
    324324         END DO 
     
    365365 
    366366      IF( .NOT.lk_sed ) THEN 
    367          ! The 0.5 factor in zpdenit and zdenitt is to avoid negative NO3 concentration after both denitrification 
    368          ! in the sediments and just above the sediments. Not very clever, but simpliest option. 
     367         ! The 0.5 factor in zpdenit is to avoid negative NO3 concentration after 
     368         ! denitrification in the sediments. Not very clever, but simpliest option. 
    369369         DO jj = 1, jpj 
    370370            DO ji = 1, jpi 
     
    378378               z1pdenit = zwstpoc * zrivno3 - zpdenit 
    379379               zolimit = MIN( ( trb(ji,jj,ikt,jpoxy) - rtrn ) / o2ut, z1pdenit * ( 1.- nitrfac(ji,jj,ikt) ) ) 
    380                zdenitt = MIN(  0.5 * ( trb(ji,jj,ikt,jpno3) - rtrn ) / rdenit, z1pdenit * nitrfac(ji,jj,ikt) ) 
    381                tra(ji,jj,ikt,jpdoc) = tra(ji,jj,ikt,jpdoc) + z1pdenit - zolimit - zdenitt 
    382                tra(ji,jj,ikt,jppo4) = tra(ji,jj,ikt,jppo4) + zpdenit + zolimit + zdenitt 
    383                tra(ji,jj,ikt,jpnh4) = tra(ji,jj,ikt,jpnh4) + zpdenit + zolimit + zdenitt 
    384                tra(ji,jj,ikt,jpno3) = tra(ji,jj,ikt,jpno3) - rdenit * (zpdenit + zdenitt) 
     380               tra(ji,jj,ikt,jpdoc) = tra(ji,jj,ikt,jpdoc) + z1pdenit - zolimit 
     381               tra(ji,jj,ikt,jppo4) = tra(ji,jj,ikt,jppo4) + zpdenit + zolimit 
     382               tra(ji,jj,ikt,jpnh4) = tra(ji,jj,ikt,jpnh4) + zpdenit + zolimit 
     383               tra(ji,jj,ikt,jpno3) = tra(ji,jj,ikt,jpno3) - rdenit * zpdenit 
    385384               tra(ji,jj,ikt,jpoxy) = tra(ji,jj,ikt,jpoxy) - zolimit * o2ut 
    386                tra(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + rno3 * (zolimit + (1.+rdenit) * (zpdenit + zdenitt) ) 
    387                tra(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zpdenit + zolimit + zdenitt 
     385               tra(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + rno3 * (zolimit + (1.+rdenit) * zpdenit ) 
     386               tra(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zpdenit + zolimit  
    388387               sdenit(ji,jj) = rdenit * zpdenit * e3t_n(ji,jj,ikt) 
    389                zsedc(ji,jj)   = (1. - zrivno3) * zwstpoc / zdep 
     388               zsedc(ji,jj)   = (1. - zrivno3) * zwstpoc * e3t_n(ji,jj,ikt) 
    390389               IF( ln_p5z ) THEN 
    391390                  zwstpop              = trb(ji,jj,ikt,jpgop) * zws4 + trb(ji,jj,ikt,jppop) * zws3 
    392391                  zwstpon              = trb(ji,jj,ikt,jpgon) * zws4 + trb(ji,jj,ikt,jppon) * zws3 
    393                   tra(ji,jj,ikt,jpdon) = tra(ji,jj,ikt,jpdon) + (z1pdenit - zolimit - zdenitt) * zwstpon / (zwstpoc + rtrn) 
    394                   tra(ji,jj,ikt,jpdop) = tra(ji,jj,ikt,jpdop) + (z1pdenit - zolimit - zdenitt) * zwstpop / (zwstpoc + rtrn) 
     392                  tra(ji,jj,ikt,jpdon) = tra(ji,jj,ikt,jpdon) + ( z1pdenit - zolimit ) * zwstpon / (zwstpoc + rtrn) 
     393                  tra(ji,jj,ikt,jpdop) = tra(ji,jj,ikt,jpdop) + ( z1pdenit - zolimit ) * zwstpop / (zwstpoc + rtrn) 
    395394               ENDIF 
    396395            END DO 
     
    494493      IF( lk_iomput ) THEN 
    495494         IF( knt == nrdttrc ) THEN 
    496             zfact = 1.e+3 * rfact2r * rno3  !  conversion from molC/l/kt  to molN/m3/s 
    497             IF( iom_use("Nfix"   ) ) CALL iom_put( "Nfix", nitrpot(:,:,:) * nitrfix * zfact * tmask(:,:,:) )  ! nitrogen fixation  
     495            zfact = 1.e+3 * rfact2r !  conversion from molC/l/kt  to molN/m3/s 
     496            IF( iom_use("Nfix"   ) ) CALL iom_put( "Nfix", nitrpot(:,:,:) * nitrfix * rno3 * zfact * tmask(:,:,:) )  ! nitrogen fixation  
    498497            IF( iom_use("INTNFIX") ) THEN   ! nitrogen fixation rate in ocean ( vertically integrated ) 
    499498               zwork1(:,:) = 0. 
    500499               DO jk = 1, jpkm1 
    501                  zwork1(:,:) = zwork1(:,:) + nitrpot(:,:,jk) * nitrfix * zfact * e3t_n(:,:,jk) * tmask(:,:,jk) 
     500                 zwork1(:,:) = zwork1(:,:) + nitrpot(:,:,jk) * nitrfix * rno3 * zfact * e3t_n(:,:,jk) * tmask(:,:,jk) 
    502501               ENDDO 
    503502               CALL iom_put( "INTNFIX" , zwork1 )  
    504503            ENDIF 
    505             IF( iom_use("SedCal" ) ) CALL iom_put( "SedCal", zsedcal(:,:) * 1.e+3 ) 
    506             IF( iom_use("SedSi" ) )  CALL iom_put( "SedSi",  zsedsi (:,:) * 1.e+3 ) 
    507             IF( iom_use("SedC" ) )   CALL iom_put( "SedC",   zsedc  (:,:) * 1.e+3 ) 
    508             IF( iom_use("Sdenit" ) ) CALL iom_put( "Sdenit", sdenit (:,:) * 1.e+3 * rno3 ) 
     504            IF( iom_use("SedCal" ) ) CALL iom_put( "SedCal", zsedcal(:,:) * zfact ) 
     505            IF( iom_use("SedSi" ) )  CALL iom_put( "SedSi",  zsedsi (:,:) * zfact ) 
     506            IF( iom_use("SedC" ) )   CALL iom_put( "SedC",   zsedc  (:,:) * zfact ) 
     507            IF( iom_use("Sdenit" ) ) CALL iom_put( "Sdenit", sdenit (:,:) * zfact * rno3 ) 
    509508         ENDIF 
    510509      ENDIF 
  • branches/2017/dev_r8126_ROBUST08_no_ghost/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsms.F90

    r7753 r8979  
    431431 
    432432      IF( kt == nittrc000 ) THEN  
     433         xfact1 = rfact2r * 12. / 1.e15 * ryyss    ! conversion molC/kt --> PgC/yr 
     434         xfact2 = 1.e+3 * rno3 * 14. / 1.e12 * ryyss   ! conversion molC/l/s ----> TgN/m3/yr 
     435         xfact3 = 1.e+3 * rfact2r * rno3   ! conversion molC/l/kt ----> molN/m3/s 
    433436         IF( ln_check_mass .AND. lwp) THEN      !   Open budget file of NO3, ALK, Si, Fer 
    434437            CALL ctl_opn( numco2, 'carbon.budget'  , 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE., narea ) 
    435438            CALL ctl_opn( numnut, 'nutrient.budget', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE., narea ) 
    436439            CALL ctl_opn( numnit, 'nitrogen.budget', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE., narea ) 
    437             xfact1 = rfact2r * 12. / 1.e15 * ryyss    ! conversion molC/kt --> PgC/yr 
    438             xfact2 = 1.e+3 * rno3 * 14. / 1.e12 * ryyss   ! conversion molC/l/s ----> TgN/m3/yr 
    439             xfact3 = 1.e+3 * rfact2r * rno3   ! conversion molC/l/kt ----> molN/m3/s 
    440440            cltxt='time-step   Alkalinity        Nitrate        Phosphorus         Silicate           Iron' 
    441441            IF( lwp ) WRITE(numnut,*)  TRIM(cltxt) 
     
    517517      IF( iom_use( "tnfix" ) .OR.  ( ln_check_mass .AND. kt == nitend )  ) THEN 
    518518         znitrpottot  = glob_sum ( nitrpot(:,:,:) * nitrfix * cvol(:,:,:) ) 
    519          CALL iom_put( "tnfix"  , znitrpottot * 1.e+3 * rno3 )  ! Global  nitrogen fixation molC/l  to molN/m3  
     519         CALL iom_put( "tnfix"  , znitrpottot * xfact3 )  ! Global  nitrogen fixation molC/l  to molN/m3  
    520520      ENDIF 
    521521      ! 
    522522      IF( iom_use( "tdenit" ) .OR.  ( ln_check_mass .AND. kt == nitend )  ) THEN 
    523          zrdenittot   = glob_sum ( denitr(:,:,:) * rdenit * xnegtr(:,:,:) * cvol(:,:,:) ) 
    524          CALL iom_put( "tdenit"  , zrdenittot * 1.e+3 * rno3 )  ! Total denitrification molC/l to molN/m3  
    525       ENDIF 
    526       ! 
    527       IF( iom_use( "Sdenit" ) .OR.  ( ln_check_mass .AND. kt == nitend )  ) THEN 
    528          zsdenittot   = glob_sum ( sdenit(:,:) * e1e2t(:,:) ) 
    529          CALL iom_put( "Sdenit", sdenit(:,:) * xfact3 * tmask(:,:,1) )  ! Nitrate reduction in the sediments 
    530       ENDIF 
    531  
     523         zrdenittot = glob_sum ( denitr(:,:,:) * rdenit * xnegtr(:,:,:) * cvol(:,:,:) ) 
     524         zsdenittot = glob_sum ( sdenit(:,:) * e1e2t(:,:) * tmask(:,:,1) ) 
     525         CALL iom_put( "tdenit" , ( zrdenittot + zsdenittot ) * xfact3 )  ! Total denitrification molC/l to molN/m3  
     526      ENDIF 
     527      ! 
    532528      IF( ln_check_mass .AND. kt == nitend ) THEN   ! Compute the budget of NO3, ALK, Si, Fer 
    533529         t_atm_co2_flx  = t_atm_co2_flx / glob_sum( e1e2t(:,:) ) 
  • branches/2017/dev_r8126_ROBUST08_no_ghost/NEMOGCM/NEMO/TOP_SRC/PISCES/SED/sedco3.F90

    r5215 r8979  
    7575 
    7676      DO jk = 1, jpksed 
    77 10001    CONTINUE 
    78          IF( itime <= 2 ) THEN 
     77         DO WHILE( itime <= 2 ) 
    7978            lconv  = .FALSE. 
    8079            IF( itime > 0 ) THEN   
     
    154153!                     WRITE(numsed,*) '    with re-initialization of initial PH field '        
    155154                     itime = 2 
    156                      GOTO 10001 
    157155                  ELSE 
    158156!                     WRITE(numsed,*) ' convergence after iter =', jiter, ' iterations ;  res =',zresm  
     
    165163!                     &               '  after iter =', jiter, ' iterations ;  res =',zresm   
    166164!                  WRITE(numsed,*) ' ' 
    167                   itime = 0 
     165                  itime = 3 
    168166               ENDIF 
    169167            ELSE 
     
    172170               IF ( itime == 1 ) THEN 
    173171                  WRITE(numsed,*) ' try one more time with more iterations and higher relax. value' 
    174                   GOTO 10001 
    175172               ELSE IF ( itime == 2 ) THEN 
    176173                  WRITE(numsed,*) ' try one more time for with more iterations, higher relax. value'                
     
    181178               ENDIF 
    182179            ENDIF 
    183          ENDIF 
     180         ENDDO ! End of WHILE LOOP 
    184181     ENDDO 
    185182 
  • branches/2017/dev_r8126_ROBUST08_no_ghost/NEMOGCM/NEMO/TOP_SRC/PISCES/sms_pisces.F90

    r7646 r8979  
    9797   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xfracal    !: ?? 
    9898   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   nitrfac    !: ?? 
     99   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   nitrfac2   !: ?? 
    99100   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   orem       !: ?? 
    100101   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xdiss      !: ?? 
     
    159160         ! 
    160161         !*  SMS for the organic matter 
    161          ALLOCATE( xfracal (jpi,jpj,jpk), nitrfac(jpi,jpj,jpk) ,    & 
    162             &      orem    (jpi,jpj,jpk),                           & 
    163             &      prodcal(jpi,jpj,jpk), xdiss   (jpi,jpj,jpk),    & 
     162         ALLOCATE( xfracal (jpi,jpj,jpk), orem(jpi,jpj,jpk)    ,    & 
     163            &      nitrfac(jpi,jpj,jpk), nitrfac2(jpi,jpj,jpk) ,    & 
     164            &      prodcal(jpi,jpj,jpk) , xdiss   (jpi,jpj,jpk),    & 
    164165            &      prodpoc(jpi,jpj,jpk) , conspoc(jpi,jpj,jpk) ,    & 
    165166            &      prodgoc(jpi,jpj,jpk) , consgoc(jpi,jpj,jpk) ,  STAT=ierr(4) ) 
  • branches/2017/dev_r8126_ROBUST08_no_ghost/NEMOGCM/NEMO/TOP_SRC/TRP/trcnxt.F90

    r7881 r8979  
    106106      ENDIF 
    107107      !                                ! Leap-Frog + Asselin filter time stepping 
    108       IF( neuler == 0 .AND. kt == nittrc000 ) THEN    ! Euler time-stepping at first time-step (only swap) 
     108      IF( (neuler == 0 .AND. kt == nittrc000) .OR. ln_top_euler ) THEN    ! Euler time-stepping (only swap) 
    109109         DO jn = 1, jptra 
    110110            DO jk = 1, jpkm1 
    111111               trn(:,:,jk,jn) = tra(:,:,jk,jn) 
     112               trb(:,:,jk,jn) = trn(:,:,jk,jn)   
    112113            END DO 
    113114         END DO 
  • branches/2017/dev_r8126_ROBUST08_no_ghost/NEMOGCM/NEMO/TOP_SRC/trc.F90

    r7881 r8979  
    1010   USE par_oce 
    1111   USE par_trc 
    12    USE bdy_oce, only: ln_bdy, nb_bdy, OBC_DATA 
     12   USE bdy_oce, only: jp_bdy, ln_bdy, nb_bdy, OBC_DATA 
    1313    
    1414   IMPLICIT NONE 
     
    169169# endif 
    170170   ! 
    171    CHARACTER(len=20), PUBLIC, ALLOCATABLE,  SAVE,  DIMENSION(:)   ::  cn_trc_dflt          ! Default OBC condition for all tracers 
    172    CHARACTER(len=20), PUBLIC, ALLOCATABLE,  SAVE,  DIMENSION(:)   ::  cn_trc               ! Choice of boundary condition for tracers 
    173    INTEGER,           PUBLIC, ALLOCATABLE,  SAVE,  DIMENSION(:)   ::  nn_trcdmp_bdy        !: =T Tracer damping 
     171   CHARACTER(len=20), PUBLIC, DIMENSION(jp_bdy) :: cn_trc_dflt   ! Default OBC condition for all tracers 
     172   CHARACTER(len=20), PUBLIC, DIMENSION(jp_bdy) :: cn_trc        ! Choice of boundary condition for tracers 
     173   INTEGER,           PUBLIC, DIMENSION(jp_bdy) :: nn_trcdmp_bdy !: =T Tracer damping 
     174!$AGRIF_DO_NOT_TREAT 
    174175   ! External data structure of BDY for TOP. Available elements: cn_obc, ll_trc, trcnow, dmp 
    175176   TYPE(OBC_DATA),    PUBLIC, ALLOCATABLE, DIMENSION(:,:), TARGET ::  trcdta_bdy           !: bdy external data (local process) 
    176    ! 
    177  
     177!$AGRIF_END_DO_NOT_TREAT 
    178178   !!---------------------------------------------------------------------- 
    179179   !! NEMO/TOP 3.3.1 , NEMO Consortium (2010) 
     
    206206      ! 
    207207      IF ( ln_bdy ) THEN 
    208          ALLOCATE( cn_trc_dflt(nb_bdy)   , cn_trc(nb_bdy)     , nn_trcdmp_bdy(nb_bdy) ,       & 
    209          &      trcdta_bdy(jptra,nb_bdy)                                              ,       & 
    210          &      STAT = ierr(2)  ) 
     208         ALLOCATE( trcdta_bdy(jptra, jp_bdy), STAT = ierr(2) ) 
    211209      ENDIF 
    212210      ! 
  • branches/2017/dev_r8126_ROBUST08_no_ghost/NEMOGCM/NEMO/TOP_SRC/trcdta.F90

    r7646 r8979  
    227227                     ik = mbkt(ji,jj)  
    228228                     IF( ik > 1 ) THEN 
    229                         zl = ( gdept_1d(ik) - gdept_n(ji,jj,ik) ) / ( gdept_1d(ik) - gdept_1d(ik-1) ) 
     229                        zl = ( gdept_1d(ik) - gdept_0(ji,jj,ik) ) / ( gdept_1d(ik) - gdept_1d(ik-1) ) 
    230230                        ptrcdta(ji,jj,ik) = (1.-zl) * ptrcdta(ji,jj,ik) + zl * ptrcdta(ji,jj,ik-1) 
    231231                     ENDIF 
    232232                     ik = mikt(ji,jj) 
    233233                     IF( ik > 1 ) THEN 
    234                         zl = ( gdept_n(ji,jj,ik) - gdept_1d(ik) ) / ( gdept_1d(ik+1) - gdept_1d(ik) ) 
     234                        zl = ( gdept_0(ji,jj,ik) - gdept_1d(ik) ) / ( gdept_1d(ik+1) - gdept_1d(ik) ) 
    235235                        ptrcdta(ji,jj,ik) = (1.-zl) * ptrcdta(ji,jj,ik) + zl * ptrcdta(ji,jj,ik+1) 
    236236                     ENDIF 
  • branches/2017/dev_r8126_ROBUST08_no_ghost/NEMOGCM/NEMO/TOP_SRC/trcini.F90

    r7753 r8979  
    6969      ! 
    7070      CALL trc_ini_sms   ! SMS 
    71       CALL trc_ini_inv   ! Inventories 
    7271      CALL trc_ini_trp   ! passive tracers transport 
    7372      CALL trc_ice_ini   ! Tracers in sea ice 
     
    7877      IF( nn_dttrc /= 1 ) & 
    7978      CALL trc_sub_ini    ! Initialize variables for substepping passive tracers 
     79      ! 
     80      CALL trc_ini_inv   ! Inventories 
    8081      ! 
    8182      IF( nn_timing == 1 )   CALL timing_stop('trc_init') 
Note: See TracChangeset for help on using the changeset viewer.