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 10874 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/TRA/trasbc.F90 – NEMO

Ignore:
Timestamp:
2019-04-15T15:57:37+02:00 (5 years ago)
Author:
davestorkey
Message:

branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps : Revert all changes so far in preparation for implementation of new design.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/TRA/trasbc.F90

    r10806 r10874  
    5151CONTAINS 
    5252 
    53    SUBROUTINE tra_sbc ( kt, ktlev, pts_rhs ) 
     53   SUBROUTINE tra_sbc ( kt ) 
    5454      !!---------------------------------------------------------------------- 
    5555      !!                  ***  ROUTINE tra_sbc  *** 
     
    6363      !!      (2) Fwe , tracer carried with the water that is exchanged with air+ice.  
    6464      !!               The input forcing fields (emp, rnf, sfx, isf) contain Fext+Fwe, 
    65       !!             they are simply added to the tracer trend (pts_rhs). 
     65      !!             they are simply added to the tracer trend (tsa). 
    6666      !!               In linear free surface case (ln_linssh=T), the volume of the 
    6767      !!             ocean does not change with the water exchanges at the (air+ice)-sea 
     
    6969      !!             concentration/dilution effect associated with water exchanges. 
    7070      !! 
    71       !! ** Action  : - Update pts_rhs with the surface boundary condition trend  
     71      !! ** Action  : - Update tsa with the surface boundary condition trend  
    7272      !!              - send trends to trdtra module for further diagnostics(l_trdtra=T) 
    7373      !!---------------------------------------------------------------------- 
    74       INTEGER, INTENT(in) ::   kt     ! ocean time-step index 
    75       INTEGER, INTENT(in) ::   ktlev  ! time level index for source terms 
    76       REAL(wp), INTENT( inout), DIMENSION(jpi,jpj,jpk,jpts) :: pts_rhs ! temperature and salinity trends 
     74      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    7775      ! 
    7876      INTEGER  ::   ji, jj, jk, jn              ! dummy loop indices   
     
    9290      IF( l_trdtra ) THEN                    !* Save ta and sa trends 
    9391         ALLOCATE( ztrdt(jpi,jpj,jpk) , ztrds(jpi,jpj,jpk) )  
    94          ztrdt(:,:,:) = pts_rhs(:,:,:,jp_tem) 
    95          ztrds(:,:,:) = pts_rhs(:,:,:,jp_sal) 
     92         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 
     93         ztrds(:,:,:) = tsa(:,:,:,jp_sal) 
    9694      ENDIF 
    9795      ! 
     
    133131         DO jj = 2, jpj                         !==>> add concentration/dilution effect due to constant volume cell 
    134132            DO ji = fs_2, fs_jpim1   ! vector opt. 
    135                sbc_tsc(ji,jj,jp_tem) = sbc_tsc(ji,jj,jp_tem) + r1_rau0 * emp(ji,jj) * ts(ji,jj,1,jp_tem,ktlev) 
    136                sbc_tsc(ji,jj,jp_sal) = sbc_tsc(ji,jj,jp_sal) + r1_rau0 * emp(ji,jj) * ts(ji,jj,1,jp_sal,ktlev) 
     133               sbc_tsc(ji,jj,jp_tem) = sbc_tsc(ji,jj,jp_tem) + r1_rau0 * emp(ji,jj) * tsn(ji,jj,1,jp_tem) 
     134               sbc_tsc(ji,jj,jp_sal) = sbc_tsc(ji,jj,jp_sal) + r1_rau0 * emp(ji,jj) * tsn(ji,jj,1,jp_sal) 
    137135            END DO 
    138136         END DO                                 !==>> output c./d. term 
    139          IF( iom_use('emp_x_sst') )   CALL iom_put( "emp_x_sst", emp (:,:) * ts(:,:,1,jp_tem,ktlev) ) 
    140          IF( iom_use('emp_x_sss') )   CALL iom_put( "emp_x_sss", emp (:,:) * ts(:,:,1,jp_sal,ktlev) ) 
     137         IF( iom_use('emp_x_sst') )   CALL iom_put( "emp_x_sst", emp (:,:) * tsn(:,:,1,jp_tem) ) 
     138         IF( iom_use('emp_x_sss') )   CALL iom_put( "emp_x_sss", emp (:,:) * tsn(:,:,1,jp_sal) ) 
    141139      ENDIF 
    142140      ! 
     
    144142         DO jj = 2, jpj 
    145143            DO ji = fs_2, fs_jpim1   ! vector opt.   
    146                pts_rhs(ji,jj,1,jn) = pts_rhs(ji,jj,1,jn) + zfact * ( sbc_tsc_b(ji,jj,jn) + sbc_tsc(ji,jj,jn) ) / e3t(ji,jj,1,ktlev) 
     144               tsa(ji,jj,1,jn) = tsa(ji,jj,1,jn) + zfact * ( sbc_tsc_b(ji,jj,jn) + sbc_tsc(ji,jj,jn) ) / e3t_n(ji,jj,1) 
    147145            END DO 
    148146         END DO 
     
    175173               DO jk = ikt, ikb - 1 
    176174               ! compute trend 
    177                   pts_rhs(ji,jj,jk,jp_tem) = pts_rhs(ji,jj,jk,jp_tem)                                                & 
     175                  tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem)                                                & 
    178176                     &           + zfact * ( risf_tsc_b(ji,jj,jp_tem) + risf_tsc(ji,jj,jp_tem) )             & 
    179177                     &           * r1_hisf_tbl(ji,jj) 
     
    182180               ! level partially include in ice shelf boundary layer  
    183181               ! compute trend 
    184                pts_rhs(ji,jj,ikb,jp_tem) = pts_rhs(ji,jj,ikb,jp_tem)                                                 & 
     182               tsa(ji,jj,ikb,jp_tem) = tsa(ji,jj,ikb,jp_tem)                                                 & 
    185183                  &              + zfact * ( risf_tsc_b(ji,jj,jp_tem) + risf_tsc(ji,jj,jp_tem) )             & 
    186184                  &              * r1_hisf_tbl(ji,jj) * ralpha(ji,jj) 
     
    201199                  zdep = zfact / h_rnf(ji,jj) 
    202200                  DO jk = 1, nk_rnf(ji,jj) 
    203                                         pts_rhs(ji,jj,jk,jp_tem) = pts_rhs(ji,jj,jk,jp_tem)                                 & 
     201                                        tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem)                                 & 
    204202                                           &                 +  ( rnf_tsc_b(ji,jj,jp_tem) + rnf_tsc(ji,jj,jp_tem) ) * zdep 
    205                      IF( ln_rnf_sal )   pts_rhs(ji,jj,jk,jp_sal) = pts_rhs(ji,jj,jk,jp_sal)                                 & 
     203                     IF( ln_rnf_sal )   tsa(ji,jj,jk,jp_sal) = tsa(ji,jj,jk,jp_sal)                                 & 
    206204                                           &                 +  ( rnf_tsc_b(ji,jj,jp_sal) + rnf_tsc(ji,jj,jp_sal) ) * zdep  
    207205                  END DO 
     
    211209      ENDIF 
    212210 
    213       IF( iom_use('rnf_x_sst') )   CALL iom_put( "rnf_x_sst", rnf*ts(:,:,1,jp_tem,ktlev) )   ! runoff term on sst 
    214       IF( iom_use('rnf_x_sss') )   CALL iom_put( "rnf_x_sss", rnf*ts(:,:,1,jp_sal,ktlev) )   ! runoff term on sss 
     211      IF( iom_use('rnf_x_sst') )   CALL iom_put( "rnf_x_sst", rnf*tsn(:,:,1,jp_tem) )   ! runoff term on sst 
     212      IF( iom_use('rnf_x_sss') )   CALL iom_put( "rnf_x_sss", rnf*tsn(:,:,1,jp_sal) )   ! runoff term on sss 
    215213 
    216214#if defined key_asminc 
     
    225223            DO jj = 2, jpj  
    226224               DO ji = fs_2, fs_jpim1 
    227                   ztim = ssh_iau(ji,jj) / e3t(ji,jj,1,ktlev) 
    228                   pts_rhs(ji,jj,1,jp_tem) = pts_rhs(ji,jj,1,jp_tem) + ts(ji,jj,1,jp_tem,ktlev) * ztim 
    229                   pts_rhs(ji,jj,1,jp_sal) = pts_rhs(ji,jj,1,jp_sal) + ts(ji,jj,1,jp_sal,ktlev) * ztim 
     225                  ztim = ssh_iau(ji,jj) / e3t_n(ji,jj,1) 
     226                  tsa(ji,jj,1,jp_tem) = tsa(ji,jj,1,jp_tem) + tsn(ji,jj,1,jp_tem) * ztim 
     227                  tsa(ji,jj,1,jp_sal) = tsa(ji,jj,1,jp_sal) + tsn(ji,jj,1,jp_sal) * ztim 
    230228               END DO 
    231229            END DO 
     
    234232               DO ji = fs_2, fs_jpim1 
    235233                  ztim = ssh_iau(ji,jj) / ( ht_n(ji,jj) + 1. - ssmask(ji, jj) ) 
    236                   pts_rhs(ji,jj,:,jp_tem) = pts_rhs(ji,jj,:,jp_tem) + ts(ji,jj,:,jp_tem,ktlev) * ztim 
    237                   pts_rhs(ji,jj,:,jp_sal) = pts_rhs(ji,jj,:,jp_sal) + ts(ji,jj,:,jp_sal,ktlev) * ztim 
     234                  tsa(ji,jj,:,jp_tem) = tsa(ji,jj,:,jp_tem) + tsn(ji,jj,:,jp_tem) * ztim 
     235                  tsa(ji,jj,:,jp_sal) = tsa(ji,jj,:,jp_sal) + tsn(ji,jj,:,jp_sal) * ztim 
    238236               END DO   
    239237            END DO   
     
    252250            DO jj = 2, jpj  
    253251               DO ji = fs_2, fs_jpim1 
    254                   zdep = 1._wp / e3t(ji,jj,jk,ktlev)  
    255                   pts_rhs(ji,jj,jk,jp_tem) = pts_rhs(ji,jj,jk,jp_tem) - htsc_iscpl(ji,jj,jk,jp_tem) * zdep 
    256                   pts_rhs(ji,jj,jk,jp_sal) = pts_rhs(ji,jj,jk,jp_sal) - htsc_iscpl(ji,jj,jk,jp_sal) * zdep   
     252                  zdep = 1._wp / e3t_n(ji,jj,jk)  
     253                  tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) - htsc_iscpl(ji,jj,jk,jp_tem) * zdep 
     254                  tsa(ji,jj,jk,jp_sal) = tsa(ji,jj,jk,jp_sal) - htsc_iscpl(ji,jj,jk,jp_sal) * zdep   
    257255               END DO   
    258256            END DO   
     
    261259 
    262260      IF( l_trdtra )   THEN                      ! save the horizontal diffusive trends for further diagnostics 
    263          ztrdt(:,:,:) = pts_rhs(:,:,:,jp_tem) - ztrdt(:,:,:) 
    264          ztrds(:,:,:) = pts_rhs(:,:,:,jp_sal) - ztrds(:,:,:) 
     261         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:) 
     262         ztrds(:,:,:) = tsa(:,:,:,jp_sal) - ztrds(:,:,:) 
    265263         CALL trd_tra( kt, 'TRA', jp_tem, jptra_nsr, ztrdt ) 
    266264         CALL trd_tra( kt, 'TRA', jp_sal, jptra_nsr, ztrds ) 
Note: See TracChangeset for help on using the changeset viewer.