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 2777 for trunk/NEMOGCM/NEMO/LIM_SRC_3/limtrp.F90 – NEMO

Ignore:
Timestamp:
2011-06-07T11:55:02+02:00 (13 years ago)
Author:
smasson
Message:

LIM3 compiling and (partly?) running in v3_3_1, see ticket#817

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limtrp.F90

    r2715 r2777  
    3232   PUBLIC   lim_trp    ! called by ice_step 
    3333 
    34    REAL(wp), PUBLIC ::   bound  = 0._wp   !: boundary condit. (0.0 no-slip, 1.0 free-slip) 
    35  
    3634   REAL(wp)  ::   epsi06 = 1.e-06_wp   ! constant values 
    3735   REAL(wp)  ::   epsi03 = 1.e-03_wp   
     
    4038   REAL(wp)  ::   rzero  = 0._wp    
    4139   REAL(wp)  ::   rone   = 1._wp 
     40 
     41   REAL(wp), SAVE, ALLOCATABLE, DIMENSION(:,:,:,:) ::   zs0e 
    4242 
    4343   !! * Substitution 
     
    6363      !!--------------------------------------------------------------------- 
    6464      USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    65       USE wrk_nemo, ONLY:   zs0at => wrk_2d_1 , zsm => wrk_2d_2 , zs0ow  => wrk_2d_3      ! 2D workspace 
    66       USE wrk_nemo, ONLY:   wrk_3d_1, wrk_3d_2, wrk_3d_3, wrk_3d_4, wrk_3d_5, wrk_3d_6    ! 3D workspace 
    67       USE wrk_nemo, ONLY:   wrk_4d_1                                                      ! 4D workspace 
     65      USE wrk_nemo, ONLY:   zs0at => wrk_2d_4 , zsm => wrk_2d_5 , zs0ow  => wrk_2d_6      ! 2D workspace 
     66      USE wrk_nemo, ONLY:   wrk_3d_3, wrk_3d_4, wrk_3d_5, wrk_3d_6, wrk_3d_7, wrk_3d_8    ! 3D workspace 
    6867      ! 
    6968      INTEGER, INTENT(in) ::   kt   ! number of iteration 
     
    7170      INTEGER  ::   ji, jj, jk, jl, layer   ! dummy loop indices 
    7271      INTEGER  ::   initad                  ! number of sub-timestep for the advection 
     72      INTEGER  ::   ierr                    ! error status 
    7373      REAL(wp) ::   zindb  , zindsn , zindic      ! local scalar 
    7474      REAL(wp) ::   zusvosn, zusvoic, zbigval     !   -      - 
     
    7777      ! 
    7878      REAL(wp), POINTER, DIMENSION(:,:,:)   ::   zs0ice, zs0sn, zs0a, zs0c0 , zs0sm , zs0oi   ! 3D pointer 
    79       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   zs0e                                         ! 4D pointer 
    8079      !!--------------------------------------------------------------------- 
    8180 
    82       IF( wrk_in_use(2, 1,2,3,4,5) ) THEN 
     81      IF( wrk_in_use(2, 4,5,6) .OR. wrk_in_use(3, 3,4,5,6,7,8) ) THEN 
    8382         CALL ctl_stop( 'lim_trp : requested workspace arrays unavailable' )   ;   RETURN 
    8483      END IF 
    8584 
    86       zs0ice => wrk_3d_1(:,:,1:jpl)   ;   zs0a  => wrk_3d_3   ;   zs0sm => wrk_3d_3 
    87       zs0sn  => wrk_3d_2(:,:,1:jpl)   ;   zs0c0 => wrk_3d_3   ;   zs0oi => wrk_3d_3 
    88       zs0e   => wrk_4d_1(:,:,1:jkmax,1:jpl) 
    89  
     85      zs0ice => wrk_3d_3(:,:,1:jpl)   ;   zs0a  => wrk_3d_5(:,:,1:jpl)   ;   zs0sm => wrk_3d_7(:,:,1:jpl) 
     86      zs0sn  => wrk_3d_4(:,:,1:jpl)   ;   zs0c0 => wrk_3d_6(:,:,1:jpl)   ;   zs0oi => wrk_3d_8(:,:,1:jpl) 
     87      IF( kt == nit000 ) THEN  
     88         ALLOCATE( zs0e(jpi,jpj,jkmax,jpl), Stat = ierr ) 
     89         IF( lk_mpp    )   CALL mpp_sum ( ierr ) 
     90         IF( ierr /= 0 )   CALL ctl_stop( 'lim_trp : failed to allocate zs0e array' ) 
     91      END IF 
    9092 
    9193      IF( numit == nstart .AND. lwp ) THEN 
     
    463465      ENDIF 
    464466      ! 
    465       IF( wrk_not_released(2, 1,2,3,4,5) )   CALL ctl_stop('lim_trp_2 : failed to release workspace arrays') 
     467      IF( wrk_not_released(2, 4,5,6) .OR. wrk_not_released(3, 3,4,5,6,7,8) )   & 
     468         &   CALL ctl_stop('lim_trp : failed to release workspace arrays') 
    466469      ! 
    467470   END SUBROUTINE lim_trp 
Note: See TracChangeset for help on using the changeset viewer.