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 13463 for NEMO/branches/2019/dev_r11351_fldread_with_XIOS/src/OCE/FLO/flo4rk.F90 – NEMO

Ignore:
Timestamp:
2020-09-14T17:40:34+02:00 (4 years ago)
Author:
andmirek
Message:

Ticket #2195:update to trunk 13461

Location:
NEMO/branches/2019/dev_r11351_fldread_with_XIOS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11351_fldread_with_XIOS

    • Property svn:externals
      •  

        old new  
        33^/utils/build/mk@HEAD         mk 
        44^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
         5^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         8 
         9# SETTE 
         10^/utils/CI/sette@13382        sette 
  • NEMO/branches/2019/dev_r11351_fldread_with_XIOS/src/OCE/FLO/flo4rk.F90

    r10068 r13463  
    44   !! Ocean floats :   trajectory computation using a 4th order Runge-Kutta 
    55   !!====================================================================== 
    6 #if   defined key_floats 
    7    !!---------------------------------------------------------------------- 
    8    !!   'key_floats'                                     float trajectories 
     6   !! 
    97   !!---------------------------------------------------------------------- 
    108   !!   flo_4rk        : Compute the geographical position of floats 
     
    2826   REAL(wp), DIMENSION (3) ::   scoef1 = (/  0.5  ,  0.5  ,  1.0  /)           ! 
    2927 
     28#  include "domzgr_substitute.h90" 
    3029   !!---------------------------------------------------------------------- 
    3130   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    3534CONTAINS 
    3635 
    37    SUBROUTINE flo_4rk( kt ) 
     36   SUBROUTINE flo_4rk( kt, Kbb, Kmm ) 
    3837      !!---------------------------------------------------------------------- 
    3938      !!                  ***  ROUTINE flo_4rk  *** 
     
    4746      !!       floats and the grid defined on the domain. 
    4847      !!---------------------------------------------------------------------- 
    49       INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
     48      INTEGER, INTENT(in) ::   kt         ! ocean time-step index 
     49      INTEGER, INTENT(in) ::   Kbb, Kmm   ! ocean time level indices 
    5050      !! 
    5151      INTEGER ::  jfl, jind           ! dummy loop indices 
     
    127127       
    128128         ! for each step we compute the compute the velocity with Lagrange interpolation 
    129          CALL flo_interp( zgifl, zgjfl, zgkfl, zufl, zvfl, zwfl, jind ) 
     129         CALL flo_interp( Kbb, Kmm, zgifl, zgjfl, zgkfl, zufl, zvfl, zwfl, jind ) 
    130130          
    131131         ! computation of Runge-Kutta factor 
    132132         DO jfl = 1, jpnfl 
    133             zrkxfl(jfl,jind) = rdt*zufl(jfl) 
    134             zrkyfl(jfl,jind) = rdt*zvfl(jfl) 
    135             zrkzfl(jfl,jind) = rdt*zwfl(jfl) 
     133            zrkxfl(jfl,jind) = rn_Dt*zufl(jfl) 
     134            zrkyfl(jfl,jind) = rn_Dt*zvfl(jfl) 
     135            zrkzfl(jfl,jind) = rn_Dt*zwfl(jfl) 
    136136         END DO 
    137137         IF( jind /= 4 ) THEN 
     
    155155 
    156156 
    157    SUBROUTINE flo_interp( pxt , pyt , pzt ,      & 
     157   SUBROUTINE flo_interp( Kbb, Kmm,              & 
     158      &                   pxt , pyt , pzt ,      & 
    158159      &                   pufl, pvfl, pwfl, ki ) 
    159160      !!---------------------------------------------------------------------- 
     
    167168      !!      integrated with RK method. 
    168169      !!---------------------------------------------------------------------- 
     170      INTEGER                    , INTENT(in   ) ::   Kbb, Kmm           ! ocean time level indices 
    169171      REAL(wp) , DIMENSION(jpnfl), INTENT(in   ) ::   pxt , pyt , pzt    ! position of the float 
    170172      REAL(wp) , DIMENSION(jpnfl), INTENT(  out) ::   pufl, pvfl, pwfl   ! velocity at this position 
     
    248250               DO jind3 = 1, 4 
    249251                  ztufl(jfl,jind1,jind2,jind3) =   & 
    250                      &   (  tcoef1(ki) * ub(iidu(jfl,jind1),ijdu(jfl,jind2),ikdu(jfl,jind3)) +   & 
    251                      &      tcoef2(ki) * un(iidu(jfl,jind1),ijdu(jfl,jind2),ikdu(jfl,jind3)) )   & 
     252                     &   (  tcoef1(ki) * uu(iidu(jfl,jind1),ijdu(jfl,jind2),ikdu(jfl,jind3),Kbb) +   & 
     253                     &      tcoef2(ki) * uu(iidu(jfl,jind1),ijdu(jfl,jind2),ikdu(jfl,jind3),Kmm) )   & 
    252254                     &      / e1u(iidu(jfl,jind1),ijdu(jfl,jind2))  
    253255               END DO 
     
    332334               DO jind3 = 1 ,4 
    333335                  ztvfl(jfl,jind1,jind2,jind3)=   & 
    334                      &   ( tcoef1(ki) * vb(iidv(jfl,jind1),ijdv(jfl,jind2),ikdv(jfl,jind3))  +   & 
    335                      &     tcoef2(ki) * vn(iidv(jfl,jind1),ijdv(jfl,jind2),ikdv(jfl,jind3)) )    &  
     336                     &   ( tcoef1(ki) * vv(iidv(jfl,jind1),ijdv(jfl,jind2),ikdv(jfl,jind3),Kbb)  +   & 
     337                     &     tcoef2(ki) * vv(iidv(jfl,jind1),ijdv(jfl,jind2),ikdv(jfl,jind3),Kmm) )    &  
    336338                     &     / e2v(iidv(jfl,jind1),ijdv(jfl,jind2)) 
    337339               END DO 
     
    424426                  ztwfl(jfl,jind1,jind2,jind3)=   & 
    425427                     &   ( tcoef1(ki) * wb(iidw(jfl,jind1),ijdw(jfl,jind2),ikdw(jfl,jind3))+   & 
    426                      &     tcoef2(ki) * wn(iidw(jfl,jind1),ijdw(jfl,jind2),ikdw(jfl,jind3)) )  & 
    427                      &   / e3w_n(iidw(jfl,jind1),ijdw(jfl,jind2),ikdw(jfl,jind3)) 
     428                     &     tcoef2(ki) * ww(iidw(jfl,jind1),ijdw(jfl,jind2),ikdw(jfl,jind3)) )  & 
     429                     &   / e3w(iidw(jfl,jind1),ijdw(jfl,jind2),ikdw(jfl,jind3),Kmm) 
    428430               END DO 
    429431            END DO 
     
    445447   END SUBROUTINE flo_interp 
    446448 
    447 #  else 
    448    !!---------------------------------------------------------------------- 
    449    !!   No floats                                              Dummy module 
    450    !!---------------------------------------------------------------------- 
    451 #endif 
    452     
    453449   !!====================================================================== 
    454450END MODULE flo4rk 
Note: See TracChangeset for help on using the changeset viewer.