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

Changeset 6075


Ignore:
Timestamp:
2015-12-17T09:50:30+01:00 (8 years ago)
Author:
timgraham
Message:

Lots of bug fixes to get sette to compile

Location:
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DIA/diacfl.F90

    r6073 r6075  
    3434 
    3535   !! * Substitutions 
    36 #  include "domzgr_substitute.h90" 
    3736#  include "vectopt_loop_substitute.h90" 
    3837   !!---------------------------------------------------------------------- 
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DIA/diahsb.F90

    r6069 r6075  
    165165         ! heat content variation 
    166166         zdiff_hc = zdiff_hc + glob_sum_full(  surf(:,:) * tmask(:,:,jk)                                   &  
    167             &                           * e3t_n(:,:,jk) * tsn(:,:,jk,jp_tem) - surf_ini(:,:) * hc_loc_ini(:,:,jk) ) ) 
     167            &                           * e3t_n(:,:,jk) * tsn(:,:,jk,jp_tem) - surf_ini(:,:) * hc_loc_ini(:,:,jk) )  
    168168         ! salt content variation 
    169169         zdiff_sc = zdiff_sc + glob_sum_full( surf    (:,:) * tmask(:,:,jk)                           & 
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DIU/cool_skin.F90

    r6010 r6075  
    4040 
    4141      !! * Substitutions 
    42 #  include "domzgr_substitute.h90" 
    4342#  include "vectopt_loop_substitute.h90" 
    4443    
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90

    r6069 r6075  
    119119         CALL wrk_alloc( jpi,jpj,   z1_hu_0, z1_hv_0 ) 
    120120         ! 
    121          z1_hu_0(:,:) = umask_i(:,:) / ( hu_0(:,:) + 1._wp - umask_i(:,:) )     ! _i mask due to ISF 
    122          z1_hv_0(:,:) = vmask_i(:,:) / ( hv_0(:,:) + 1._wp - vmask_i(:,:) ) 
     121         z1_hu_0(:,:) = ssumask(:,:) / ( hu_0(:,:) + 1._wp - ssumask(:,:) )     ! _i mask due to ISF 
     122         z1_hv_0(:,:) = ssvmask(:,:) / ( hv_0(:,:) + 1._wp - ssvmask(:,:) ) 
    123123         ! 
    124124         !        before       !          now          !       after         ! 
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90

    r6069 r6075  
    537537      END DO 
    538538      !                                        ! Inverse of the local depth 
    539 <<<<<<< .working 
    540539!!gm BUG ?  don't understand the use of umask_i here ..... 
    541540      r1_hu_a(:,:) = ssumask(:,:) / ( hu_a(:,:) + 1._wp - ssumask(:,:) ) 
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DOM/iscplhsb.F90

    r6074 r6075  
    3232   PUBLIC   iscpl_cons        
    3333   !! * Substitutions   
    34 #  include "domzgr_substitute.h90"   
    3534#  include "vectopt_loop_substitute.h90" 
    3635   !!---------------------------------------------------------------------- 
     
    9594      !  
    9695      zdssh(:,:) = sshn(:,:) * ssmask(:,:) - sshb(:,:) * psmask_b(:,:) 
    97       IF ( lk_vvl ) zdssh = 0.0_wp ! already included in the levels by definition 
     96      IF (.NOT. ln_linssh ) zdssh = 0.0_wp ! already included in the levels by definition 
    9897       
    9998      DO jk = 1,jpk-1 
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DOM/iscplini.F90

    r6069 r6075  
    3030   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:  ) ::   hdiv_iscpl 
    3131   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   htsc_iscpl 
    32    !! * Substitutions   
    33 #  include "domzgr_substitute.h90"   
    3432   !!---------------------------------------------------------------------- 
    3533   !! NEMO/OPA 3.3 , NEMO Consortium (2010) 
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DOM/iscplrst.F90

    r6074 r6075  
    3232   !! 
    3333   !! * Substitutions   
    34 #  include "domzgr_substitute.h90"   
    3534#  include "vectopt_loop_substitute.h90" 
    3635   !!---------------------------------------------------------------------- 
     
    211210 
    212211!============================================================================= 
    213       IF ( lk_vvl ) THEN 
     212!PM: Is this needed since introduction of VVL by default? 
     213      IF (.NOT.ln_linssh) THEN 
    214214      ! Reconstruction of all vertical scale factors at now time steps 
    215215      ! ============================================================================= 
     
    264264      ! t-, u- and v- water column thickness 
    265265      ! ------------------------------------ 
    266          ht(:,:) = 0._wp ; hu(:,:) = 0._wp ; hv(:,:) = 0._wp 
     266         ht_n(:,:) = 0._wp ; hu_n(:,:) = 0._wp ; hv_n(:,:) = 0._wp 
    267267         DO jk = 1, jpkm1 
    268268            hu_n(:,:) = hu_n(:,:) + e3u_n(:,:,jk) * umask(:,:,jk) 
     
    386386 
    387387      ! compute new T/S (interpolation) if vvl only for common wet cell in before and after wmask 
    388       IF ( lk_vvl ) THEN 
     388      !PM: Is this IF needed since change to VVL by default 
     389      IF (.NOT.ln_linssh) THEN 
    389390         DO jk = 2,jpk-1 
    390391            DO jj = 1,jpj 
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90

    r6074 r6075  
    228228            DO ji = 1, jpi 
    229229               ikt=mikt(ji,jj) 
    230                ziceload(ji,jj) = ziceload(ji,jj) + (znad + zrhd(ji,jj,1) ) * e3w(ji,jj,1) * (1._wp - tmask(ji,jj,1)) 
     230               ziceload(ji,jj) = ziceload(ji,jj) + (znad + zrhd(ji,jj,1) ) * e3w_n(ji,jj,1) * (1._wp - tmask(ji,jj,1)) 
    231231               DO jk=2,ikt-1 
    232                   ziceload(ji,jj) = ziceload(ji,jj) + (2._wp * znad + zrhd(ji,jj,jk-1) + zrhd(ji,jj,jk)) * e3w(ji,jj,jk) & 
     232                  ziceload(ji,jj) = ziceload(ji,jj) + (2._wp * znad + zrhd(ji,jj,jk-1) + zrhd(ji,jj,jk)) * e3w_n(ji,jj,jk) & 
    233233                     &                              * (1._wp - tmask(ji,jj,jk)) 
    234234               END DO 
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90

    r6069 r6075  
    795795                            &     + rdtbt * ( zhust_e(ji,jj)  *    zwx(ji,jj)   &  
    796796                            &               + zhup2_e(ji,jj)  * zu_trd(ji,jj)   & 
    797                             &               +      hu(ji,jj)  * zu_frc(ji,jj) ) & 
     797                            &               +    hu_n(ji,jj)  * zu_frc(ji,jj) ) & 
    798798                            &   ) * zhura 
    799799 
     
    801801                            &     + rdtbt * ( zhvst_e(ji,jj)  *    zwy(ji,jj)   & 
    802802                            &               + zhvp2_e(ji,jj)  * zv_trd(ji,jj)   & 
    803                             &               +      hv(ji,jj)  * zv_frc(ji,jj) ) & 
     803                            &               +    hv_n(ji,jj)  * zv_frc(ji,jj) ) & 
    804804                            &   ) * zhvra 
    805805               END DO 
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90

    r6073 r6075  
    7979   !!---------------------------------------------------------------------- 
    8080 
    81    !! * Substitutions  
    82 #  include "domzgr_substitute.h90" 
    8381CONTAINS 
    8482 
     
    529527      !! * Modules used 
    530528      USE dom_oce, ONLY : &             ! Ocean space and time domain variables 
    531          & gdept_n        
     529         & gdept_n,       &       
    532530         & gdept_1d       
    533531      USE phycst, ONLY : &              ! Physical constants 
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/OBS/obs_oper.F90

    r6073 r6075  
    5656   !!---------------------------------------------------------------------- 
    5757 
    58    !! * Substitutions  
    59 #  include "domzgr_substitute.h90"  
    6058CONTAINS 
    6159 
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/OBS/obs_prep.F90

    r6073 r6075  
    4343   !!---------------------------------------------------------------------- 
    4444 
    45 !! * Substitutions 
    46 #  include "domzgr_substitute.h90"   
    4745 
    4846CONTAINS 
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/SBC/sbcisf.F90

    r6069 r6075  
    150150         DO jj = 1,jpj 
    151151            DO ji = 1,jpi 
    152                zdep(ji,jj)=fsdepw_n(ji,jj,misfkt(ji,jj)) 
     152               zdep(ji,jj)=gdepw_n(ji,jj,misfkt(ji,jj)) 
    153153            END DO 
    154154         END DO 
     
    299299            DO jj = 1, jpj 
    300300                ik = 2 
    301                 DO WHILE ( ik <= mbkt(ji,jj) .AND. fsdepw(ji,jj,ik) < rzisf_tbl(ji,jj) ) ;  ik = ik + 1 ;  END DO 
     301                DO WHILE ( ik <= mbkt(ji,jj) .AND. gdepw_n(ji,jj,ik) < rzisf_tbl(ji,jj) ) ;  ik = ik + 1 ;  END DO 
    302302                misfkt(ji,jj) = ik-1 
    303303            END DO 
     
    324324            ikb = misfkt(ji,jj) 
    325325            ! thickness of boundary layer at least the top level thickness 
    326             rhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), fse3t_n(ji,jj,ikt)) 
     326            rhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), e3t_n(ji,jj,ikt)) 
    327327 
    328328            ! determine the deepest level influenced by the boundary layer 
    329329            DO jk = ikt+1, mbkt(ji,jj) 
    330                IF ( (SUM(fse3t_n(ji,jj,ikt:jk-1)) < rhisf_tbl(ji,jj)) .AND. (tmask(ji,jj,jk) == 1) ) ikb = jk 
    331             END DO 
    332             rhisf_tbl(ji,jj) = MIN(rhisf_tbl(ji,jj), SUM(fse3t_n(ji,jj,ikt:ikb))) ! limit the tbl to water thickness. 
     330               IF ( (SUM(e3t_n(ji,jj,ikt:jk-1)) < rhisf_tbl(ji,jj)) .AND. (tmask(ji,jj,jk) == 1) ) ikb = jk 
     331            END DO 
     332            rhisf_tbl(ji,jj) = MIN(rhisf_tbl(ji,jj), SUM(e3t_n(ji,jj,ikt:ikb))) ! limit the tbl to water thickness. 
    333333            misfkb(ji,jj) = ikb                                                   ! last wet level of the tbl 
    334334            r1_hisf_tbl(ji,jj) = 1._wp / rhisf_tbl(ji,jj) 
    335335 
    336             zhk           = SUM( fse3t(ji, jj, ikt:ikb - 1)) * r1_hisf_tbl(ji,jj) ! proportion of tbl cover by cell from ikt to ikb - 1 
    337             ralpha(ji,jj) = rhisf_tbl(ji,jj) * (1._wp - zhk ) / fse3t(ji,jj,ikb)  ! proportion of bottom cell influenced by boundary layer 
     336            zhk           = SUM( e3t_n(ji, jj, ikt:ikb - 1)) * r1_hisf_tbl(ji,jj) ! proportion of tbl cover by cell from ikt to ikb - 1 
     337            ralpha(ji,jj) = rhisf_tbl(ji,jj) * (1._wp - zhk ) / e3t_n(ji,jj,ikb)  ! proportion of bottom cell influenced by boundary layer 
    338338         END DO 
    339339      END DO 
     
    608608               ELSE 
    609609                  !! compute Rc number (as done in zdfric.F90) 
    610                   zcoef = 0.5_wp / fse3w(ji,jj,ikt) 
     610                  zcoef = 0.5_wp / e3w_n(ji,jj,ikt) 
    611611                  !                                            ! shear of horizontal velocity 
    612612                  zdku = zcoef * (  un(ji-1,jj  ,ikt  ) + un(ji,jj,ikt  )  & 
     
    620620                  zts(jp_tem) = ttbl(ji,jj) 
    621621                  zts(jp_sal) = stbl(ji,jj) 
    622                   zdep        = fsdepw(ji,jj,ikt) 
     622                  zdep        = gdepw_n(ji,jj,ikt) 
    623623                  ! 
    624624                  CALL eos_rab( zts, zdep, zab ) 
     
    627627                  zbuofdep = grav * ( zab(jp_tem) * pqhisf(ji,jj) - zab(jp_sal) * pqwisf(ji,jj) )  !!!!!!!!!!!!!!!!!!!!!!!!!!!! 
    628628 
    629       !! compute Monin Obukov Length 
    630                ! Maximum boundary layer depth 
    631                zhmax = gdept_n(ji,jj,mbkt(ji,jj)) - gdepw_n(ji,jj,mikt(ji,jj)) -0.001_wp 
    632                ! Compute Monin obukhov length scale at the surface and Ekman depth: 
    633                zmob   = zustar ** 3 / (vkarmn * (zbuofdep + epsln)) 
    634                zmols  = SIGN(1._wp, zmob) * MIN(ABS(zmob), zhmax) * tmask(ji,jj,ikt) 
     629                  !! compute Monin Obukov Length 
     630                  ! Maximum boundary layer depth 
     631                  zhmax = gdept_n(ji,jj,mbkt(ji,jj)) - gdepw_n(ji,jj,mikt(ji,jj)) -0.001_wp 
     632                  ! Compute Monin obukhov length scale at the surface and Ekman depth: 
     633                  zmob   = zustar(ji,jj) ** 3 / (vkarmn * (zbuofdep + zeps)) 
     634                  zmols  = SIGN(1._wp, zmob) * MIN(ABS(zmob), zhmax) * tmask(ji,jj,ikt) 
    635635 
    636636                  !! compute eta* (stability parameter) 
     
    686686               ikt = miku(ji,jj) ; ikb = miku(ji,jj) 
    687687               ! thickness of boundary layer at least the top level thickness 
    688                zhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), fse3u_n(ji,jj,ikt)) 
     688               zhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), e3u_n(ji,jj,ikt)) 
    689689 
    690690               ! determine the deepest level influenced by the boundary layer 
    691691               DO jk = ikt+1, mbku(ji,jj) 
    692                   IF ( (SUM(fse3u_n(ji,jj,ikt:jk-1)) < zhisf_tbl(ji,jj)) .AND. (umask(ji,jj,jk) == 1) ) ikb = jk 
    693                END DO 
    694                zhisf_tbl(ji,jj) = MIN(zhisf_tbl(ji,jj), SUM(fse3u_n(ji,jj,ikt:ikb)))  ! limit the tbl to water thickness. 
     692                  IF ( (SUM(e3u_n(ji,jj,ikt:jk-1)) < zhisf_tbl(ji,jj)) .AND. (umask(ji,jj,jk) == 1) ) ikb = jk 
     693               END DO 
     694               zhisf_tbl(ji,jj) = MIN(zhisf_tbl(ji,jj), SUM(e3u_n(ji,jj,ikt:ikb)))  ! limit the tbl to water thickness. 
    695695 
    696696               ! level fully include in the ice shelf boundary layer 
    697697               DO jk = ikt, ikb - 1 
    698                   ze3 = fse3u_n(ji,jj,jk) 
     698                  ze3 = e3u_n(ji,jj,jk) 
    699699                  pvarout(ji,jj) = pvarout(ji,jj) + pvarin(ji,jj,jk) / zhisf_tbl(ji,jj) * ze3 
    700700               END DO 
    701701 
    702702               ! level partially include in ice shelf boundary layer  
    703                zhk = SUM( fse3u_n(ji, jj, ikt:ikb - 1)) / zhisf_tbl(ji,jj) 
     703               zhk = SUM( e3u_n(ji, jj, ikt:ikb - 1)) / zhisf_tbl(ji,jj) 
    704704               pvarout(ji,jj) = pvarout(ji,jj) + pvarin(ji,jj,ikb) * (1._wp - zhk) 
    705705            END DO 
     
    717717               ikt = mikv(ji,jj) ; ikb = mikv(ji,jj) 
    718718               ! thickness of boundary layer at least the top level thickness 
    719                zhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), fse3v_n(ji,jj,ikt)) 
     719               zhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), e3v_n(ji,jj,ikt)) 
    720720 
    721721               ! determine the deepest level influenced by the boundary layer 
    722722               DO jk = ikt+1, mbkv(ji,jj) 
    723                   IF ( (SUM(fse3v_n(ji,jj,ikt:jk-1)) < zhisf_tbl(ji,jj)) .AND. (vmask(ji,jj,jk) == 1) ) ikb = jk 
    724                END DO 
    725                zhisf_tbl(ji,jj) = MIN(zhisf_tbl(ji,jj), SUM(fse3v_n(ji,jj,ikt:ikb)))  ! limit the tbl to water thickness. 
     723                  IF ( (SUM(e3v_n(ji,jj,ikt:jk-1)) < zhisf_tbl(ji,jj)) .AND. (vmask(ji,jj,jk) == 1) ) ikb = jk 
     724               END DO 
     725               zhisf_tbl(ji,jj) = MIN(zhisf_tbl(ji,jj), SUM(e3v_n(ji,jj,ikt:ikb)))  ! limit the tbl to water thickness. 
    726726 
    727727               ! level fully include in the ice shelf boundary layer 
    728728               DO jk = ikt, ikb - 1 
    729                   ze3 = fse3v_n(ji,jj,jk) 
     729                  ze3 = e3v_n(ji,jj,jk) 
    730730                  pvarout(ji,jj) = pvarout(ji,jj) + pvarin(ji,jj,jk) / zhisf_tbl(ji,jj) * ze3 
    731731               END DO 
    732732 
    733733               ! level partially include in ice shelf boundary layer  
    734                zhk = SUM( fse3v_n(ji, jj, ikt:ikb - 1)) / zhisf_tbl(ji,jj) 
     734               zhk = SUM( e3v_n(ji, jj, ikt:ikb - 1)) / zhisf_tbl(ji,jj) 
    735735               pvarout(ji,jj) = pvarout(ji,jj) + pvarin(ji,jj,ikb) * (1._wp - zhk) 
    736736            END DO 
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRA/zpshde.F90

    r6069 r6075  
    419419               ze3wv  =  gdept_n(ji,jj,ikv) - gdept_n(ji,jj+1,ikv)  
    420420               ! 
    421                IF( ze3wu >= 0._wp ) THEN   ;   zhi(ji,jj) = gdept(ji  ,jj,iku)    ! i-direction: case 1 
    422                ELSE                        ;   zhi(ji,jj) = gdept(ji+1,jj,iku)    ! -     -      case 2 
    423                ENDIF 
    424  
    425                IF( ze3wv >= 0._wp ) THEN   ;   zhj(ji,jj) = gdept(ji,jj  ,ikv)    ! j-direction: case 1 
    426                ELSE                        ;   zhj(ji,jj) = gdept(ji,jj+1,ikv)    ! -     -      case 2 
     421               IF( ze3wu >= 0._wp ) THEN   ;   zhi(ji,jj) = gdept_n(ji  ,jj,iku)    ! i-direction: case 1 
     422               ELSE                        ;   zhi(ji,jj) = gdept_n(ji+1,jj,iku)    ! -     -      case 2 
     423               ENDIF 
     424 
     425               IF( ze3wv >= 0._wp ) THEN   ;   zhj(ji,jj) = gdept_n(ji,jj  ,ikv)    ! j-direction: case 1 
     426               ELSE                        ;   zhj(ji,jj) = gdept_n(ji,jj+1,ikv)    ! -     -      case 2 
    427427               ENDIF 
    428428 
Note: See TracChangeset for help on using the changeset viewer.