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 71 for trunk/NEMO/OPA_SRC/LDF/ldfdyn.F90 – NEMO

Ignore:
Timestamp:
2004-04-22T14:21:33+02:00 (20 years ago)
Author:
opalod
Message:

CT : BUGFIX045 : Addition of a generic interface ldf_zpf_1d_3d

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/LDF/ldfdyn.F90

    r27 r71  
    2828 
    2929  INTERFACE ldf_zpf 
    30      MODULE PROCEDURE ldf_zpf_1d, ldf_zpf_3d 
     30     MODULE PROCEDURE ldf_zpf_1d, ldf_zpf_1d_3d, ldf_zpf_3d 
    3131  END INTERFACE 
    3232 
     
    297297 
    298298 
     299   SUBROUTINE ldf_zpf_1d_3d( ld_print, pdam, pwam, pbot, pdep, pah ) 
     300      !!---------------------------------------------------------------------- 
     301      !!                  ***  ROUTINE ldf_zpf  *** 
     302      !! 
     303      !! ** Purpose :   vertical adimensional profile for eddy coefficient 
     304      !! 
     305      !! ** Method  :   1D eddy viscosity coefficients ( depth ) 
     306      !! 
     307      !!---------------------------------------------------------------------- 
     308      !! * Arguments 
     309      LOGICAL , INTENT (in   ) :: ld_print   ! If true, output arrays on numout 
     310      REAL(wp), INTENT (in   ) ::   & 
     311          pdam,     &  ! depth of the inflection point 
     312          pwam,     &  ! width of inflection 
     313          pbot         ! battom value (0<pbot<= 1) 
     314      REAL(wp), INTENT (in   ), DIMENSION(jpk) ::   & 
     315          pdep         ! depth of the gridpoint (T, U, V, F) 
     316      REAL(wp), INTENT (inout), DIMENSION(jpi,jpj,jpk) ::   & 
     317          pah          ! adimensional vertical profile 
     318 
     319      !! * Local variables 
     320      INTEGER  ::   jk           ! dummy loop indices 
     321      REAL(wp) ::   zm00, zm01, zmhb, zmhs, zcf  ! temporary scalars 
     322      !!---------------------------------------------------------------------- 
     323 
     324      zm00 = TANH( ( pdam - gdept(1    ) ) / pwam ) 
     325      zm01 = TANH( ( pdam - gdept(jpkm1) ) / pwam ) 
     326      zmhs = zm00 / zm01 
     327      zmhb = ( 1.e0 - pbot ) / ( 1.e0 - zmhs ) / zm01 
     328 
     329      DO jk = 1, jpk 
     330         zcf = 1.e0 + zmhb * ( zm00 - TANH( ( pdam - pdep(jk) ) / pwam )  ) 
     331         pah(:,:,jk) = zcf 
     332      END DO 
     333 
     334      ! Control print 
     335      IF(lwp .AND. ld_print ) THEN 
     336         WRITE(numout,*) 
     337         WRITE(numout,*) '         ahm profile : ' 
     338         WRITE(numout,*) 
     339         WRITE(numout,'("  jk      ahm       ","  depth t-level " )') 
     340         DO jk = 1, jpk 
     341            WRITE(numout,'(i6,2f12.4,3x,2f12.4)') jk, pah(:,:,jk), pdep(jk) 
     342         END DO 
     343      ENDIF 
     344 
     345   END SUBROUTINE ldf_zpf_1d_3d 
     346 
     347 
    299348   SUBROUTINE ldf_zpf_3d( ld_print, pdam, pwam, pbot, pdep, pah ) 
    300349      !!---------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.