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

Ignore:
Timestamp:
2019-05-09T18:12:29+02:00 (5 years ago)
Author:
acc
Message:

2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps : Convert TRA modules and all knock on effects of these conversions. SETTE tested

File:
1 edited

Legend:

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

    r10946 r10954  
    8585         IF( l_trdtra )   THEN                    !* Save initial after fields 
    8686            ALLOCATE( ztrdt(jpi,jpj,jpk) , ztrds(jpi,jpj,jpk) ) 
    87             ztrdt(:,:,:) = tsa(:,:,:,jp_tem)  
    88             ztrds(:,:,:) = tsa(:,:,:,jp_sal) 
     87            ztrdt(:,:,:) = ts(:,:,:,jp_tem,Krhs)  
     88            ztrds(:,:,:) = ts(:,:,:,jp_sal,Krhs) 
    8989         ENDIF 
    9090         ! 
     
    9696         ENDIF 
    9797         ! 
    98          CALL eos_rab( tsa, zab )         ! after alpha and beta (given on T-points) 
    99          CALL bn2    ( tsa, zab, zn2 )    ! after Brunt-Vaisala  (given on W-points) 
     98         CALL eos_rab( ts(:,:,:,:,Krhs), zab, Kmm )         ! after alpha and beta (given on T-points) 
     99         CALL bn2    ( ts(:,:,:,:,Krhs), zab, zn2, Kmm )    ! after Brunt-Vaisala  (given on W-points) 
    100100         ! 
    101101         inpcc = 0 
     
    106106               IF( tmask(ji,jj,2) == 1 ) THEN      ! At least 2 ocean points 
    107107                  !                                     ! consider one ocean column  
    108                   zvts(:,jp_tem) = tsa(ji,jj,:,jp_tem)      ! temperature 
    109                   zvts(:,jp_sal) = tsa(ji,jj,:,jp_sal)      ! salinity 
     108                  zvts(:,jp_tem) = ts(ji,jj,:,jp_tem,Krhs)      ! temperature 
     109                  zvts(:,jp_sal) = ts(ji,jj,:,jp_sal,Krhs)      ! salinity 
    110110                  ! 
    111111                  zvab(:,jp_tem)  = zab(ji,jj,:,jp_tem)     ! Alpha  
     
    187187                           DO jk = ikup, ikbot      ! Inside the instable (and overlying neutral) portion of the column 
    188188                              ! 
    189                               zdz       = e3t_n(ji,jj,jk) 
     189                              zdz       = e3t(ji,jj,jk,Kmm) 
    190190                              zsum_temp = zsum_temp + zvts(jk,jp_tem)*zdz 
    191191                              zsum_sali = zsum_sali + zvts(jk,jp_sal)*zdz 
     
    236236 
    237237                              !! Interpolating alfa and beta at W point: 
    238                               zrw =  (gdepw_n(ji,jj,jk  ) - gdept_n(ji,jj,jk)) & 
    239                                  & / (gdept_n(ji,jj,jk-1) - gdept_n(ji,jj,jk)) 
     238                              zrw =  (gdepw(ji,jj,jk  ,Kmm) - gdept(ji,jj,jk,Kmm)) & 
     239                                 & / (gdept(ji,jj,jk-1,Kmm) - gdept(ji,jj,jk,Kmm)) 
    240240                              zaw = zvab(jk,jp_tem) * (1._wp - zrw) + zvab(jk-1,jp_tem) * zrw 
    241241                              zbw = zvab(jk,jp_sal) * (1._wp - zrw) + zvab(jk-1,jp_sal) * zrw 
     
    244244                              zvn2(jk) = grav*( zaw * ( zvts(jk-1,jp_tem) - zvts(jk,jp_tem) )     & 
    245245                                 &            - zbw * ( zvts(jk-1,jp_sal) - zvts(jk,jp_sal) )  )  & 
    246                                  &       / e3w_n(ji,jj,jk) * tmask(ji,jj,jk) 
     246                                 &       / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk) 
    247247 
    248248                              !! OR, faster  => just considering the vertical gradient of density 
     
    288288 
    289289                  !! Updating tsa: 
    290                   tsa(ji,jj,:,jp_tem) = zvts(:,jp_tem) 
    291                   tsa(ji,jj,:,jp_sal) = zvts(:,jp_sal) 
     290                  ts(ji,jj,:,jp_tem,Krhs) = zvts(:,jp_tem) 
     291                  ts(ji,jj,:,jp_sal,Krhs) = zvts(:,jp_sal) 
    292292 
    293293                  !! LB:  Potentially some other global variable beside theta and S can be treated here 
     
    303303         IF( l_trdtra ) THEN         ! send the Non penetrative mixing trends for diagnostic 
    304304            z1_r2dt = 1._wp / (2._wp * rdt) 
    305             ztrdt(:,:,:) = ( tsa(:,:,:,jp_tem) - ztrdt(:,:,:) ) * z1_r2dt 
    306             ztrds(:,:,:) = ( tsa(:,:,:,jp_sal) - ztrds(:,:,:) ) * z1_r2dt 
     305            ztrdt(:,:,:) = ( ts(:,:,:,jp_tem,Krhs) - ztrdt(:,:,:) ) * z1_r2dt 
     306            ztrds(:,:,:) = ( ts(:,:,:,jp_sal,Krhs) - ztrds(:,:,:) ) * z1_r2dt 
    307307            CALL trd_tra( kt, Kmm, Krhs, 'TRA', jp_tem, jptra_npc, ztrdt ) 
    308308            CALL trd_tra( kt, Kmm, Krhs, 'TRA', jp_sal, jptra_npc, ztrds ) 
     
    310310         ENDIF 
    311311         ! 
    312          CALL lbc_lnk_multi( 'tranpc', tsa(:,:,:,jp_tem), 'T', 1., tsa(:,:,:,jp_sal), 'T', 1. ) 
     312         CALL lbc_lnk_multi( 'tranpc', ts(:,:,:,jp_tem,Krhs), 'T', 1., ts(:,:,:,jp_sal,Krhs), 'T', 1. ) 
    313313         ! 
    314314         IF( lwp .AND. l_LB_debug ) THEN 
Note: See TracChangeset for help on using the changeset viewer.