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 13463 for NEMO/branches/2019/dev_r11351_fldread_with_XIOS/src/TOP/PISCES/SED/seddta.F90 – NEMO

Ignore:
Timestamp:
2020-09-14T17:40:34+02:00 (4 years ago)
Author:
andmirek
Message:

Ticket #2195:update to trunk 13461

Location:
NEMO/branches/2019/dev_r11351_fldread_with_XIOS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11351_fldread_with_XIOS

    • 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_r12970_AGRIF_CMEMS      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         8 
         9# SETTE 
         10^/utils/CI/sette@13382        sette 
  • NEMO/branches/2019/dev_r11351_fldread_with_XIOS/src/TOP/PISCES/SED/seddta.F90

    r10362 r13463  
    2222   REAL(wp) ::  conv2    ! [kg/m2/month]-->[g/cm2/s] ( 1 month has 30 days ) 
    2323 
     24   !! * Substitutions 
     25#  include "do_loop_substitute.h90" 
     26#  include "domzgr_substitute.h90" 
    2427   !! $Id$ 
    2528CONTAINS 
     
    2932   !!--------------------------------------------------------------------------- 
    3033 
    31    SUBROUTINE sed_dta( kt ) 
     34   SUBROUTINE sed_dta( kt, Kbb, Kmm ) 
    3235      !!---------------------------------------------------------------------- 
    3336      !!                   ***  ROUTINE sed_dta  *** 
     
    4346 
    4447      !! Arguments 
    45       INTEGER, INTENT(in) ::  kt    ! time-step 
     48      INTEGER, INTENT(in) ::  kt         ! time-step 
     49      INTEGER, INTENT(in) ::  Kbb, Kmm   ! time level indices 
    4650 
    4751      !! * Local declarations 
     
    7276      IF( kt == nitsed000 ) THEN 
    7377         IF (lwp) WRITE(numsed,*) ' sed_dta : Sediment fields' 
    74          dtsed = r2dttrc 
     78         dtsed = rDt_trc 
    7579         rsecday = 60.* 60. * 24. 
    7680!         conv2   = 1.0e+3 / ( 1.0e+4 * rsecday * 30. ) 
     
    9296      !    ----------------------------------------------------------- 
    9397      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 
     98         DO_2D( 1, 1, 1, 1 ) 
     99            ikt = mbkt(ji,jj) 
     100            zwsbio4(ji,jj) = wsbio2 / rday 
     101            zwsbio3(ji,jj) = wsbio  / rday 
     102         END_2D 
    101103      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 
     104         DO_2D( 1, 1, 1, 1 ) 
     105            ikt = mbkt(ji,jj) 
     106            zdep = e3t(ji,jj,ikt,Kmm) / rDt_trc 
     107            zwsbio4(ji,jj) = MIN( 0.99 * zdep, wsbio4(ji,jj,ikt) / rday ) 
     108            zwsbio3(ji,jj) = MIN( 0.99 * zdep, wsbio3(ji,jj,ikt) / rday ) 
     109         END_2D 
    110110      ENDIF 
    111111 
    112112      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 
     113      DO_2D( 1, 1, 1, 1 ) 
     114         ikt = mbkt(ji,jj) 
     115         IF ( tmask(ji,jj,ikt) == 1 ) THEN 
     116            trc_data(ji,jj,1)   = tr(ji,jj,ikt,jpsil,Kbb) 
     117            trc_data(ji,jj,2)   = tr(ji,jj,ikt,jpoxy,Kbb) 
     118            trc_data(ji,jj,3)   = tr(ji,jj,ikt,jpdic,Kbb) 
     119            trc_data(ji,jj,4)   = tr(ji,jj,ikt,jpno3,Kbb) / 7.625 
     120            trc_data(ji,jj,5)   = tr(ji,jj,ikt,jppo4,Kbb) / 122. 
     121            trc_data(ji,jj,6)   = tr(ji,jj,ikt,jptal,Kbb) 
     122            trc_data(ji,jj,7)   = tr(ji,jj,ikt,jpnh4,Kbb) / 7.625 
     123            trc_data(ji,jj,8)   = 0.0 
     124            trc_data(ji,jj,9)   = 28.0E-3 
     125            trc_data(ji,jj,10)  = tr(ji,jj,ikt,jpfer,Kbb) 
     126            trc_data(ji,jj,11 ) = MIN(tr(ji,jj,ikt,jpgsi,Kbb), 1E-4) * zwsbio4(ji,jj) * 1E3 
     127            trc_data(ji,jj,12 ) = MIN(tr(ji,jj,ikt,jppoc,Kbb), 1E-4) * zwsbio3(ji,jj) * 1E3 
     128            trc_data(ji,jj,13 ) = MIN(tr(ji,jj,ikt,jpgoc,Kbb), 1E-4) * zwsbio4(ji,jj) * 1E3 
     129            trc_data(ji,jj,14)  = MIN(tr(ji,jj,ikt,jpcal,Kbb), 1E-4) * zwsbio4(ji,jj) * 1E3 
     130            trc_data(ji,jj,15)  = ts(ji,jj,ikt,jp_tem,Kmm) 
     131            trc_data(ji,jj,16)  = ts(ji,jj,ikt,jp_sal,Kmm) 
     132            trc_data(ji,jj,17 ) = ( tr(ji,jj,ikt,jpsfe,Kbb) * zwsbio3(ji,jj) + tr(ji,jj,ikt,jpbfe,Kbb)  & 
     133            &                     * zwsbio4(ji,jj)  ) * 1E3 / ( trc_data(ji,jj,12 ) + trc_data(ji,jj,13 ) + rtrn ) 
     134            trc_data(ji,jj,17 ) = MIN(1E-3, trc_data(ji,jj,17 ) ) 
     135         ENDIF 
     136      END_2D 
    139137 
    140138      ! Pore water initial concentration [mol/l] in  k=1 
     
    167165      CALL pack_arr ( jpoce,  rainrm_dta(1:jpoce,jscal), trc_data(1:jpi,1:jpj,14), iarroce(1:jpoce) ) 
    168166      rainrm_dta(1:jpoce,jscal) = rainrm_dta(1:jpoce,jscal) * 1e-4 
    169       ! vector temperature [°C] and salinity  
     167      ! vector temperature [C] and salinity  
    170168      CALL pack_arr ( jpoce,  temp(1:jpoce), trc_data(1:jpi,1:jpj,15), iarroce(1:jpoce) ) 
    171169      CALL pack_arr ( jpoce,  salt(1:jpoce), trc_data(1:jpi,1:jpj,16), iarroce(1:jpoce) ) 
Note: See TracChangeset for help on using the changeset viewer.