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 5081 for branches/2014/dev_r4765_CNRS_agrif/NEMOGCM/NEMO/NST_SRC/agrif_opa_interp.F90 – NEMO

Ignore:
Timestamp:
2015-02-13T10:51:27+01:00 (9 years ago)
Author:
smasson
Message:

dev_r4765_CNRS_agrif: final version of tke/agrif?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2014/dev_r4765_CNRS_agrif/NEMOGCM/NEMO/NST_SRC/agrif_opa_interp.F90

    r4984 r5081  
    4343   PUBLIC   interpe3t, interpumsk, interpvmsk 
    4444# if defined key_zdftke 
    45    PUBLIC   Agrif_tke, interpavt, interpavm, interpavmu, interpavmv 
     45   PUBLIC   Agrif_tke, interpavm 
    4646# endif 
    4747 
     
    609609      !!                  ***  ROUTINE Agrif_tke  *** 
    610610      !!----------------------------------------------------------------------   
    611       ! 
    612       IF( Agrif_Root() )   RETURN 
    613  
     611      REAL(wp) ::   zalpha 
     612      ! 
     613      zalpha = REAL( Agrif_NbStepint() + Agrif_IRhot() - 1, wp ) / REAL( Agrif_IRhot(), wp ) 
     614      IF( zalpha > 1. )   zalpha = 1. 
    614615       
    615616      Agrif_SpecialValue    = 0.e0 
    616617      Agrif_UseSpecialValue = .TRUE. 
    617618       
    618       CALL Agrif_Bc_variable(avt_id , procname=interpavt)        
    619       CALL Agrif_Bc_variable(avm_id , procname=interpavm)        
    620       CALL Agrif_Bc_variable(avmu_id, procname=interpavmu) 
    621       CALL Agrif_Bc_variable(avmv_id, procname=interpavmv) 
     619      CALL Agrif_Bc_variable(avm_id ,calledweight=zalpha, procname=interpavm)        
    622620               
    623621      Agrif_UseSpecialValue = .FALSE. 
     
    13211319 
    13221320# if defined key_zdftke 
    1323    SUBROUTINE interpavt(ptab,i1,i2,j1,j2,k1,k2,before) 
    1324       !!---------------------------------------------------------------------- 
    1325       !!                  ***  ROUTINE interavt  *** 
    1326       !!----------------------------------------------------------------------   
    1327       INTEGER, INTENT(in) :: i1,i2,j1,j2,k1,k2 
    1328       REAL(wp),DIMENSION(i1:i2,j1:j2,k1:k2), INTENT(inout) :: ptab       
    1329       LOGICAL, INTENT(in) :: before 
    1330       !!----------------------------------------------------------------------   
    1331       !       
    1332       IF( before) THEN 
    1333          ptab (i1:i2,j1:j2,k1:k2) = avt_k(i1:i2,j1:j2,k1:k2) 
    1334       ELSE 
    1335          avt_k(i1:i2,j1:j2,k1:k2) = ptab (i1:i2,j1:j2,k1:k2) 
    1336       ENDIF 
    1337       ! 
    1338        
    1339    END SUBROUTINE interpavt 
    1340  
    13411321 
    13421322   SUBROUTINE interpavm(ptab,i1,i2,j1,j2,k1,k2,before) 
     
    13571337   END SUBROUTINE interpavm 
    13581338 
    1359  
    1360    SUBROUTINE interpavmu(ptab,i1,i2,j1,j2,k1,k2,before) 
    1361       !!---------------------------------------------------------------------- 
    1362       !!                  ***  ROUTINE interavmu  *** 
    1363       !!----------------------------------------------------------------------   
    1364       INTEGER, INTENT(in) :: i1,i2,j1,j2,k1,k2 
    1365       REAL(wp),DIMENSION(i1:i2,j1:j2,k1:k2), INTENT(inout) :: ptab 
    1366       LOGICAL, INTENT(in) :: before 
    1367       !!----------------------------------------------------------------------   
    1368       ! 
    1369       IF( before) THEN 
    1370          ptab  (i1:i2,j1:j2,k1:k2) = avmu_k(i1:i2,j1:j2,k1:k2) 
    1371       ELSE 
    1372          avmu_k(i1:i2,j1:j2,k1:k2) = ptab   (i1:i2,j1:j2,k1:k2) 
    1373       ENDIF 
    1374       !       
    1375    END SUBROUTINE interpavmu 
    1376  
    1377  
    1378    SUBROUTINE interpavmv(ptab,i1,i2,j1,j2,k1,k2,before) 
    1379       !!---------------------------------------------------------------------- 
    1380       !!                  ***  ROUTINE interavmv  *** 
    1381       !!----------------------------------------------------------------------   
    1382       INTEGER, INTENT(in) :: i1,i2,j1,j2,k1,k2 
    1383       REAL(wp),DIMENSION(i1:i2,j1:j2,k1:k2), INTENT(inout) :: ptab 
    1384       LOGICAL, INTENT(in) :: before 
    1385       !!----------------------------------------------------------------------   
    1386       ! 
    1387       IF( before) THEN 
    1388          ptab  (i1:i2,j1:j2,k1:k2) = avmv_k(i1:i2,j1:j2,k1:k2) 
    1389       ELSE 
    1390          avmv_k(i1:i2,j1:j2,k1:k2) = ptab  (i1:i2,j1:j2,k1:k2) 
    1391       ENDIF 
    1392       ! 
    1393    END SUBROUTINE interpavmv 
    13941339# endif /* key_zdftke */ 
    13951340 
Note: See TracChangeset for help on using the changeset viewer.