- Timestamp:
- 2011-03-16T08:13:20+01:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90
r2690 r2695 55 55 REAL(wp) :: rn_hc = 150._wp ! Critical depth for s-sigma coordinates 56 56 57 !! Arrays used in zgr_sco 58 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: gsigw3 59 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: gsigt3 60 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: gsi3w3 61 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: esigt3 62 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: esigw3 63 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: esigtu3 64 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: esigtv3 65 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: esigtf3 66 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: esigwu3 67 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: esigwv3 68 69 !! * Substitutions 57 !! * Substitutions 70 58 # include "domzgr_substitute.h90" 71 59 # include "vectopt_loop_substitute.h90" … … 77 65 CONTAINS 78 66 79 INTEGER FUNCTION dom_zgr_sco_alloc()80 !!----------------------------------------------------------------------81 !! *** FUNCTION dom_zgr_sco_alloc ***82 !!----------------------------------------------------------------------83 ALLOCATE( gsigw3 (jpi,jpj,jpk) , gsigt3 (jpi,jpj,jpk) , &84 & esigt3 (jpi,jpj,jpk) , esigw3 (jpi,jpj,jpk) , &85 & esigtu3(jpi,jpj,jpk) , esigtv3(jpi,jpj,jpk) , &86 & esigtf3(jpi,jpj,jpk) , esigwu3(jpi,jpj,jpk) , &87 & esigwv3(jpi,jpj,jpk) , STAT=dom_zgr_sco_alloc )88 !89 IF( lk_mpp ) CALL mpp_sum ( dom_zgr_sco_alloc )90 IF( dom_zgr_sco_alloc /= 0 ) CALL ctl_warn('dom_zgr_sco_alloc: failed to allocate arrays.')91 !92 END FUNCTION dom_zgr_sco_alloc93 94 95 67 SUBROUTINE dom_zgr 96 68 !!---------------------------------------------------------------------- … … 149 121 ! 150 122 ! 123 151 124 IF( nprint == 1 .AND. lwp ) THEN 152 125 WRITE(numout,*) ' MIN val mbathy ', MINVAL( mbathy(:,:) ), ' MAX ', MAXVAL( mbathy(:,:) ) … … 615 588 !!---------------------------------------------------------------------- 616 589 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 617 USE wrk_nemo, ONLY: zbathy => wrk_2d_1 ! 2D workspace590 USE wrk_nemo, ONLY: zbathy => wrk_2d_1 618 591 !! 619 592 INTEGER :: ji, jj, jl ! dummy loop indices … … 745 718 !!---------------------------------------------------------------------- 746 719 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 747 USE wrk_nemo, ONLY: zmbk => wrk_2d_1 ! 2D workspace720 USE wrk_nemo, ONLY: zmbk => wrk_2d_1 748 721 !! 749 722 INTEGER :: ji, jj ! dummy loop indices … … 848 821 !!---------------------------------------------------------------------- 849 822 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 850 USE wrk_nemo, ONLY: zprt => wrk_3d_1 ! 3D workspace823 USE wrk_nemo, ONLY: zprt => wrk_3d_1 851 824 !! 852 825 INTEGER :: ji, jj, jk ! dummy loop indices … … 861 834 ! 862 835 IF( wrk_in_use(3, 1) ) THEN 863 CALL ctl_stop('zgr_zps: requested workspace unavailable ') ; RETURN836 CALL ctl_stop('zgr_zps: requested workspace unavailable.') ; RETURN 864 837 ENDIF 865 838 … … 1142 1115 !!---------------------------------------------------------------------- 1143 1116 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 1144 USE wrk_nemo, ONLY: zenv => wrk_2d_1 , ztmp => wrk_2d_2 , zmsk => wrk_2d_3 ! 2D workspace 1145 USE wrk_nemo, ONLY: zri => wrk_2d_4 , zrj => wrk_2d_5 , zhbat => wrk_2d_6 ! - - 1117 USE wrk_nemo, ONLY: zenv => wrk_2d_1 , ztmp => wrk_2d_2 , zmsk => wrk_2d_3 1118 USE wrk_nemo, ONLY: zri => wrk_2d_4 , zrj => wrk_2d_5 , zhbat => wrk_2d_6 1119 USE wrk_nemo, ONLY: gsigw3 => wrk_3d_1 1120 USE wrk_nemo, ONLY: gsigt3 => wrk_3d_2 1121 USE wrk_nemo, ONLY: gsi3w3 => wrk_3d_3 1122 USE wrk_nemo, ONLY: esigt3 => wrk_3d_4 1123 USE wrk_nemo, ONLY: esigw3 => wrk_3d_5 1124 USE wrk_nemo, ONLY: esigtu3 => wrk_3d_6 1125 USE wrk_nemo, ONLY: esigtv3 => wrk_3d_7 1126 USE wrk_nemo, ONLY: esigtf3 => wrk_3d_8 1127 USE wrk_nemo, ONLY: esigwu3 => wrk_3d_9 1128 USE wrk_nemo, ONLY: esigwv3 => wrk_3d_10 1146 1129 ! 1147 1130 INTEGER :: ji, jj, jk, jl ! dummy loop argument … … 1149 1132 REAL(wp) :: zcoeft, zcoefw, zrmax, ztaper ! temporary scalars 1150 1133 ! 1134 1151 1135 NAMELIST/namzgr_sco/ rn_sbot_max, rn_sbot_min, rn_theta, rn_thetb, rn_rmax, ln_s_sigma, rn_bb, rn_hc 1152 1136 !!---------------------------------------------------------------------- 1153 1137 1154 IF( wrk_in_use(2, 1,2,3,4,5,6) ) THEN1155 CALL ctl_stop('zgr_sco: requested workspace arrays unavailable') ; RETURN1138 IF( wrk_in_use(2, 1,2,3,4,5,6) .OR. wrk_in_use(3, 1,2,3,4,5,6,7,8,9,10) ) THEN 1139 CALL ctl_stop('zgr_sco: ERROR - requested workspace arrays unavailable') ; RETURN 1156 1140 ENDIF 1157 1141 … … 1174 1158 WRITE(numout,*) ' Critical depth rn_hc = ', rn_hc 1175 1159 ENDIF 1176 1177 ! ! allocate sco arrays1178 IF( dom_zgr_sco_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'dom:zgr_sco : unable to allocate arrays' )1179 1160 1180 1161 gsigw3 = 0._wp ; gsigt3 = 0._wp ; gsi3w3 = 0._wp … … 1417 1398 END DO ! for all ji's 1418 1399 1419 DO ji = 1, jpi 1420 DO jj = 1, jpj 1400 DO ji = 1, jpim1 1401 DO jj = 1, jpjm1 1421 1402 DO jk = 1, jpk 1422 1403 esigtu3(ji,jj,jk) = ( hbatt(ji,jj)*esigt3(ji,jj,jk)+hbatt(ji+1,jj)*esigt3(ji+1,jj,jk) ) & … … 1598 1579 !!gm bug #endif 1599 1580 ! 1600 IF( wrk_not_released(2, 1,2,3,4,5,6) ) CALL ctl_stop('dom:zgr_sco: failed to release workspace arrays') 1581 IF( wrk_not_released(2, 1,2,3,4,5,6) .OR. wrk_not_released(3, 1,2,3,4,5,6,7,8,9,10) ) & 1582 & CALL ctl_stop('dom:zgr_sco: failed to release workspace arrays') 1601 1583 ! 1602 1584 END SUBROUTINE zgr_sco
Note: See TracChangeset
for help on using the changeset viewer.