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 2590 for branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90 – NEMO

Ignore:
Timestamp:
2011-02-18T13:49:27+01:00 (13 years ago)
Author:
trackstand2
Message:

Merge branch 'dynamic_memory' into master-svn-dyn

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90

    r2528 r2590  
    7676      !!             - Save the trend (l_trddyn=T) 
    7777      !!---------------------------------------------------------------------- 
     78      USE wrk_nemo, ONLY: wrk_use, wrk_release 
     79      USE wrk_nemo, ONLY: ztrdu => wrk_3d_1, ztrdv => wrk_3d_2 
     80      !! 
    7881      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    7982      !! 
    80       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ztrdu, ztrdv   ! 3D temporary workspace 
    81       !!---------------------------------------------------------------------- 
     83      !!---------------------------------------------------------------------- 
     84      ! 
     85      IF(.NOT. wrk_use(3, 1,2))THEN 
     86         CALL ctl_stop('dyn_hpg: requested workspace arrays are unavailable.') 
     87         RETURN 
     88      END IF 
    8289      ! 
    8390      IF( l_trddyn ) THEN                    ! Temporary saving of ua and va trends (l_trddyn) 
     
    104111      IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' hpg  - Ua: ', mask1=umask,   & 
    105112         &                       tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
     113      ! 
     114      IF(.NOT. wrk_release(3, 1,2))THEN 
     115         CALL ctl_stop('dyn_hpg: failed to release workspace arrays.') 
     116      END IF 
    106117      ! 
    107118   END SUBROUTINE dyn_hpg 
     
    594605      USE oce, ONLY :   zhpi => ta   ! use ta as 3D workspace 
    595606      USE oce, ONLY :   zhpj => sa   ! use sa as 3D workspace 
     607      USE wrk_nemo, ONLY: wrk_use, wrk_release 
     608      USE wrk_nemo, ONLY: drhox => wrk_3d_1, dzx => wrk_3d_2 
     609      USE wrk_nemo, ONLY: drhou => wrk_3d_3, dzu => wrk_3d_4, rho_i => wrk_3d_5 
     610      USE wrk_nemo, ONLY: drhoy => wrk_3d_6, dzy => wrk_3d_7 
     611      USE wrk_nemo, ONLY: drhov => wrk_3d_8, dzv => wrk_3d_9, rho_j => wrk_3d_10 
     612      USE wrk_nemo, ONLY: drhoz => wrk_3d_11, dzz => wrk_3d_12  
     613      USE wrk_nemo, ONLY: drhow => wrk_3d_13, dzw => wrk_3d_14 
     614      USE wrk_nemo, ONLY: rho_k => wrk_3d_15 
    596615      !! 
    597616      INTEGER, INTENT(in) ::   kt    ! ocean time-step index 
     
    601620      REAL(wp) ::   z1_10, cffu, cffx   !    "         " 
    602621      REAL(wp) ::   z1_12, cffv, cffy   !    "         " 
    603       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   drhox, dzx, drhou, dzu, rho_i   ! 3D workspace 
    604       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   drhoy, dzy, drhov, dzv, rho_j   !  "      " 
    605       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   drhoz, dzz, drhow, dzw, rho_k   !  "      " 
    606       !!---------------------------------------------------------------------- 
     622      !!---------------------------------------------------------------------- 
     623 
     624      IF(.NOT. wrk_use(3, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15))THEN 
     625         CALL ctl_stop('dyn:hpg_djc : requested workspace arrays unavailable.') 
     626         RETURN 
     627      END IF 
    607628 
    608629      IF( kt == nit000 ) THEN 
     
    802823      END DO 
    803824      ! 
     825      IF(.NOT. wrk_release(3, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15))THEN 
     826         CALL ctl_stop('dyn:hpg_djc : failed to release workspace arrays.') 
     827      END IF 
     828      ! 
    804829   END SUBROUTINE hpg_djc 
    805830 
     
    815840      USE oce, ONLY :   zhpi => ta   ! use ta as 3D workspace 
    816841      USE oce, ONLY :   zhpj => sa   ! use sa as 3D workspace 
     842      USE wrk_nemo, ONLY: wrk_use, wrk_release 
     843      USE wrk_nemo, ONLY: zdistr => wrk_2d_1, zsina => wrk_2d_2, & 
     844                          zcosa  => wrk_2d_3 
     845      USE wrk_nemo, ONLY: zhpiorg => wrk_3d_1, zhpirot => wrk_3d_2 
     846      USE wrk_nemo, ONLY: zhpitra => wrk_3d_3, zhpine => wrk_3d_4 
     847      USE wrk_nemo, ONLY: zhpjorg => wrk_3d_5, zhpjrot => wrk_3d_6 
     848      USE wrk_nemo, ONLY: zhpjtra => wrk_3d_7, zhpjne => wrk_3d_8 
    817849      !! 
    818850      INTEGER, INTENT(in) ::   kt    ! ocean time-step index 
     
    821853      REAL(wp) ::   zforg, zcoef0, zuap, zmskd1, zmskd1m   ! temporary scalar 
    822854      REAL(wp) ::   zfrot        , zvap, zmskd2, zmskd2m   !    "         " 
    823       REAL(wp), DIMENSION(jpi,jpj)     ::   zdistr, zsina, zcosa                ! 2D workspace 
    824       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zhpiorg, zhpirot, zhpitra, zhpine   ! 3D workspace 
    825       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zhpjorg, zhpjrot, zhpjtra, zhpjne   !  "      " 
    826       !!---------------------------------------------------------------------- 
     855      !!---------------------------------------------------------------------- 
     856 
     857      IF( (.NOT. wrk_use(2, 1,2,3)) .OR.               & 
     858          (.NOT. wrk_use(3, 1,2,3,4,5,6,7,8)))THEN 
     859         CALL ctl_stop('dyn:hpg_rot : requested workspace arrays unavailable.') 
     860         RETURN 
     861      END IF 
    827862 
    828863      IF( kt == nit000 ) THEN 
     
    9811016      END DO 
    9821017      ! 
     1018      IF( (.NOT. wrk_release(2, 1,2,3)) .OR.               & 
     1019          (.NOT. wrk_release(3, 1,2,3,4,5,6,7,8)))THEN 
     1020         CALL ctl_stop('dyn:hpg_rot : failed to release workspace arrays.') 
     1021      END IF 
     1022      ! 
    9831023   END SUBROUTINE hpg_rot 
    9841024 
Note: See TracChangeset for help on using the changeset viewer.