Changeset 910


Ignore:
Timestamp:
2008-04-25T10:41:08+02:00 (13 years ago)
Author:
ctlod
Message:

adapt few modules to the surface module interface, see ticket: #113

Location:
trunk/NEMO/TOP_SRC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/TOP_SRC/TRP/trcadv_cen2.F90

    r888 r910  
    99   !!                  and vertical advection trends using a 2nd order  
    1010   !!                  centered finite difference scheme 
     11   !!   ups_orca_set : allow mixed upstream/centered scheme in specific 
     12   !!                  area (set for orca 2 and 4 only) 
    1113   !!---------------------------------------------------------------------- 
    1214   !! * Modules used 
     
    1517   USE trcbbl              ! advective passive tracers in the BBL 
    1618   USE prtctl_trc 
     19   USE sbcrnf              ! river runoffs 
     20   USE closea              ! closed sea 
    1721 
    1822   IMPLICIT NONE 
     
    2125   !! * Accessibility 
    2226   PUBLIC trc_adv_cen2    ! routine called by trcstp.F90 
     27   PUBLIC ups_orca_set    ! routine used by trcadv_cen2.F90 
     28 
     29   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   upsmsk    !: mixed upstream/centered scheme near some straits  
     30   !                                                   !  and in closed seas (orca 2 and 4 configurations) 
    2331 
    2432   !! * Substitutions 
     
    144152    
    145153         zbtr2(:,:) = 1. / ( e1t(:,:) * e2t(:,:) ) 
     154         ! 
     155         upsmsk(:,:) = 0.e0                              ! not upstream by default 
     156         IF( cp_cfg == "orca" )   CALL ups_orca_set      ! set mixed Upstream/centered scheme near some straits 
     157         !                                               ! and in closed seas (orca2 and orca4 only) 
     158         !    
    146159      ENDIF 
    147160 
     
    162175         DO jj = 1, jpj 
    163176            DO ji = 1, jpi 
    164                zind(ji,jj,jk) =  MAX ( upsrnfh(ji,jj) * upsrnfz(jk),     &  ! changing advection scheme near runoff 
    165                   &                    upsadv(ji,jj)                     &  ! in the vicinity of some straits 
     177               zind(ji,jj,jk) =  MAX ( rnfmsk(ji,jj) * rnfmsk_z(jk),     &  ! changing advection scheme near runoff 
     178                  &                    upsmsk(ji,jj)                     &  ! in the vicinity of some straits 
    166179#if defined key_lim3 || defined key_lim2 
    167180                  &                  , tmask(ji,jj,jk)                   &  ! half upstream tracer fluxes 
     
    332345 
    333346   END SUBROUTINE trc_adv_cen2 
     347    
     348   SUBROUTINE ups_orca_set 
     349      !!---------------------------------------------------------------------- 
     350      !!                  ***  ROUTINE ups_orca_set  *** 
     351      !!        
     352      !! ** Purpose :   add a portion of upstream scheme in area where the 
     353      !!                centered scheme generates too strong overshoot 
     354      !! 
     355      !! ** Method  :   orca (R4 and R2) confiiguration setting. Set upsmsk 
     356      !!                array to nozero value in some straith.  
     357      !! 
     358      !! ** Action : - upsmsk set to 1 at some strait, 0 elsewhere for orca 
     359      !!---------------------------------------------------------------------- 
     360      INTEGER  ::   ii0, ii1, ij0, ij1      ! temporary integers 
     361      !!---------------------------------------------------------------------- 
     362       
     363      ! mixed upstream/centered scheme near river mouths 
     364      ! ------------------------------------------------ 
     365      SELECT CASE ( jp_cfg ) 
     366      !                                        ! ======================= 
     367      CASE ( 4 )                               !  ORCA_R4 configuration  
     368         !                                     ! ======================= 
     369         !                                          ! Gibraltar Strait 
     370         ii0 =  70   ;   ii1 =  71 
     371         ij0 =  52   ;   ij1 =  53   ;   upsmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 0.50 
     372         ! 
     373         !                                     ! ======================= 
     374      CASE ( 2 )                               !  ORCA_R2 configuration  
     375         !                                     ! ======================= 
     376         !                                          ! Gibraltar Strait 
     377         ij0 = 102   ;   ij1 = 102 
     378         ii0 = 138   ;   ii1 = 138   ;   upsmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 0.20 
     379         ii0 = 139   ;   ii1 = 139   ;   upsmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 0.40 
     380         ii0 = 140   ;   ii1 = 140   ;   upsmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 0.50 
     381         ij0 = 101   ;   ij1 = 102 
     382         ii0 = 141   ;   ii1 = 141   ;   upsmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 0.50 
     383         !                                          ! Bab el Mandeb Strait 
     384         ij0 =  87   ;   ij1 =  88 
     385         ii0 = 164   ;   ii1 = 164   ;   upsmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 0.10 
     386         ij0 =  88   ;   ij1 =  88 
     387         ii0 = 163   ;   ii1 = 163   ;   upsmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 0.25 
     388         ii0 = 162   ;   ii1 = 162   ;   upsmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 0.40 
     389         ii0 = 160   ;   ii1 = 161   ;   upsmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 0.50 
     390         ij0 =  89   ;   ij1 =  89 
     391         ii0 = 158   ;   ii1 = 160   ;   upsmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 0.25 
     392         ij0 =  90   ;   ij1 =  90 
     393         ii0 = 160   ;   ii1 = 160   ;   upsmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 0.25 
     394         !                                          ! Sound Strait 
     395         ij0 = 116   ;   ij1 = 116 
     396         ii0 = 144   ;   ii1 = 144   ;   upsmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 0.25 
     397         ii0 = 145   ;   ii1 = 147   ;   upsmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 0.50 
     398         ii0 = 148   ;   ii1 = 148   ;   upsmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 0.25 
     399         ! 
     400      END SELECT  
     401       
     402      ! mixed upstream/centered scheme over closed seas 
     403      ! ----------------------------------------------- 
     404      CALL clo_ups( upsmsk(:,:) ) 
     405      ! 
     406   END SUBROUTINE ups_orca_set 
     407 
    334408#else 
    335409 
     
    342416      WRITE(*,*) 'trc_adv_cen2: You should not have seen this print! error?', kt 
    343417   END SUBROUTINE trc_adv_cen2 
     418   SUBROUTINE ups_orca_set 
     419   END SUBROUTINE ups_orca_set 
    344420#endif 
    345421   !!====================================================================== 
  • trunk/NEMO/TOP_SRC/oce_trc.F90

    r719 r910  
    208208 
    209209   !! wind speed 
    210    USE taumod , ONLY :        &      
    211       taux    =>    taux ,  &  !: i-surface stress component 
    212       tauy    =>    tauy       !: j-surface stress component 
     210   USE sbc_oce , ONLY :     &      
     211      taux    =>    utau ,  &  !: i-surface stress component 
     212      tauy    =>    vtau ,  &  !: j-surface stress component 
     213      qsr     =>    qsr  ,  &  !: penetrative solar radiation (w m-2)   
     214      emp     =>    emp  ,  &  !: evaporation minus precipitation (kg m-2 s-2)  
     215      emps    =>    emps       !: evaporation minus precipitation (kg m-2 s-2) 
     216 
    213217 
    214218#if   defined key_trabbl_dif   ||   defined key_trabbl_adv 
     
    252256      ln_qsr_sms  =>  ln_qsr_sms    !: flag to use or not the biological fluxes for light 
    253257 
    254    !! surface fluxes 
    255    USE ocesbc , ONLY :             &    
    256       qt      =>    qt    ,  & !: total surface heat flux (w m-2)    
    257       qsr     =>    qsr   ,  & !: penetrative solar radiation (w m-2)   
    258       emp     =>    emp   ,  & !: evaporation minus precipitation (kg m-2 s-2)  
    259       emps    =>    emps       !: evaporation minus precipitation (kg m-2 s-2) 
    260  
    261258   !! freezing area 
    262259   USE ocfzpt , ONLY :            &       
     
    283280 
    284281   !! ocean forcings runoff 
    285    USE flxrnf , ONLY :              &    
    286       upsrnfh =>   upsrnfh ,  & !: mixed adv scheme in runoffs vicinity (hori.)  
    287       upsrnfz =>   upsrnfz ,  & !: mixed adv scheme in runoffs vicinity (vert.) 
    288       upsadv  =>   upsadv       !: mixed adv scheme in straits vicinity (hori.) 
     282   USE sbcrnf , ONLY :         &    
     283      upsrnfh => rnfmsk     ,  & !: mixed adv scheme in runoffs vicinity (hori.)  
     284      upsrnfz => rnfmsk_z        !: mixed adv scheme in runoffs vicinity (vert.) 
    289285 
    290286END MODULE oce_trc 
Note: See TracChangeset for help on using the changeset viewer.