Ignore:
Timestamp:
2015-07-15T17:46:12+02:00 (5 years ago)
Author:
andrewryan
Message:

merged in latest version of trunk alongside changes to SAO_SRC to be compatible with latest OBS

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2014/dev_r4650_UKMO14.12_STAND_ALONE_OBSOPER/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90

    • Property svn:keywords set to Id
    r5034 r5600  
    8585   !!---------------------------------------------------------------------- 
    8686   !! NEMO/TOP 3.3 , NEMO Consortium (2010) 
    87    !! $Header:$  
     87   !! $Id$  
    8888   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
    8989   !!---------------------------------------------------------------------- 
     
    117117         IF( kt == nit000 .OR. ( kt /= nit000 .AND. ntimes_dust > 1 ) ) THEN 
    118118            CALL fld_read( kt, 1, sf_dust ) 
    119             dust(:,:) = sf_dust(1)%fnow(:,:,1) 
     119            IF( nn_ice_tr == -1 .AND. .NOT. ln_ironice ) THEN 
     120               dust(:,:) = sf_dust(1)%fnow(:,:,1) 
     121            ELSE 
     122               dust(:,:) = sf_dust(1)%fnow(:,:,1) * ( 1.0 - fr_i(:,:) ) 
     123            ENDIF 
    120124         ENDIF 
    121125      ENDIF 
     
    136140            DO jj = 1, jpj 
    137141               DO ji = 1, jpi 
    138                   zcoef = ryyss * cvol(ji,jj,1)  
     142                  zcoef = ryyss * e1e2t(ji,jj) * h_rnf(ji,jj)  
    139143                  rivalk(ji,jj) =   sf_river(jr_dic)%fnow(ji,jj,1)                                    & 
    140144                     &              * 1.E3        / ( 12. * zcoef + rtrn ) 
     
    187191      INTEGER  :: ierr, ierr1, ierr2, ierr3 
    188192      INTEGER  :: ios                 ! Local integer output status for namelist read 
     193      INTEGER  :: ik50                !  last level where depth less than 50 m 
     194      INTEGER  :: isrow             ! index for ORCA1 starting row 
    189195      REAL(wp) :: zexpide, zdenitide, zmaskt 
    190196      REAL(wp) :: ztimes_dust, ztimes_riv, ztimes_ndep  
     
    216222902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampissbc in configuration namelist', lwp ) 
    217223      IF(lwm) WRITE ( numonp, nampissbc ) 
     224 
     225      IF ( ( nn_ice_tr >= 0 ) .AND. ln_ironice ) THEN 
     226         IF(lwp) THEN 
     227            WRITE(numout,*) ' ln_ironice incompatible with nn_ice_tr = ', nn_ice_tr 
     228            WRITE(numout,*) ' Specify your sea ice iron concentration in nampisice instead ' 
     229            WRITE(numout,*) ' ln_ironice is forced to .FALSE. ' 
     230            ln_ironice = .FALSE. 
     231         ENDIF 
     232      ENDIF 
    218233 
    219234      IF(lwp) THEN 
     
    247262      ENDIF 
    248263 
     264      ! set the number of level over which river runoffs are applied  
     265      ! online configuration : computed in sbcrnf 
     266      IF( lk_offline ) THEN 
     267        nk_rnf(:,:) = 1 
     268        h_rnf (:,:) = fsdept(:,:,1) 
     269      ENDIF 
     270 
    249271      ! dust input from the atmosphere 
    250272      ! ------------------------------ 
     
    358380         rivalkinput = 0._wp 
    359381      END IF  
    360  
    361382      ! nutrient input from dust 
    362383      ! ------------------------ 
     
    410431         CALL iom_close( numiron ) 
    411432         ! 
    412          DO jk = 1, 5 
     433         ik50 = 5        !  last level where depth less than 50 m 
     434         DO jk = jpkm1, 1, -1 
     435            IF( gdept_1d(jk) > 50. )  ik50 = jk - 1 
     436         END DO 
     437         IF (lwp) WRITE(numout,*) 
     438         IF (lwp) WRITE(numout,*) ' Level corresponding to 50m depth ',  ik50,' ', gdept_1d(ik50+1) 
     439         IF (lwp) WRITE(numout,*) 
     440         DO jk = 1, ik50 
    413441            DO jj = 2, jpjm1 
    414442               DO ji = fs_2, fs_jpim1 
     
    421449            END DO 
    422450         END DO 
    423          IF( cp_cfg == 'orca' .AND. jp_cfg == 2 ) THEN 
    424             ii0 = 176   ;   ii1 =  176        ! Southern Island : Kerguelen 
    425             ij0 =  37   ;   ij1 =   37  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    426             ! 
    427             ii0 = 119   ;   ii1 =  119        ! South Georgia 
    428             ij0 =  29   ;   ij1 =   29  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    429             ! 
    430             ii0 = 111   ;   ii1 =  111        ! Falklands 
    431             ij0 =  35   ;   ij1 =   35  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    432             ! 
    433             ii0 = 168   ;   ii1 =  168        ! Crozet 
    434             ij0 =  40   ;   ij1 =   40  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    435             ! 
    436             ii0 = 119   ;   ii1 =  119        ! South Orkney 
    437             ij0 =  28   ;   ij1 =   28  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    438             ! 
    439             ii0 = 140   ;   ii1 =  140        ! Bouvet Island 
    440             ij0 =  33   ;   ij1 =   33  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    441             ! 
    442             ii0 = 178   ;   ii1 =  178        ! Prince edwards 
    443             ij0 =  34   ;   ij1 =   34  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    444             ! 
    445             ii0 =  43   ;   ii1 =   43        ! Balleny islands 
    446             ij0 =  21   ;   ij1 =   21  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    447          ENDIF 
     451         ! 
    448452         CALL lbc_lnk( zcmask , 'T', 1. )      ! lateral boundary conditions on cmask   (sign unchanged) 
     453         ! 
    449454         DO jk = 1, jpk 
    450455            DO jj = 1, jpj 
Note: See TracChangeset for help on using the changeset viewer.