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 8074 for branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcsed_medusa.F90 – NEMO

Ignore:
Timestamp:
2017-05-25T18:43:39+02:00 (7 years ago)
Author:
jpalmier
Message:

JPALM -- reverse MEDUSA cleaning and update MOCSY

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcsed_medusa.F90

    r7894 r8074  
    9090      !!              add this trend now to the general trend of tracer (ta,sa,tra): 
    9191      !!                             tra = tra + dz(trn wn) 
     92      !!         
     93      !!              IF 'key_trc_diabio' is defined, the now vertical advection 
     94      !!              trend of passive tracers is saved for futher diagnostics. 
    9295      !!--------------------------------------------------------------------- 
    9396      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index       
     
    137140      ! for detrital nitrogen sedimentation only - jpdet 
    138141      zwork(:,:,1  ) = 0.e0      ! surface value set to zero 
     142      !!    DO ji = 1, jpi 
     143      !!       zirondep(ji,jj,1) = (dustsolub * dust(ji,jj) / (55.85 * rmtss) + 3.e-10 / ryyss) & 
     144      !!       & * rfact2 / fse3t(ji,jj,1) 
     145      !!       zsidep  (ji,jj)   = 8.8 * 0.075 * dust(ji,jj) * rfact2 / & 
     146      !!       & (fse3t(ji,jj,1) * 28.1 * rmtss) 
     147      !!    END DO 
     148      !! END DO 
     149 
     150      ! sedimentation of detrital nitrogen : upstream scheme 
     151      ! ---------------------------------------------------- 
     152      ! 
     153      zwork(:,:,:) = 0.e0        ! initialisation of sinking variable 
     154      ! for detrital nitrogen sedimentation only - jpdet 
     155      zwork(:,:,1  ) = 0.e0      ! surface value set to zero 
    139156      zwork(:,:,jpk) = 0.e0      ! bottom value  set to zero 
    140157      ! 
     
    144161         ! zwork(:,:,jk) = -vsed * max(trn(:,:,jk-1,jpdet),0.d0) * tmask(:,:,jk-1) 
    145162         zwork(:,:,jk) = -vsed * max(trn(:,:,jk-1,jpdet),0.) * tmask(:,:,jk-1) 
     163         ! 
     164         ! AXY (16/01/14): stop sinking in upper 10m to reduce model instability  
     165         !                 in shallower grid cells 
     166         ! if ( jk .lt. 9 ) zwork(:,:,jk) = 0.e0 
    146167      END DO 
    147168      ! 
     
    152173               ztra  = - ( zwork(ji,jj,jk) - zwork(ji,jj,jk+1) ) / fse3t(ji,jj,jk) 
    153174               tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) + ztra 
     175# if defined key_trc_diabio 
     176               trbio(ji,jj,jk,8) = ztra 
     177# endif 
    154178               IF (lk_iomput .AND. .NOT. ln_diatrc) THEN 
    155179                     IF( med_diag%DSED%dgsave ) THEN 
    156180                         zw2d(ji,jj) = zw2d(ji,jj) + ztra * fse3t(ji,jj,jk) * 86400. 
    157181                      ENDIF    
     182               ELSE IF( ln_diatrc )  THEN 
     183                    trc2d(ji,jj,8) = trc2d(ji,jj,8) + ztra * fse3t(ji,jj,jk) * 86400. 
    158184               ENDIF     
    159185                 
     
    162188      END DO 
    163189      ! 
     190# if defined key_trc_diabio 
     191      CALL lbc_lnk (trbio(:,:,1,8), 'T', 1. )                    ! Lateral boundary conditions on trcbio 
     192# endif 
     193      IF( ln_diatrc ) CALL lbc_lnk( trc2d(:,:,8), 'T', 1. )      ! Lateral boundary conditions on trc2d 
     194      !! 
    164195      IF (lk_iomput .AND. .NOT. ln_diatrc) THEN 
    165196           IF( med_diag%DSED%dgsave ) THEN 
     
    167198                CALL wrk_dealloc( jpi, jpj,    zw2d  ) 
    168199            ENDIF 
     200      ELSE IF (lk_iomput .AND. ln_diatrc)  THEN     
     201          CALL iom_put( "DSED",trc2d(:,:,8) ) 
    169202      ENDIF 
    170203      !! 
     
    184217         ! zwork(:,:,jk) = -vsed * max(trn(:,:,jk-1,jpdtc),0.d0) * tmask(:,:,jk-1) 
    185218         zwork(:,:,jk) = -vsed * max(trn(:,:,jk-1,jpdtc),0.) * tmask(:,:,jk-1) 
     219         ! 
     220         ! AXY (16/01/14): stop sinking in upper 10m to reduce model instability  
     221         !                 in shallower grid cells 
     222         ! if ( jk .lt. 9 ) zwork(:,:,jk) = 0.e0 
    186223      END DO 
    187224      ! 
     
    192229               ztra  = - ( zwork(ji,jj,jk) - zwork(ji,jj,jk+1) ) / fse3t(ji,jj,jk) 
    193230               tra(ji,jj,jk,jpdtc) = tra(ji,jj,jk,jpdtc) + ztra 
     231!! #  if defined key_trc_diabio 
     232!!                trbio(ji,jj,jk,8) = ztra 
     233!! #  endif 
     234!!             IF( ln_diatrc ) & 
     235!!                &  trc2d(ji,jj,8) = trc2d(ji,jj,8) + ztra * fse3t(ji,jj,jk) * 86400. 
    194236            END DO 
    195237         END DO 
    196238      END DO 
    197239      ! 
     240!! #  if defined key_trc_diabio 
     241!!       CALL lbc_lnk (trbio(:,:,1,8), 'T', 1. )                    ! Lateral boundary conditions on trcbio 
     242!! #  endif 
     243!!       IF( ln_diatrc ) CALL lbc_lnk( trc2d(:,:,8), 'T', 1. )      ! Lateral boundary conditions on trc2d 
     244!! #  if defined key_iomput 
     245!!       CALL iom_put( "DSED",trc2d(:,:,8) ) 
     246!! #  endif 
     247 
    198248# endif 
    199249 
     
    331381      ENDIF 
    332382 
     383      !! AXY (04/11/13): replace this with a call in trc_ini_medusa 
     384      !! AXY (25/02/10) 
     385      !! call routine for populating CCD array if this is the first time-step 
     386      !! IF( kt == nittrc000 ) CALL medusa_ccd( kt ) 
     387 
     388      !! AXY (04/11/13): replace this with a call in trc_ini_medusa 
     389      !! AXY (26/01/12) 
     390      !! call routine for populating river arrays if this is the first time-step 
     391      !! IF( kt == nittrc000 ) CALL medusa_river( kt ) 
     392 
     393      !! AXY (10/02/09) 
     394      !! IF( (jnt == 1) .and. (bdustfer) )  CALL trc_sed_medusa_sbc( kt ) 
     395 
     396      !! JPALM -- 31-03-2016 -- rewrite trc_sed_medusa_sbc. 
     397      !! IF (kt == nittrc000 ) CALL trc_sed_medusa_sbc  
     398 
     399      !! JPALM -- 20-07-2016 -- adapt dust forcing fields reading and conversion 
     400      !!                     To read dust dep in kg-dust/m2/s instead of g-Fe/m2/month  
     401      !!                     So all forcings and coupling dust dep are in the same SI units 
     402      !!                     and then convert in mmol-Fe/m2/day 
     403 
    333404      IF( bdustfer ) THEN 
    334405            CALL fld_read( kt, 1, sf_dust ) 
     
    343414      zirondep(:,:) = dust(:,:) * Fe_dust_mratio / xfe_mass * 1.e6 * 86400.  !! mmol-Fe/m2/d 
    344415       
     416      !! JPALM -- 20-07-2016 -- Zirondep and zsidep are not used. 
     417      !!                     So comment out the following lines. but keep them 
     418      !!                     as we may want to used them later on 
     419      !!================================================      
     420      !! 
     421      !! zirondep(:,:,:) = 0.e0     !! Initialisation of deposition variables 
     422      !! zsidep  (:,:)   = 0.e0 
     423      !! 
     424      !! Iron and Si deposition at the surface 
     425      !! ------------------------------------- 
     426      !! 
     427      !! DO jj = 1, jpj 
     428      !!    DO ji = 1, jpi 
     429      !!       zirondep(ji,jj,1) = (dustsolub * dust(ji,jj) / (55.85 * rmtss) + 3.e-10 / ryyss) & 
     430      !!       & * rfact2 / fse3t(ji,jj,1) 
     431      !!       zsidep  (ji,jj)   = 8.8 * 0.075 * dust(ji,jj) * rfact2 / & 
     432      !!       & (fse3t(ji,jj,1) * 28.1 * rmtss) 
     433      !!    END DO 
     434      !! END DO 
     435 
    345436   END SUBROUTINE trc_sed_medusa_dust 
    346437 
Note: See TracChangeset for help on using the changeset viewer.