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

Ignore:
Timestamp:
2012-01-28T17:44:18+01:00 (12 years ago)
Author:
rblod
Message:

Merge of 3.4beta into the trunk

File:
1 edited

Legend:

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

    r2715 r3294  
    2222   USE prtctl           ! Print control 
    2323   USE lib_mpp          ! MPP library 
     24   USE wrk_nemo         ! work arrays 
    2425 
    2526   IMPLICIT NONE 
     
    5657      !! Reference:  Prather, 1986, JGR, 91, D6. 6671-6681. 
    5758      !!-------------------------------------------------------------------- 
    58       USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    59       USE wrk_nemo, ONLY:   zf0  => wrk_2d_11 , zfx   => wrk_2d_12 , zfy    => wrk_2d_13 , zbet => wrk_2d_14   ! 2D workspace 
    60       USE wrk_nemo, ONLY:   zfm  => wrk_2d_15 , zfxx  => wrk_2d_16 , zfyy   => wrk_2d_17 , zfxy => wrk_2d_18   !  -      - 
    61       USE wrk_nemo, ONLY:   zalg => wrk_2d_19 , zalg1 => wrk_2d_20 , zalg1q => wrk_2d_21                       !  -      - 
    62       ! 
    6359      REAL(wp)                    , INTENT(in   ) ::   pdf                ! reduction factor for the time step 
    6460      REAL(wp)                    , INTENT(in   ) ::   pcrh               ! call lim_adv_x then lim_adv_y (=1) or the opposite (=0) 
     
    7369      REAL(wp) ::   zs1new, zalf , zalfq , zbt           !   -      - 
    7470      REAL(wp) ::   zs2new, zalf1, zalf1q, zbt1          !   -      - 
     71      REAL(wp), POINTER, DIMENSION(:,:) ::   zf0 , zfx  , zfy   , zbet   ! 2D workspace 
     72      REAL(wp), POINTER, DIMENSION(:,:) ::   zfm , zfxx , zfyy  , zfxy   !  -      - 
     73      REAL(wp), POINTER, DIMENSION(:,:) ::   zalg, zalg1, zalg1q         !  -      - 
    7574      !--------------------------------------------------------------------- 
    7675 
    77       IF( wrk_in_use(2, 11,12,13,14,15,16,17,18,19,20,21) ) THEN 
    78          CALL ctl_stop('lim_adv_x: requested workspace arrays unavailable')   ;   RETURN 
    79       ENDIF 
     76      CALL wrk_alloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm ) 
     77      CALL wrk_alloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q ) 
    8078 
    8179      ! Limitation of moments.                                            
     
    224222      ENDIF 
    225223      ! 
    226       IF( wrk_not_released(2, 11,12,13,14,15,16,17,18,19,20,21) )    & 
    227           CALL ctl_stop('lim_adv_x : failed to release workspace arrays') 
     224      CALL wrk_dealloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm ) 
     225      CALL wrk_dealloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q ) 
    228226      ! 
    229227   END SUBROUTINE lim_adv_x 
     
    244242      !! Reference:  Prather, 1986, JGR, 91, D6. 6671-6681. 
    245243      !!--------------------------------------------------------------------- 
    246       USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    247       USE wrk_nemo, ONLY:   zf0  => wrk_2d_11 , zfx   => wrk_2d_12 , zfy    => wrk_2d_13 , zbet => wrk_2d_14   ! 2D workspace 
    248       USE wrk_nemo, ONLY:   zfm  => wrk_2d_15 , zfxx  => wrk_2d_16 , zfyy   => wrk_2d_17 , zfxy => wrk_2d_18   !  -      - 
    249       USE wrk_nemo, ONLY:   zalg => wrk_2d_19 , zalg1 => wrk_2d_20 , zalg1q => wrk_2d_21                       !  -      - 
    250       ! 
    251244      REAL(wp)                    , INTENT(in   ) ::   pdf                ! reduction factor for the time step 
    252245      REAL(wp)                    , INTENT(in   ) ::   pcrh               ! call lim_adv_x then lim_adv_y (=1) or the opposite (=0) 
     
    261254      REAL(wp) ::   zs1new, zalf , zalfq , zbt           !    -         - 
    262255      REAL(wp) ::   zs2new, zalf1, zalf1q, zbt1          !    -         - 
     256      REAL(wp), POINTER, DIMENSION(:,:) ::   zf0, zfx , zfy , zbet   ! 2D workspace 
     257      REAL(wp), POINTER, DIMENSION(:,:) ::   zfm, zfxx, zfyy, zfxy   !  -      - 
     258      REAL(wp), POINTER, DIMENSION(:,:) ::   zalg, zalg1, zalg1q     !  -      - 
    263259      !--------------------------------------------------------------------- 
    264260 
    265       IF( wrk_in_use(2, 11,12,13,14,15,16,17,18,19,20,21) ) THEN 
    266          CALL ctl_stop('lim_adv_y : requested workspace arrays unavailable')   ;   RETURN 
    267       ENDIF 
     261      CALL wrk_alloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm ) 
     262      CALL wrk_alloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q ) 
    268263 
    269264      ! Limitation of moments. 
     
    413408      ENDIF 
    414409      ! 
    415       IF( wrk_not_released(2, 11,12,13,14,15,16,17,18,19,20,21) )    & 
    416          CALL ctl_stop('lim_adv_y: failed to release workspace arrays') 
     410      CALL wrk_dealloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm ) 
     411      CALL wrk_dealloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q ) 
    417412      ! 
    418413   END SUBROUTINE lim_adv_y 
Note: See TracChangeset for help on using the changeset viewer.