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 3294 for trunk/NEMOGCM/NEMO/OPA_SRC/OBC/obctra.F90 – NEMO

Ignore:
Timestamp:
2012-01-28T17:44:18+01:00 (12 years ago)
Author:
rblod
Message:

Merge of 3.4beta into the trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/OBC/obctra.F90

    r2528 r3294  
    5858      !!                     
    5959      !! ** Purpose :   Compute tracer fields (t,s) along the open boundaries. 
    60       !!      This routine is called by the tranxt.F routine and updates ta,sa 
     60      !!      This routine is called by the tranxt.F routine and updates tsa 
    6161      !!      which are the actual temperature and salinity fields. 
    6262      !!        The logical variable lp_obc_east, and/or lp_obc_west, and/or lp_obc_north, 
     
    101101      IF( lk_mpp ) THEN                  !!bug ??? 
    102102         IF( kt >= nit000+3 .AND. ln_rstart ) THEN 
    103             CALL lbc_lnk( tb, 'T', 1. ) 
    104             CALL lbc_lnk( sb, 'T', 1. ) 
     103            CALL lbc_lnk( tsb(:,:,:,jp_tem), 'T', 1. ) 
     104            CALL lbc_lnk( tsb(:,:,:,jp_sal), 'T', 1. ) 
    105105         END IF 
    106          CALL lbc_lnk( ta, 'T', 1. ) 
    107          CALL lbc_lnk( sa, 'T', 1. ) 
     106         CALL lbc_lnk( tsa(:,:,:,jp_tem), 'T', 1. ) 
     107         CALL lbc_lnk( tsa(:,:,:,jp_sal), 'T', 1. ) 
    108108      ENDIF 
    109109 
     
    116116      !!                   
    117117      !! ** Purpose : 
    118       !!      Apply the radiation algorithm on east OBC tracers ta, sa using the  
     118      !!      Apply the radiation algorithm on east OBC tracers tsa using the  
    119119      !!      phase velocities calculated in obc_rad_east subroutine in obcrad.F90 module 
    120120      !!      If the logical lfbceast is .TRUE., there is no radiation but only fixed OBC 
     
    143143            DO jk = 1, jpkm1 
    144144               DO jj = 1, jpj 
    145                   ta(ji,jj,jk) = ta(ji,jj,jk) * (1. - temsk(jj,jk)) + & 
    146                                  tfoe(jj,jk)*temsk(jj,jk) 
    147                   sa(ji,jj,jk) = sa(ji,jj,jk) * (1. - temsk(jj,jk)) + & 
    148                                  sfoe(jj,jk)*temsk(jj,jk) 
     145                  tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) * (1. - temsk(jj,jk)) + & 
     146                                         tfoe(jj,jk)*temsk(jj,jk) 
     147                  tsa(ji,jj,jk,jp_sal) = tsa(ji,jj,jk,jp_sal) * (1. - temsk(jj,jk)) + & 
     148                                         sfoe(jj,jk)*temsk(jj,jk) 
    149149               END DO 
    150150            END DO 
     
    191191                  ztau = (1.-zin ) * rtauein  + zin * rtaue 
    192192                  z05cx = z05cx * zin 
    193          ! ... update ( ta, sa ) with radiative or climatological (t, s) 
    194                   ta(ji,jj,jk) = ta(ji,jj,jk) * (1. - temsk(jj,jk)) +           &  
     193         ! ... update tsa with radiative or climatological ts 
     194                  tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) * (1. - temsk(jj,jk)) +           & 
    195195                                 temsk(jj,jk) * ( ( 1. - z05cx - ztau )         & 
    196196                                 * tebnd(jj,jk,nib ,nitm) + 2.*z05cx              & 
    197197                                 * tebnd(jj,jk,nibm,nit ) + ztau * tfoe (jj,jk) ) & 
    198198                                 / (1. + z05cx) 
    199                   sa(ji,jj,jk) = sa(ji,jj,jk) * (1. - temsk(jj,jk)) +           &  
     199                  tsa(ji,jj,jk,jp_sal) = tsa(ji,jj,jk,jp_sal) * (1. - temsk(jj,jk)) +           & 
    200200                                 temsk(jj,jk) * ( ( 1. - z05cx - ztau )         & 
    201201                                 * sebnd(jj,jk,nib ,nitm) + 2.*z05cx              & 
     
    216216      !!            
    217217      !! ** Purpose : 
    218       !!      Apply the radiation algorithm on west OBC tracers ta, sa using the  
     218      !!      Apply the radiation algorithm on west OBC tracers tsa using the  
    219219      !!      phase velocities calculated in obc_rad_west subroutine in obcrad.F90 module 
    220220      !!      If the logical lfbcwest is .TRUE., there is no radiation but only fixed OBC 
     
    244244            DO jk = 1, jpkm1 
    245245               DO jj = 1, jpj 
    246                   ta(ji,jj,jk) = ta(ji,jj,jk) * (1. - twmsk(jj,jk)) + & 
    247                                  tfow(jj,jk)*twmsk(jj,jk) 
    248                   sa(ji,jj,jk) = sa(ji,jj,jk) * (1. - twmsk(jj,jk)) + & 
    249                                  sfow(jj,jk)*twmsk(jj,jk) 
     246                  tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) * (1. - twmsk(jj,jk)) + & 
     247                                         tfow(jj,jk)*twmsk(jj,jk) 
     248                  tsa(ji,jj,jk,jp_sal) = tsa(ji,jj,jk,jp_sal) * (1. - twmsk(jj,jk)) + & 
     249                                         sfow(jj,jk)*twmsk(jj,jk) 
    250250               END DO 
    251251            END DO 
     
    290290                  ztau = (1.-zin )*rtauwin + zin * rtauw 
    291291                  z05cx = z05cx * zin 
    292          ! ... update (ta,sa) with radiative or climatological (t, s) 
    293                   ta(ji,jj,jk) = ta(ji,jj,jk) * (1. - twmsk(jj,jk)) +           & 
     292         ! ... update tsa with radiative or climatological (ts) 
     293                  tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) * (1. - twmsk(jj,jk)) +           & 
    294294                                 twmsk(jj,jk) * ( ( 1. + z05cx - ztau )         & 
    295295                                 * twbnd(jj,jk,nib ,nitm) - 2.*z05cx              & 
    296296                                 * twbnd(jj,jk,nibm,nit ) + ztau * tfow (jj,jk) ) & 
    297297                                 / (1. - z05cx) 
    298                   sa(ji,jj,jk) = sa(ji,jj,jk) * (1. - twmsk(jj,jk)) +           & 
     298                  tsa(ji,jj,jk,jp_sal) = tsa(ji,jj,jk,jp_sal) * (1. - twmsk(jj,jk)) +           & 
    299299                                 twmsk(jj,jk) * ( ( 1. + z05cx - ztau )         & 
    300300                                 * swbnd(jj,jk,nib ,nitm) - 2.*z05cx              & 
     
    343343            DO jk = 1, jpkm1 
    344344               DO ji = 1, jpi 
    345                   ta(ji,jj,jk)= ta(ji,jj,jk) * (1.-tnmsk(ji,jk)) + & 
    346                                 tnmsk(ji,jk) * tfon(ji,jk) 
    347                   sa(ji,jj,jk)= sa(ji,jj,jk) * (1.-tnmsk(ji,jk)) + & 
    348                                 tnmsk(ji,jk) * sfon(ji,jk) 
     345                  tsa(ji,jj,jk,jp_tem)= tsa(ji,jj,jk,jp_tem) * (1.-tnmsk(ji,jk)) + & 
     346                                        tnmsk(ji,jk) * tfon(ji,jk) 
     347                  tsa(ji,jj,jk,jp_sal)= tsa(ji,jj,jk,jp_sal) * (1.-tnmsk(ji,jk)) + & 
     348                                        tnmsk(ji,jk) * sfon(ji,jk) 
    349349               END DO 
    350350            END DO 
     
    392392                  ztau = (1.-zin ) * rtaunin + zin * rtaun 
    393393                  z05cx = z05cx * zin 
    394          ! ... update (ta,sa) with radiative or climatological (t, s) 
    395                   ta(ji,jj,jk) = ta(ji,jj,jk) * (1.-tnmsk(ji,jk)) +             & 
     394         ! ... update tsa with radiative or climatological (t, s) 
     395                  tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) * (1.-tnmsk(ji,jk)) +             & 
    396396                                 tnmsk(ji,jk) * ( ( 1. - z05cx - ztau )         & 
    397397                                 * tnbnd(ji,jk,nib ,nitm) + 2.*z05cx              & 
    398398                                 * tnbnd(ji,jk,nibm,nit ) + ztau * tfon (ji,jk) ) & 
    399399                                 / (1. + z05cx) 
    400                   sa(ji,jj,jk) = sa(ji,jj,jk) * (1.-tnmsk(ji,jk)) +             & 
     400                  tsa(ji,jj,jk,jp_sal) = tsa(ji,jj,jk,jp_sal) * (1.-tnmsk(ji,jk)) +             & 
    401401                                 tnmsk(ji,jk) * ( ( 1. - z05cx - ztau )         & 
    402402                                 * snbnd(ji,jk,nib ,nitm) + 2.*z05cx              & 
     
    417417      !!      
    418418      !! ** Purpose : 
    419       !!      Apply the radiation algorithm on south OBC tracers ta, sa using the  
     419      !!      Apply the radiation algorithm on south OBC tracers tsa using the  
    420420      !!      phase velocities calculated in obc_rad_south subroutine in obcrad.F90 module 
    421421      !!      If the logical lfbcsouth is .TRUE., there is no radiation but only fixed OBC 
     
    445445            DO jk = 1, jpkm1 
    446446               DO ji = 1, jpi 
    447                   ta(ji,jj,jk)= ta(ji,jj,jk) * (1.-tsmsk(ji,jk)) + & 
    448                                 tsmsk(ji,jk) * tfos(ji,jk) 
    449                   sa(ji,jj,jk)= sa(ji,jj,jk) * (1.-tsmsk(ji,jk)) + & 
    450                                 tsmsk(ji,jk) * sfos(ji,jk) 
     447                  tsa(ji,jj,jk,jp_tem)= tsa(ji,jj,jk,jp_tem) * (1.-tsmsk(ji,jk)) + & 
     448                                        tsmsk(ji,jk) * tfos(ji,jk) 
     449                  tsa(ji,jj,jk,jp_sal)= tsa(ji,jj,jk,jp_sal) * (1.-tsmsk(ji,jk)) + & 
     450                                        tsmsk(ji,jk) * sfos(ji,jk) 
    451451               END DO 
    452452            END DO 
     
    493493                  z05cx = z05cx * zin 
    494494 
    495          !... update (ta,sa) with radiative or climatological (t, s) 
    496                   ta(ji,jj,jk) = ta(ji,jj,jk) * (1.-tsmsk(ji,jk)) +             & 
     495         !... update tsa with radiative or climatological (t, s) 
     496                  tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) * (1.-tsmsk(ji,jk)) +             & 
    497497                                 tsmsk(ji,jk) * ( ( 1. + z05cx - ztau )         & 
    498498                                 * tsbnd(ji,jk,nib ,nitm) - 2.*z05cx              & 
    499499                                 * tsbnd(ji,jk,nibm,nit ) + ztau * tfos (ji,jk) ) & 
    500500                                 / (1. - z05cx) 
    501                   sa(ji,jj,jk) = sa(ji,jj,jk) * (1.-tsmsk(ji,jk)) +             & 
     501                  tsa(ji,jj,jk,jp_sal) = tsa(ji,jj,jk,jp_sal) * (1.-tsmsk(ji,jk)) +             & 
    502502                                 tsmsk(ji,jk) * (  ( 1. + z05cx - ztau )        & 
    503503                                 * ssbnd(ji,jk,nib ,nitm) - 2.*z05cx              & 
Note: See TracChangeset for help on using the changeset viewer.