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 5360 – NEMO

Changeset 5360


Ignore:
Timestamp:
2015-06-05T11:21:28+02:00 (9 years ago)
Author:
cetlod
Message:

dev_r5171_CNRS_LIM3_seaicebgc : minor corrections

Location:
branches/2015/dev_r5171_CNRS_LIM3_seaicebgc/NEMOGCM/NEMO/TOP_SRC
Files:
3 added
1 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5171_CNRS_LIM3_seaicebgc/NEMOGCM/NEMO/TOP_SRC/TRP/trcsbc.F90

    r5325 r5360  
    2929   PUBLIC   trc_sbc   ! routine called by step.F90 
    3030 
    31    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) ::   r2dt  ! vertical profile time-step, = 2 rdttra 
     31   REAL(wp) ::   r2dt  !  time-step at surface 
    3232 
    3333   !! * Substitutions 
     
    8888 
    8989      IF( ln_top_euler) THEN 
    90          r2dt(:) =  rdttrc(:)              ! = rdttrc (use Euler time stepping) 
     90         r2dt =  rdttrc(1)              ! = rdttrc (use Euler time stepping) 
    9191      ELSE 
    9292         IF( neuler == 0 .AND. kt == nittrc000 ) THEN     ! at nittrc000 
    93             r2dt(:) =  rdttrc(:)           ! = rdttrc (restarting with Euler time stepping) 
    94          ELSEIF( kt <= nittrc000 + 1 ) THEN          ! at nittrc000 or nittrc000+1 
    95             r2dt(:) = 2. * rdttrc(:)       ! = 2 rdttrc (leapfrog) 
     93            r2dt = rdttrc(1)           ! = rdttrc (restarting with Euler time stepping) 
     94         ELSEIF( kt <= nittrc000 + nn_dttrc ) THEN          ! at nittrc000 or nittrc000+1 
     95            r2dt = 2. * rdttrc(1)       ! = 2 rdttrc (leapfrog) 
    9696         ENDIF 
    9797      ENDIF 
     
    125125               DO ji = fs_2, fs_jpim1   ! vector opt. 
    126126                  zse3t = 1. / fse3t(ji,jj,1) 
    127                   tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + zsfx(ji,jj) * r1_rau0 * trb(ji,jj,1,jn) * zse3t 
     127                  tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + zsfx(ji,jj) * r1_rau0 * trn(ji,jj,1,jn) * zse3t 
    128128               END DO 
    129129            END DO 
     
    144144                  ztfx  = zftra + zswitch * zcd                ! net tracer flux (+C/D if no ice/ocean mass exchange) 
    145145    
    146                   zdtra = r1_rau0 * ( ztfx + zsfx(ji,jj) * trb(ji,jj,1,jn) ) * zse3t 
     146                  zdtra = r1_rau0 * ( ztfx + zsfx(ji,jj) * trn(ji,jj,1,jn) ) * zse3t 
    147147                  IF ( zdtra < 0. ) THEN 
    148                      zratio = -zdtra * r2dt(1) / ( trb(ji,jj,1,jn) + zrtrn ) 
     148                     zratio = -zdtra * r2dt / ( trn(ji,jj,1,jn) + zrtrn ) 
    149149                     zdtra = MIN(1.0, zratio) * zdtra ! avoid negative concentrations to arise 
    150150                  ENDIF 
  • branches/2015/dev_r5171_CNRS_LIM3_seaicebgc/NEMOGCM/NEMO/TOP_SRC/trcice.F90

    r5325 r5360  
    1515   USE oce_trc         ! shared variables between ocean and passive tracers 
    1616   USE trc             ! passive tracers common variables 
    17 !  USE trcrst          ! passive tracers restart 
    18 !  USE trcice_cfc      ! CFC      initialisation 
     17   USE trcice_cfc      ! CFC      initialisation 
    1918   USE trcice_pisces   ! PISCES   initialisation 
    20 !  USE trcice_c14b     ! C14 bomb initialisation 
    21 !  USE trcice_my_trc   ! MY_TRC   initialisation 
    22 !  USE trcdta          ! initialisation form files 
    23 !  USE daymod          ! calendar manager 
    24 !  USE zpshde          ! partial step: hor. derivative   (zps_hde routine) 
    25 !  USE prtctl_trc      ! Print control passive tracers (prt_ctl_trc_init routine) 
    26 !  USE trcsub       ! variables to substep passive tracers 
    27 !  USE in_out_manager   
     19   USE trcice_c14b     ! C14 bomb initialisation 
     20   USE trcice_my_trc   ! MY_TRC   initialisation 
    2821    
    2922   IMPLICIT NONE 
     
    5851 
    5952      IF ( nn_ice_tr == 1 ) THEN 
    60          IF( lk_pisces  )       CALL trc_ice_ini_pisces       ! PISCES  bio-model 
    61          ! to be written 
    62          !IF( lk_cfc     )       CALL trc_ice_ini_cfc          ! CFC     tracers 
    63          !IF( lk_c14b    )       CALL trc_ice_ini_c14b         ! C14 bomb  tracer 
    64          !IF( lk_my_trc  )       CALL trc_ice_ini_my_trc       ! MY_TRC  tracers 
     53         IF( lk_pisces  )    CALL trc_ice_ini_pisces       ! PISCES  bio-model 
     54         IF( lk_cfc     )    CALL trc_ice_ini_cfc          ! CFC     tracers 
     55         IF( lk_c14b    )    CALL trc_ice_ini_c14b         ! C14 bomb  tracer 
     56         IF( lk_my_trc  )    CALL trc_ice_ini_my_trc       ! MY_TRC  tracers 
    6557      ENDIF 
    6658 
  • branches/2015/dev_r5171_CNRS_LIM3_seaicebgc/NEMOGCM/NEMO/TOP_SRC/trcnam.F90

    r5325 r5360  
    2727   USE trd_oce        
    2828   USE trdtrc_oce 
    29    USE trcnam_ice            ! Ice module for tracers 
    3029   USE iom               ! I/O manager 
    3130 
     
    220219    END SUBROUTINE trc_nam_run 
    221220 
     221   SUBROUTINE trc_nam_ice 
     222      !!--------------------------------------------------------------------- 
     223      !!                     ***  ROUTINE trc_nam_ice *** 
     224      !! 
     225      !! ** Purpose :   Read the namelist for the ice effect on tracers 
     226      !! 
     227      !! ** Method  : - 
     228      !! 
     229      !!--------------------------------------------------------------------- 
     230      ! --- Variable declarations --- ! 
     231      INTEGER :: jn      ! dummy loop indices 
     232      INTEGER :: ios     ! Local integer output status for namelist read 
     233 
     234      ! --- Namelist declarations --- ! 
     235      TYPE(TRC_I_NML), DIMENSION(jptra) :: sn_tri_tracer 
     236      NAMELIST/namtrc_ice/ nn_ice_tr, sn_tri_tracer 
     237 
     238      IF(lwp) THEN 
     239         WRITE(numout,*) 
     240         WRITE(numout,*) 'trc_nam_ice : Read the namelist for trc_ice' 
     241         WRITE(numout,*) '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' 
     242      ENDIF 
     243 
     244      IF( nn_timing == 1 )  CALL timing_start('trc_nam_ice') 
     245 
     246      ! 
     247      REWIND( numnat_ref )              ! Namelist namtrc_ice in reference namelist : Passive tracer input data 
     248      READ  ( numnat_ref, namtrc_ice, IOSTAT = ios, ERR = 901) 
     249 901  IF( ios /= 0 ) CALL ctl_nam ( ios , ' namtrc_ice in reference namelist ', lwp ) 
     250 
     251      REWIND( numnat_cfg )              ! Namelist namtrc_ice in configuration namelist : Pisces external sources of nutrients 
     252      READ  ( numnat_cfg, namtrc_ice, IOSTAT = ios, ERR = 902 ) 
     253 902  IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_ice in configuration namelist', lwp ) 
     254 
     255      WRITE(numout,*) ' ' 
     256      WRITE(numout,*) ' Sea ice tracers option (nn_ice_tr) : ', nn_ice_tr 
     257      WRITE(numout,*) ' ' 
     258 
     259      ! Assign namelist stuff 
     260      DO jn = 1, jptra 
     261         trc_ice_ratio(jn)  = sn_tri_tracer(jn)%trc_ratio 
     262         trc_ice_prescr(jn) = sn_tri_tracer(jn)%trc_prescr 
     263         cn_trc_o      (jn) = sn_tri_tracer(jn)%ctrc_o 
     264      END DO 
     265 
     266      IF( nn_timing == 1 )   CALL timing_stop('trc_nam_ice') 
     267      ! 
     268   END SUBROUTINE trc_nam_ice 
    222269 
    223270   SUBROUTINE trc_nam_trc 
Note: See TracChangeset for help on using the changeset viewer.