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 3183 – NEMO

Changeset 3183


Ignore:
Timestamp:
2011-11-25T16:31:02+01:00 (12 years ago)
Author:
davestorkey
Message:

Update dynamic allocation in OBS and ASM modules.

Location:
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90

    r3092 r3183  
    2121   !!   ssh_asm_inc  : Apply the SSH increment 
    2222   !!---------------------------------------------------------------------- 
     23   USE wrk_nemo_2       ! Memory Allocation 
    2324   USE par_oce          ! Ocean space and time domain variables 
    2425   USE dom_oce          ! Ocean space and time domain 
     
    101102      !!---------------------------------------------------------------------- 
    102103      !! 
    103       USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released, wrk_2d_1 
    104       USE wrk_nemo, ONLY: hdiv => wrk_2d_1  ! Horizontal divergence 
    105104      !! 
    106105      INTEGER :: ji,jj,jk 
     
    123122      REAL(wp) :: zdate_bkg    ! Date in background state file for DI 
    124123      REAL(wp) :: zdate_inc    ! Time axis in increments file 
     124 
     125      REAL(wp), POINTER, DIMENSION(:,:) :: hdiv 
    125126      !! 
    126127      NAMELIST/nam_asminc/ ln_bkgwri, ln_trjwri,                           & 
     
    439440      IF ( ln_dyninc .AND. nn_divdmp > 0 ) THEN 
    440441 
    441        IF( wrk_in_use( 2, 1) ) THEN 
    442          CALL ctl_stop('asm_inc_init : requested workspace for divergence unavailable.') 
    443        ENDIF 
    444  
     442      CALL wrk_alloc(jpi,jpj,hdiv)  
    445443 
    446444       DO  jt = 1, nn_divdmp 
     
    478476       END DO 
    479477 
    480        IF( wrk_not_released( 2, 1) ) THEN 
    481          CALL ctl_stop('asm_inc_init : failed to release divergence') 
    482        ENDIF 
     478       CALL wrk_dealloc(jpi,jpj,hdiv)  
    483479 
    484480      ENDIF 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90

    r2977 r3183  
    1616   !!---------------------------------------------------------------------- 
    1717   !! * Modules used    
     18   USE wrk_nemo_2               ! Memory Allocation 
    1819   USE par_kind                 ! Precision variables 
    1920   USE in_out_manager           ! I/O manager 
     
    10181019         & frld 
    10191020#endif 
    1020       USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 
    1021 #if ! defined key_ice_lim 
    1022       USE wrk_nemo, ONLY: frld => wrk_2d_1 
    1023 #endif 
    10241021      IMPLICIT NONE 
    10251022 
     
    10341031      INTEGER :: jveloset               ! velocity profile data loop variable 
    10351032      INTEGER :: jvar                   ! Variable number     
     1033#if ! defined key_ice_lim 
     1034      REAL(wp), POINTER, DIMENSION(:,:) :: frld    
     1035#endif 
    10361036      CHARACTER(LEN=20) :: datestr=" ",timestr=" " 
    10371037  
    10381038#if ! defined key_ice_lim 
    1039       IF(wrk_in_use(2, 1))THEN 
    1040          CALL ctl_stop('dia_obs : requested workspace array unavailable.') 
    1041          RETURN 
    1042       END IF 
     1039      CALL wrk_alloc(jpi,jpj,frld)  
    10431040#endif 
    10441041 
     
    11231120 
    11241121#if ! defined key_ice_lim 
    1125       IF(wrk_not_released(2, 1))THEN 
    1126          CALL ctl_stop('dia_obs : failed to release workspace array.') 
    1127       END IF 
     1122      CALL wrk_dealloc(jpi,jpj,frld)  
    11281123#endif 
    11291124 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/OBS/obs_inter_sup.F90

    r2715 r3183  
    1010   !!--------------------------------------------------------------------- 
    1111   !! * Modules used 
     12   USE wrk_nemo_2      ! Memory Allocation 
    1213   USE par_kind        ! Precision variables 
    1314   USE dom_oce         ! Domain variables 
     
    105106      !!        !  08-02  (K. Mogensen)  Original code 
    106107      !!---------------------------------------------------------------------- 
    107       USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 
    108       USE wrk_nemo, ONLY: wrk_3d_1 
    109108      !! 
    110109      !! * Arguments 
     
    128127 
    129128      ! Check workspace array and set-up pointer 
    130       IF(wrk_in_use(3, 1))THEN 
    131          CALL ctl_stop('obs_int_comm_2d : requested workspace array unavailable.') 
    132          RETURN 
    133       END IF 
    134       zval => wrk_3d_1(:,:,1:1) 
     129      CALL wrk_alloc(jpi,jpj,1,zval)  
    135130 
    136131      ! Set up local "3D" buffer 
     
    156151 
    157152      ! 'Release' workspace array back to pool 
    158       IF(wrk_not_released(3, 1))THEN 
    159          CALL ctl_stop('obs_int_comm_2d : failed to release workspace array.') 
    160       END IF 
     153      CALL wrk_dealloc(jpi,jpj,1,zval)  
    161154 
    162155   END SUBROUTINE obs_int_comm_2d 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_altbias.F90

    r2715 r3183  
    3333   USE obs_utils               ! Various observation tools 
    3434   USE obs_inter_sup 
     35   USE wrk_nemo_2              ! Memory Allocation 
    3536 
    3637   IMPLICIT NONE 
     
    6768      !! * Modules used 
    6869      USE iom 
    69       USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 
    70       USE wrk_nemo, ONLY: z_altbias => wrk_2d_1   ! Array to store the alt bias values 
    7170      ! 
    7271      !! * Arguments 
     
    102101         & zglam, & 
    103102         & zgphi 
     103      REAL(wp), POINTER, DIMENSION(:,:) :: & 
     104         & z_altbias 
    104105      REAL(wp) :: zlam 
    105106      REAL(wp) :: zphi 
     
    109110      INTEGER :: numaltbias 
    110111 
    111       IF(wrk_in_use(2, 1))THEN 
    112          CALL ctl_stop('obs_rea_altbias : requested workspace array unavailable.') 
    113          RETURN 
    114       END IF 
     112      CALL wrk_alloc(jpi,jpj,z_altbias)  
    115113 
    116114      IF(lwp)WRITE(numout,*)  
     
    211209      END DO 
    212210 
    213       IF(wrk_not_released(2, 1))THEN 
    214          CALL ctl_stop('obs_rea_altbias : failed to release workspace array.') 
    215       END IF 
     211      CALL wrk_dealloc(jpi,jpj,z_altbias)  
    216212 
    217213   END SUBROUTINE obs_rea_altbias 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/OBS/obs_readmdt.F90

    r2715 r3183  
    1212   !!   obs_offset_mdt : Remove the offset between the model MDT and the used one 
    1313   !!---------------------------------------------------------------------- 
     14   USE wrk_nemo_2       ! Memory Allocation 
    1415   USE par_kind         ! Precision variables 
    1516   USE par_oce          ! Domain parameters 
     
    5657      !!---------------------------------------------------------------------- 
    5758      USE iom 
    58       USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    59       USE wrk_nemo, ONLY:   z_mdt   => wrk_2d_1   ! Array to store the MDT values 
    60       USE wrk_nemo, ONLY:   mdtmask => wrk_2d_2   ! Array to store the mask for the MDT 
    6159      ! 
    6260      INTEGER                          , INTENT(IN)    ::   kslano    ! Number of SLA Products 
     
    7977      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::   zmask, zmdtl, zglam, zgphi 
    8078      INTEGER , DIMENSION(:,:,:), ALLOCATABLE ::   igrdi, igrdj 
     79      ! 
     80      REAL(wp), POINTER, DIMENSION(:,:) ::  z_mdt, mdtmask 
    8181          
    8282      REAL(wp) :: zlam, zphi, zfill, zinfill    ! local scalar 
    8383      !!---------------------------------------------------------------------- 
    8484 
    85       IF( wrk_in_use(2, 1,2) ) THEN 
    86          CALL ctl_stop('obs_rea_mdt : requested workspace array unavailable')   ;   RETURN 
    87       ENDIF 
     85      CALL wrk_alloc(jpi,jpj,z_mdt,mdtmask)  
    8886 
    8987      IF(lwp)WRITE(numout,*)  
     
    172170      END DO 
    173171 
    174       IF( wrk_not_released(2, 1,2) )   CALL ctl_stop('obs_rea_mdt: failed to release workspace arrays') 
     172      CALL wrk_dealloc(jpi,jpj,z_mdt,mdtmask)  
    175173      ! 
    176174   END SUBROUTINE obs_rea_mdt 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/OBS/obs_rot_vel.F90

    r2715 r3183  
    99   !!---------------------------------------------------------------------- 
    1010   !! * Modules used    
     11   USE wrk_nemo_2               ! Memory Allocation 
    1112   USE par_kind                 ! Precision variables 
    1213   USE par_oce                  ! Ocean parameters 
     
    5556      !!---------------------------------------------------------------------- 
    5657      !! * Modules used 
    57       USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released    
    58       USE wrk_nemo, ONLY: zsingu => wrk_2d_1, zcosgu => wrk_2d_2, & 
    59                           zsingv => wrk_2d_3, zcosgv => wrk_2d_4 
    6058      !! * Arguments 
    6159      TYPE(obs_prof), INTENT(INOUT) :: profdata    ! Profile data to be read 
     
    8583      REAL(wp) :: zcos 
    8684      REAL(wp), DIMENSION(1) :: zobsmask 
     85      REAL(wp), POINTER, DIMENSION(:,:) :: zsingu,zcosgu,zsingv,zcosgv 
    8786      INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: & 
    8887         & igrdiu, & 
     
    9392      INTEGER :: jk 
    9493 
    95       IF(wrk_in_use(2, 1,2,3,4))THEN 
    96          CALL ctl_stop('obs_rotvel : requested workspace arrays unavailable.') 
    97          RETURN 
    98       END IF 
     94      CALL wrk_alloc(jpi,jpj,zsingu,zcosgu,zsingv,zcosgv)  
    9995 
    10096      !----------------------------------------------------------------------- 
     
    229225         & ) 
    230226 
    231       IF(wrk_not_released(2, 1,2,3,4))THEN 
    232          CALL ctl_stop('obs_rotvel : failed to release workspace arrays.') 
    233       END IF 
     227      CALL wrk_dealloc(jpi,jpj,zsingu,zcosgu,zsingv,zcosgv)  
    234228 
    235229   END SUBROUTINE obs_rotvel 
Note: See TracChangeset for help on using the changeset viewer.