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 13662 for NEMO/branches/2019/dev_r11842_SI3-10_EAP/src/TOP/PISCES/P4Z/p4zsms.F90 – NEMO

Ignore:
Timestamp:
2020-10-22T20:49:56+02:00 (4 years ago)
Author:
clem
Message:

update to almost r4.0.4

Location:
NEMO/branches/2019/dev_r11842_SI3-10_EAP
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11842_SI3-10_EAP

    • Property svn:externals
      •  

        old new  
        1 ^/utils/build/arch@HEAD       arch 
        2 ^/utils/build/makenemo@HEAD   makenemo 
        3 ^/utils/build/mk@HEAD         mk 
        4 ^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
        6 ^/vendors/FCM@HEAD            ext/FCM 
        7 ^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         1^/utils/build/arch@12130      arch 
         2^/utils/build/makenemo@12191  makenemo 
         3^/utils/build/mk@11662        mk 
         4^/utils/tools_r4.0-HEAD@12672 tools 
         5^/vendors/AGRIF/dev@10586     ext/AGRIF 
         6^/vendors/FCM@10134           ext/FCM 
         7^/vendors/IOIPSL@9655         ext/IOIPSL 
         8 
         9# SETTE mapping (inactive) 
         10#^/utils/CI/sette@12135        sette 
  • NEMO/branches/2019/dev_r11842_SI3-10_EAP/src/TOP/PISCES/P4Z/p4zsms.F90

    r11536 r13662  
    3535   INTEGER ::    numco2, numnut, numnit      ! logical unit for co2 budget 
    3636   REAL(wp) ::   alkbudget, no3budget, silbudget, ferbudget, po4budget 
    37    REAL(wp) ::   xfact1, xfact2, xfact3 
     37   REAL(wp) ::   xfact, xfact1, xfact2, xfact3 
    3838 
    3939   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xnegtr     ! Array used to indicate negative tracer values 
     
    6363      REAL(wp) ::  ztra 
    6464      CHARACTER (len=25) :: charout 
     65      REAL(wp), ALLOCATABLE, DIMENSION(:,:    ) :: zw2d 
     66      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:  ) :: zw3d 
     67      REAL(wp), DIMENSION(jpi,jpj,jpk,jp_pisces) :: ztrbbio 
     68 
    6569      !!--------------------------------------------------------------------- 
    6670      ! 
     
    9094         rfact2r = 1. / rfact2 
    9195         xstep = rfact2 / rday         ! Time step duration for biology 
     96         xfact = 1.e+3 * rfact2r 
    9297         IF(lwp) WRITE(numout,*)  
    9398         IF(lwp) WRITE(numout,*) '    Passive Tracer  time step    rfact  = ', rfact, ' rdt = ', rdt 
     
    101106         END DO 
    102107      ENDIF 
     108 
     109      DO jn = jp_pcs0, jp_pcs1              !   Store the tracer concentrations before entering PISCES 
     110         ztrbbio(:,:,:,jn) = trb(:,:,:,jn) 
     111      END DO 
     112 
    103113      ! 
    104114      IF( ll_sbc ) CALL p4z_sbc( kt )   ! external sources of nutrients  
     
    133143           trb(:,:,:,jn) = trb(:,:,:,jn) + xnegtr(:,:,:) * tra(:,:,:,jn) 
    134144         END DO 
    135         ! 
    136          DO jn = jp_pcs0, jp_pcs1 
    137             tra(:,:,:,jn) = 0._wp 
    138          END DO 
    139          ! 
    140          IF( ln_top_euler ) THEN 
    141             DO jn = jp_pcs0, jp_pcs1 
    142                trn(:,:,:,jn) = trb(:,:,:,jn) 
    143             END DO 
    144          ENDIF 
     145         
     146        ! 
     147        IF(  iom_use( 'INTdtAlk' ) .OR. iom_use( 'INTdtDIC' ) .OR. iom_use( 'INTdtFer' ) .OR.  & 
     148          &  iom_use( 'INTdtDIN' ) .OR. iom_use( 'INTdtDIP' ) .OR. iom_use( 'INTdtSil' ) )  THEN 
     149          ! 
     150          ALLOCATE( zw3d(jpi,jpj,jpk), zw2d(jpi,jpj) ) 
     151          zw3d(:,:,jpk) = 0. 
     152          DO jk = 1, jpkm1 
     153              zw3d(:,:,jk) = xnegtr(:,:,jk) * xfact * e3t_n(:,:,jk) * tmask(:,:,jk) 
     154          ENDDO 
     155          ! 
     156          zw2d(:,:) = 0. 
     157          DO jk = 1, jpkm1 
     158             zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * tra(:,:,jk,jptal) 
     159          ENDDO 
     160          CALL iom_put( 'INTdtAlk', zw2d ) 
     161          ! 
     162          zw2d(:,:) = 0. 
     163          DO jk = 1, jpkm1 
     164             zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * tra(:,:,jk,jpdic) 
     165          ENDDO 
     166          CALL iom_put( 'INTdtDIC', zw2d ) 
     167          ! 
     168          zw2d(:,:) = 0. 
     169          DO jk = 1, jpkm1 
     170             zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * rno3 * ( tra(:,:,jk,jpno3) + tra(:,:,jk,jpnh4) ) 
     171          ENDDO 
     172          CALL iom_put( 'INTdtDIN', zw2d ) 
     173          ! 
     174          zw2d(:,:) = 0. 
     175          DO jk = 1, jpkm1 
     176             zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * po4r * tra(:,:,jk,jppo4) 
     177          ENDDO 
     178          CALL iom_put( 'INTdtDIP', zw2d ) 
     179          ! 
     180          zw2d(:,:) = 0. 
     181          DO jk = 1, jpkm1 
     182             zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * tra(:,:,jk,jpfer) 
     183          ENDDO 
     184          CALL iom_put( 'INTdtFer', zw2d ) 
     185          ! 
     186          zw2d(:,:) = 0. 
     187          DO jk = 1, jpkm1 
     188             zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * tra(:,:,jk,jpsil) 
     189          ENDDO 
     190          CALL iom_put( 'INTdtSil', zw2d ) 
     191          ! 
     192          DEALLOCATE( zw3d, zw2d ) 
     193        ENDIF 
     194        ! 
     195        DO jn = jp_pcs0, jp_pcs1 
     196           tra(:,:,:,jn) = 0._wp 
     197        END DO 
     198        ! 
    145199      END DO 
    146  
     200      ! 
     201#endif 
     202      ! 
     203      IF( ln_sediment ) THEN  
     204         ! 
     205         CALL sed_model( kt )     !  Main program of Sediment model 
     206         ! 
     207      ENDIF 
     208      ! 
     209      DO jn = jp_pcs0, jp_pcs1 
     210         tra(:,:,:,jn) = ( trb(:,:,:,jn) - ztrbbio(:,:,:,jn) ) * rfactr 
     211         trb(:,:,:,jn) = ztrbbio(:,:,:,jn) 
     212         ztrbbio(:,:,:,jn) = 0._wp 
     213      END DO 
    147214      ! 
    148215      IF( l_trdtrc ) THEN 
     
    151218         END DO 
    152219      END IF 
    153 #endif 
    154       ! 
    155       IF( ln_sediment ) THEN  
    156          ! 
    157          CALL sed_model( kt )     !  Main program of Sediment model 
    158          ! 
    159          IF( ln_top_euler ) THEN 
    160             DO jn = jp_pcs0, jp_pcs1 
    161                trn(:,:,:,jn) = trb(:,:,:,jn) 
    162             END DO 
    163          ENDIF 
    164          ! 
    165       ENDIF 
    166       ! 
     220      !   
    167221      IF( lrst_trc )  CALL p4z_rst( kt, 'WRITE' )  !* Write PISCES informations in restart file  
    168222      ! 
Note: See TracChangeset for help on using the changeset viewer.