Changeset 5367


Ignore:
Timestamp:
2015-06-05T13:34:40+02:00 (5 years ago)
Author:
cetlod
Message:

NEMOGCM_dev_r5204_CNRS_PISCES_dcy : merge in dev_r5171_CNRS_LIM3_seaicebgc

Location:
branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM
Files:
5 added
9 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/CONFIG/SHARED/namelist_pisces_ref

    r5148 r5367  
    207207/ 
    208208!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     209&nampisice      !  Prescribed sea ice tracers 
     210!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
     211! constant ocean tracer concentrations are defined in trcice_pisces.F90 (Global, Arctic, Antarctic and Baltic) 
     212! trc_ice_ratio     * betw 0 and 1: prescribed ice/ocean tracer concentration ratio 
     213!                   * -1 => the ice-ocean tracer concentration ratio follows the  
     214!                           ice-ocean salinity ratio 
     215!                   * -2 => tracer concentration in sea ice is prescribed and  
     216!                           trc_ice_prescr is used 
     217! trc_ice_prescr    * prescribed tracer concentration. used only if  
     218!                     trc_ice_ratio = -2. equals -99 if not used. 
     219! cn_trc_o          * 'GL' use global ocean values making the Baltic distinction only 
     220!                     'AA' use specific Arctic/Antarctic/Baltic values 
     221!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
     222!    sn_tri_ ! trc_ice_ratio ! trc_ice_prescr !     cn_trc_o 
     223   sn_tri_dic =           -1.,           -99.,          'AA' 
     224   sn_tri_doc =            0.,           -99.,          'AA' 
     225   sn_tri_tal =           -1.,           -99.,          'AA' 
     226   sn_tri_oxy =           -1.,           -99.,          'AA' 
     227   sn_tri_cal =            0.,           -99.,          'AA' 
     228   sn_tri_po4 =           -1.,           -99.,          'AA' 
     229   sn_tri_poc =            0.,           -99.,          'AA' 
     230   sn_tri_goc =            0.,           -99.,          'AA' 
     231   sn_tri_bfe =            0.,           -99.,          'AA' 
     232   sn_tri_num =            0.,           -99.,          'AA' 
     233   sn_tri_sil =           -1.,           -99.,          'AA' 
     234   sn_tri_dsi =            0.,           -99.,          'AA' 
     235   sn_tri_gsi =            0.,           -99.,          'AA' 
     236   sn_tri_phy =            0.,           -99.,          'AA' 
     237   sn_tri_dia =            0.,           -99.,          'AA' 
     238   sn_tri_zoo =            0.,           -99.,          'AA' 
     239   sn_tri_mes =            0.,           -99.,          'AA' 
     240   sn_tri_fer =           -2.,          15E-9,          'AA' 
     241   sn_tri_sfe =            0.,           -99.,          'AA' 
     242   sn_tri_dfe =            0.,           -99.,          'AA' 
     243   sn_tri_nfe =            0.,           -99.,          'AA' 
     244   sn_tri_nch =            0.,           -99.,          'AA' 
     245   sn_tri_dch =            0.,           -99.,          'AA' 
     246   sn_tri_no3 =           -1.,           -99.,          'AA' 
     247   sn_tri_nh4 =            1.,           -99.,          'AA' 
     248/ 
     249!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
    209250&nampiskrp     !   Kriest parameterization : parameters     "key_kriest" 
    210251!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
  • branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/CONFIG/SHARED/namelist_top_ref

    r5102 r5367  
    8080                           !                   =2 no damping in the mixed  layer (rho crieria) 
    8181   cn_resto_tr  = 'resto_tr.nc'    !  create a damping.coeff NetCDF file (=1) or not (=0) 
     82!----------------------------------------------------------------------- 
     83&namtrc_ice       !    Representation of sea ice growth & melt effects 
     84!----------------------------------------------------------------------- 
     85   nn_ice_tr   =  -1        !  tracer concentration in sea ice  
     86                           !    =-1 (no vvl: identical cc in ice and ocean / vvl: cc_ice = 0) 
     87                           !    = 0 (no vvl: cc_ice = zero / vvl: cc_ice = ) 
     88                           !    = 1 prescribed to a namelist value (implemented in pisces only) 
    8289/ 
    8390!----------------------------------------------------------------------- 
  • branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/CONFIG/cfg.txt

    r5348 r5367  
    1111ORCA2_LIM3 OPA_SRC LIM_SRC_3 NST_SRC 
    1212ORCA2_LIM OPA_SRC LIM_SRC_2 NST_SRC 
     13ORCA2_OFF_PISCES OPA_SRC OFF_SRC TOP_SRC 
    1314ORCA2_LIM_OBS OPA_SRC LIM_SRC_2 NST_SRC 
    14 ORCA2_OFF_PISCES OPA_SRC OFF_SRC TOP_SRC 
  • branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90

    r5348 r5367  
    436436            END DO 
    437437         END DO 
    438          IF( cp_cfg == 'orca' ) THEN 
    439             IF( jp_cfg == 2 ) THEN 
    440                ii0 = 176   ;   ii1 =  176        ! Southern Island : Kerguelen 
    441                ij0 =  37   ;   ij1 =   37  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    442                ! 
    443                ii0 = 119   ;   ii1 =  119        ! South Georgia 
    444                ij0 =  29   ;   ij1 =   29  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    445                ! 
    446                ii0 = 111   ;   ii1 =  111        ! Falklands 
    447                ij0 =  35   ;   ij1 =   35  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    448                ! 
    449                ii0 = 168   ;   ii1 =  168        ! Crozet 
    450                ij0 =  40   ;   ij1 =   40  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    451                ! 
    452                ii0 = 119   ;   ii1 =  119        ! South Orkney 
    453                ij0 =  28   ;   ij1 =   28  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    454                ! 
    455                ii0 = 140   ;   ii1 =  140        ! Bouvet Island 
    456                ij0 =  33   ;   ij1 =   33  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    457                ! 
    458                ii0 = 178   ;   ii1 =  178        ! Prince edwards 
    459                ij0 =  34   ;   ij1 =   34  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    460                ! 
    461                ii0 =  43   ;   ii1 =   43        ! Balleny islands 
    462                ij0 =  21   ;   ij1 =   21  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    463                ! 
    464             ELSE IF( jp_cfg == 1 ) THEN 
    465                ! 
    466                ! This dirty section will be suppressed by simplification process: all this will come back in input files 
    467                ! Currently these hard-wired indices relate to the original (pre-v3.6) configuration  
    468                ! which had a grid-size of 362x292. 
    469                ! This grid has been extended southwards for use with the under ice-shelf options (isf) introduced in v3.6.  
    470                ! The original domain can still be used optionally if the isf code is not activated.  
    471                ! An adjustment (isrow) is made to the hard-wired indices if the extended domain (362x332) is being used. 
    472                !  
    473                IF    ( jpjglo == 292 ) THEN  ;  isrow = 0  ! Using pre-v3.6 files or adjusted start row from isf-extended grid 
    474                ELSEIF( jpjglo == 332 ) THEN  ;  isrow = 40 ! Using full isf­extended domain.  
    475                ENDIF      
    476  
    477                ii0 = 357             ;   ii1 =  357        ! Southern Island : Kerguelen 
    478                ij0 =  75  + isrow   ;   ij1 =  76   + isrow   
    479                zcmask( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1), 1:jpk ) = 0.3_wp 
    480                ! 
    481                ii0 = 243             ;   ii1 =  243        ! South Georgia 
    482                ij0 =  57  + isrow   ;   ij1 =   59  + isrow  
    483                zcmask( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1), 1:jpk ) = 0.3_wp 
    484                ! 
    485                ii0 = 227             ;   ii1 =  227        ! Falklands 
    486                ij0 =  71  + isrow   ;   ij1 =   73  + isrow   
    487                zcmask( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1), 1:jpk ) = 0.3_wp 
    488                ! 
    489                ii0 = 326             ;   ii1 =  327        ! Crozet 
    490                ij0 =  79  + isrow   ;   ij1 =   79  + isrow  
    491                zcmask( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1), 1:jpk ) = 0.3_wp 
    492                !  
    493                ii0 = 243             ;   ii1 =  243        ! South Orkney 
    494                ij0 =  56  + isrow   ;   ij1 =   56  + isrow   
    495                zcmask( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1), 1:jpk ) = 0.3_wp 
    496                ! 
    497                ii0 = 283             ;   ii1 =  286        ! Bouvet Island 
    498                ij0 =  66  + isrow   ;   ij1 =   66  + isrow   
    499                zcmask( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1), 1:jpk ) = 0.3_wp 
    500                ! 
    501                ii0 = 361             ;   ii1 =  361        ! Prince edwards 
    502                ij0 =  67  + isrow   ;   ij1 =   68  + isrow  
    503                zcmask( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1), 1:jpk ) = 0.3_wp 
    504                ! 
    505                ii0 =  91             ;   ii1 =   92        ! Balleny islands 
    506                ij0 =  42  + isrow   ;   ij1 =   43  + isrow  
    507                zcmask( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1), 1:jpk ) = 0.3_wp 
    508                ! 
    509             ELSE IF( jp_cfg == 05 ) THEN 
    510                ! 
    511                CALL ctl_warn( ' Coastal supply of iron modifications for southern Islands in ORCA_R05' ) 
    512                ! 
    513             ELSE IF( jp_cfg == 025 ) THEN 
    514                ! 
    515                CALL ctl_warn( ' Coastal supply of iron modifications for southern Islands in ORCA_R025' ) 
    516                ! 
    517             ENDIF 
    518             ! 
    519          ENDIF 
     438         ! 
    520439         CALL lbc_lnk( zcmask , 'T', 1. )      ! lateral boundary conditions on cmask   (sign unchanged) 
     440         ! 
    521441         DO jk = 1, jpk 
    522442            DO jj = 1, jpj 
  • branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/NEMO/TOP_SRC/TRP/trcsbc.F90

    r4990 r5367  
    2626 
    2727   PUBLIC   trc_sbc   ! routine called by step.F90 
     28 
     29   REAL(wp) ::   r2dt  !  time-step at surface 
    2830 
    2931   !! * Substitutions 
     
    6062      INTEGER, INTENT( in ) ::   kt          ! ocean time-step index 
    6163      ! 
    62       INTEGER  ::   ji, jj, jn           ! dummy loop indices 
    63       REAL(wp) ::   zsrau, zse3t   ! temporary scalars 
     64      INTEGER  ::   ji, jj, jn                                     ! dummy loop indices 
     65      REAL(wp) ::   zse3t, zrtrn, zratio                           ! temporary scalars 
     66      REAL(wp) ::   zswitch, zftra, zcd, zdtra, ztfx, ztra         ! temporary scalars 
    6467      CHARACTER (len=22) :: charout 
    6568      REAL(wp), POINTER, DIMENSION(:,:  ) :: zsfx 
    6669      REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrtrd 
     70 
    6771      !!--------------------------------------------------------------------- 
    6872      ! 
     
    7276                      CALL wrk_alloc( jpi, jpj,      zsfx   ) 
    7377      IF( l_trdtrc )  CALL wrk_alloc( jpi, jpj, jpk, ztrtrd ) 
     78      ! 
     79      zrtrn = 1.e-15_wp 
     80 
     81      SELECT CASE( nn_ice_embd )         ! levitating or embedded sea-ice option 
     82         CASE( 0    )   ;   zswitch = 1  ! (0) standard levitating sea-ice : salt exchange only 
     83         CASE( 1, 2 )   ;   zswitch = 0  ! (1) levitating sea-ice: salt and volume exchange but no pressure effect                                 
     84                                         ! (2) embedded sea-ice : salt and volume fluxes and pressure 
     85      END SELECT 
     86 
     87      IF( ln_top_euler) THEN 
     88         r2dt =  rdttrc(1)              ! = rdttrc (use Euler time stepping) 
     89      ELSE 
     90         IF( neuler == 0 .AND. kt == nittrc000 ) THEN     ! at nittrc000 
     91            r2dt = rdttrc(1)           ! = rdttrc (restarting with Euler time stepping) 
     92         ELSEIF( kt <= nittrc000 + nn_dttrc ) THEN          ! at nittrc000 or nittrc000+1 
     93            r2dt = 2. * rdttrc(1)       ! = 2 rdttrc (leapfrog) 
     94         ENDIF 
     95      ENDIF 
     96 
    7497 
    7598      IF( kt == nittrc000 ) THEN 
     
    90113 
    91114      ! 0. initialization 
    92       zsrau = 1. / rau0 
    93115      DO jn = 1, jptra 
    94116         ! 
    95117         IF( l_trdtrc ) ztrtrd(:,:,:) = tra(:,:,:,jn)  ! save trends 
    96118         !                                             ! add the trend to the general tracer trend 
    97          DO jj = 2, jpj 
    98             DO ji = fs_2, fs_jpim1   ! vector opt. 
    99                zse3t = 1. / fse3t(ji,jj,1) 
    100                tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + zsfx(ji,jj) *  zsrau * trn(ji,jj,1,jn) * zse3t 
     119 
     120         IF ( nn_ice_tr == -1 ) THEN  ! No tracers in sea ice (null concentration in sea ice) 
     121 
     122            DO jj = 2, jpj 
     123               DO ji = fs_2, fs_jpim1   ! vector opt. 
     124                  zse3t = 1. / fse3t(ji,jj,1) 
     125                  tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + zsfx(ji,jj) * r1_rau0 * trn(ji,jj,1,jn) * zse3t 
     126               END DO 
    101127            END DO 
    102          END DO 
     128 
     129         ELSE 
     130 
     131            DO jj = 2, jpj 
     132               DO ji = fs_2, fs_jpim1   ! vector opt. 
     133 
     134                  zse3t = 1. / fse3t(ji,jj,1) 
     135                   
     136                  ! tracer flux at the ice/ocean interface (tracer/m2/s) 
     137                  zftra = - trc_i(ji,jj,jn) * fmmflx(ji,jj) ! uptake of tracer in the sea ice 
     138                  zcd   =   trc_o(ji,jj,jn) * fmmflx(ji,jj) ! concentration dilution due to freezing-melting, 
     139                                                               ! only used in the levitating sea ice case 
     140                  ! tracer flux only       : add concentration dilution term in net tracer flux, no F-M in volume flux 
     141                  ! tracer and mass fluxes : no concentration dilution term in net tracer flux, F-M term in volume flux 
     142                  ztfx  = zftra + zswitch * zcd                ! net tracer flux (+C/D if no ice/ocean mass exchange) 
     143    
     144                  zdtra = r1_rau0 * ( ztfx + zsfx(ji,jj) * trn(ji,jj,1,jn) ) * zse3t 
     145                  IF ( zdtra < 0. ) THEN 
     146                     zratio = -zdtra * r2dt / ( trn(ji,jj,1,jn) + zrtrn ) 
     147                     zdtra = MIN(1.0, zratio) * zdtra ! avoid negative concentrations to arise 
     148                  ENDIF 
     149                       
     150                  tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + zdtra  
     151    
     152               END DO 
     153            END DO 
     154    
     155         ENDIF 
    103156          
    104157         IF( l_trdtrc ) THEN 
  • branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/NEMO/TOP_SRC/trc.F90

    r5236 r5367  
    3434   REAL(wp), PUBLIC                                                ::  areatot        !: total volume  
    3535   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:  )         ::  cvol           !: volume correction -degrad option-  
    36    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:)         ::  trn            !: traceur concentration for now time step 
    37    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:)         ::  tra            !: traceur concentration for next time step 
    38    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:)         ::  trb            !: traceur concentration for before time step 
     36   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:)         ::  trn            !: tracer concentration for now time step 
     37   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:)         ::  tra            !: tracer concentration for next time step 
     38   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:)         ::  trb            !: tracer concentration for before time step 
     39   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:  )         ::  trc_i          !: prescribed tracer concentration in sea ice for SBC 
     40   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:  )         ::  trc_o          !: prescribed tracer concentration in ocean for SBC 
     41   INTEGER             , PUBLIC                                    ::  nn_ice_tr      !: handling of sea ice tracers 
    3942 
    4043   !! interpolated gradient 
     
    4447   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)           ::  gtrui          !: hor. gradient at u-points at top    ocean level 
    4548   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)           ::  gtrvi          !: hor. gradient at v-points at top    ocean level 
    46    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)             ::  qsr_mean       !: i-horizontal velocity average     [m/s] 
    4749    
    4850   !! passive tracers  (input and output) 
     
    5759   CHARACTER(len = 80) , PUBLIC                                    ::  cn_trcrst_out  !: suffix of pass. tracer restart name (output) 
    5860   REAL(wp)            , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)   ::  rdttrc         !: vertical profile of passive tracer time step 
    59    LOGICAL             , PUBLIC                                    ::  ln_top_euler   !: boolean term for euler integration  
     61   LOGICAL             , PUBLIC                                    ::  ln_top_euler  !: boolean term for euler integration  
    6062   LOGICAL             , PUBLIC                                    ::  ln_trcdta      !: Read inputs data from files 
    6163   LOGICAL             , PUBLIC                                    ::  ln_trcdmp      !: internal damping flag 
    6264   LOGICAL             , PUBLIC                                    ::  ln_trcdmp_clo  !: internal damping flag on closed seas 
    63    INTEGER             , PUBLIC                                    ::  nittrc000      !: first time step of passive tracers model 
    64    LOGICAL             , PUBLIC                                    ::  l_trcdm2dc     !: Diurnal cycle for TOP 
     65   INTEGER             , PUBLIC                                    ::  nittrc000       !: first time step of passive tracers model 
     66 
     67   !! Information for the ice module for tracers 
     68   !! ------------------------------------------ 
     69   TYPE TRC_I_NML                    !--- Ice tracer namelist structure 
     70         REAL(wp)         :: trc_ratio  ! ice-ocean trc ratio 
     71         REAL(wp)         :: trc_prescr ! prescribed ice trc cc 
     72         CHARACTER(len=2) :: ctrc_o     ! choice of ocean trc cc 
     73   END TYPE 
     74 
     75   REAL(wp), DIMENSION(jptra), PUBLIC         :: trc_ice_ratio, & ! ice-ocean tracer ratio 
     76                                                 trc_ice_prescr   ! prescribed ice trc cc 
     77   CHARACTER(len=2), DIMENSION(jptra), PUBLIC :: cn_trc_o ! choice of ocean tracer cc 
    6578 
    6679   !! information for outputs 
     
    187200      ! 
    188201      ALLOCATE( trn(jpi,jpj,jpk,jptra), trb(jpi,jpj,jpk,jptra), tra(jpi,jpj,jpk,jptra),       &   
     202         &      trc_i(jpi,jpj,jptra)  , trc_o(jpi,jpj,jptra)                          ,       & 
    189203         &      gtru (jpi,jpj,jptra)  , gtrv (jpi,jpj,jptra)                          ,       & 
    190204         &      gtrui(jpi,jpj,jptra)  , gtrvi(jpi,jpj,jptra)                          ,       & 
    191205         &      cvol(jpi,jpj,jpk)     , rdttrc(jpk)           , trai(jptra)           ,       & 
    192206         &      ctrcnm(jptra)         , ctrcln(jptra)         , ctrcun(jptra)         ,       &  
    193          &      ln_trc_ini(jptra)     , ln_trc_wri(jptra) , qsr_mean(jpi,jpj)         ,  STAT = trc_alloc  )   
     207         &      ln_trc_ini(jptra)     , ln_trc_wri(jptra)                             ,  STAT = trc_alloc  )   
    194208 
    195209      IF( trc_alloc /= 0 )   CALL ctl_warn('trc_alloc: failed to allocate arrays') 
  • branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/NEMO/TOP_SRC/trcini.F90

    r5236 r5367  
    3131   USE lib_mpp         ! distribued memory computing library 
    3232   USE sbc_oce 
     33   USE trcice          ! tracers in sea ice 
    3334  
    3435   IMPLICIT NONE 
     
    100101      IF( lk_c14b    )       CALL trc_ini_c14b         ! C14 bomb  tracer 
    101102      IF( lk_my_trc  )       CALL trc_ini_my_trc       ! MY_TRC  tracers 
     103 
     104      CALL trc_ice_ini                                 ! Tracers in sea ice 
    102105 
    103106      IF( lwp ) THEN 
  • branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/NEMO/TOP_SRC/trcnam.F90

    r4990 r5367  
    147147 
    148148 
     149      ! Call the ice module for tracers 
     150      ! ------------------------------- 
     151      CALL trc_nam_ice 
     152 
    149153      ! namelist of SMS 
    150154      ! ---------------       
     
    215219    END SUBROUTINE trc_nam_run 
    216220 
     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 
    217269 
    218270   SUBROUTINE trc_nam_trc 
  • branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/SETTE/sette.sh

    r4990 r5367  
    142142# ORCA2_LIM_OBS:   15 
    143143# ORCA2_AGRIF_LIM :16 
    144 for config in  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
     144for config in  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 
    145145 
    146146do 
Note: See TracChangeset for help on using the changeset viewer.