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 5206 for branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90 – NEMO

Ignore:
Timestamp:
2015-04-13T12:13:10+02:00 (9 years ago)
Author:
cetlod
Message:

First improvment of diurnal cycle for passive tracers, see ticket #1484

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90

    r4996 r5206  
    136136            DO jj = 1, jpj 
    137137               DO ji = 1, jpi 
    138                   zcoef = ryyss * cvol(ji,jj,1)  
     138                  zcoef = ryyss * e1e2t(ji,jj) * h_rnf(ji,jj)  
    139139                  rivalk(ji,jj) =   sf_river(jr_dic)%fnow(ji,jj,1)                                    & 
    140140                     &              * 1.E3        / ( 12. * zcoef + rtrn ) 
     
    187187      INTEGER  :: ierr, ierr1, ierr2, ierr3 
    188188      INTEGER  :: ios                 ! Local integer output status for namelist read 
     189      INTEGER  :: ik50               !  last level where depth less than 50 m 
    189190      REAL(wp) :: zexpide, zdenitide, zmaskt 
    190191      REAL(wp) :: ztimes_dust, ztimes_riv, ztimes_ndep  
     
    247248      ENDIF 
    248249 
     250      ! set the number of level over which river runoffs are applied  
     251      ! online configuration : computed in sbcrnf 
     252      IF( lk_offline ) THEN 
     253        nk_rnf(:,:) = 1 
     254        h_rnf (:,:) = fsdept(:,:,1) 
     255      ENDIF 
     256 
    249257      ! dust input from the atmosphere 
    250258      ! ------------------------------ 
     
    410418         CALL iom_close( numiron ) 
    411419         ! 
    412          DO jk = 1, 5 
     420         ik50 = 5        !  last level where depth less than 50 m 
     421         DO jk = jpkm1, 1, -1 
     422            IF( gdept_1d(jk) > 50. )  ik50 = jk - 1 
     423         END DO 
     424         IF (lwp) WRITE(numout,*) 
     425         IF (lwp) WRITE(numout,*) ' Level corresponding to 50m depth ',  ik50,' ', gdept_1d(ik50+1) 
     426         IF (lwp) WRITE(numout,*) 
     427         DO jk = 1, ik50 
    413428            DO jj = 2, jpjm1 
    414429               DO ji = fs_2, fs_jpim1 
     
    421436            END DO 
    422437         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   
     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               ii0 = 357   ;   ii1 =  357        ! Southern Island : Kerguelen 
     467               ij0 =  75   ;   ij1 =   76  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp 
     468               ! 
     469               ii0 = 243   ;   ii1 =  243        ! South Georgia 
     470               ij0 =  57   ;   ij1 =   59  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp 
     471               ! 
     472               ii0 = 227   ;   ii1 =  227        ! Falklands 
     473               ij0 =  71   ;   ij1 =   73  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp 
     474               ! 
     475               ii0 = 326   ;   ii1 =  327        ! Crozet 
     476               ij0 =  79   ;   ij1 =   79  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp 
     477               ! 
     478               ii0 = 243   ;   ii1 =  243        ! South Orkney 
     479               ij0 =  56   ;   ij1 =   56  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp 
     480               ! 
     481               ii0 = 283   ;   ii1 =  286        ! Bouvet Island 
     482               ij0 =  66   ;   ij1 =   66  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp 
     483               ! 
     484               ii0 = 361   ;   ii1 =  361        ! Prince edwards 
     485               ij0 =  67   ;   ij1 =   68  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp 
     486               ! 
     487               ii0 =  91   ;   ii1 =   92        ! Balleny islands 
     488               ij0 =  42   ;   ij1 =   43  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp 
     489               ! 
     490            ELSE IF( jp_cfg == 05 ) THEN 
     491               ! 
     492               CALL ctl_warn( ' Coastal supply of iron modifications for southern Islands in ORCA_R05' ) 
     493               ! 
     494            ELSE IF( jp_cfg == 025 ) THEN 
     495               ! 
     496               CALL ctl_warn( ' Coastal supply of iron modifications for southern Islands in ORCA_R025' ) 
     497               ! 
     498            ENDIF 
    426499            ! 
    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   
    447500         ENDIF 
    448501         CALL lbc_lnk( zcmask , 'T', 1. )      ! lateral boundary conditions on cmask   (sign unchanged) 
Note: See TracChangeset for help on using the changeset viewer.