Changeset 2715 for trunk/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90
- Timestamp:
- 2011-03-30T17:58:35+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90
r2712 r2715 42 42 PRIVATE 43 43 44 PUBLIC dom_zgr ! called by dom_init.F9044 PUBLIC dom_zgr ! called by dom_init.F90 45 45 46 46 ! !!* Namelist namzgr_sco * … … 54 54 ! ! ( rn_bb=0; top only, rn_bb =1; top and bottom) 55 55 REAL(wp) :: rn_hc = 150._wp ! Critical depth for s-sigma coordinates 56 57 56 57 !! * Substitutions 58 58 # include "domzgr_substitute.h90" 59 59 # include "vectopt_loop_substitute.h90" 60 60 !!---------------------------------------------------------------------- 61 !! NEMO/OPA 3.3 , NEMO Consortium (2010)61 !! NEMO/OPA 3.3.1 , NEMO Consortium (2011) 62 62 !! $Id$ 63 63 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 121 121 ! 122 122 ! 123 123 124 IF( nprint == 1 .AND. lwp ) THEN 124 125 WRITE(numout,*) ' MIN val mbathy ', MINVAL( mbathy(:,:) ), ' MAX ', MAXVAL( mbathy(:,:) ) … … 588 589 !! - update bathy : meter bathymetry (in meters) 589 590 !!---------------------------------------------------------------------- 591 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 592 USE wrk_nemo, ONLY: zbathy => wrk_2d_1 593 !! 590 594 INTEGER :: ji, jj, jl ! dummy loop indices 591 595 INTEGER :: icompt, ibtest, ikmax ! temporary integers 592 REAL(wp), DIMENSION(jpi,jpj) :: zbathy ! temporary workspace 593 !!---------------------------------------------------------------------- 596 !!---------------------------------------------------------------------- 597 598 IF( wrk_in_use(2, 1) ) THEN 599 CALL ctl_stop('zgr_bat_ctl: requested workspace array unavailable') ; RETURN 600 ENDIF 594 601 595 602 IF(lwp) WRITE(numout,*) … … 695 702 ENDIF 696 703 ! 704 IF( wrk_not_released(2, 1) ) CALL ctl_stop('zgr_bat_ctl: failed to release workspace array') 705 ! 697 706 END SUBROUTINE zgr_bat_ctl 698 707 … … 710 719 !! (min value = 1 over land) 711 720 !!---------------------------------------------------------------------- 721 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 722 USE wrk_nemo, ONLY: zmbk => wrk_2d_1 723 !! 712 724 INTEGER :: ji, jj ! dummy loop indices 713 REAL(wp), DIMENSION(jpi,jpj) :: zmbk ! 2D workspace 714 !!---------------------------------------------------------------------- 725 !!---------------------------------------------------------------------- 726 ! 727 IF( wrk_in_use(2, 1) ) THEN 728 CALL ctl_stop('zgr_bot_level: requested 2D workspace unavailable') ; RETURN 729 ENDIF 715 730 ! 716 731 IF(lwp) WRITE(numout,*) … … 729 744 zmbk(:,:) = REAL( mbku(:,:), wp ) ; CALL lbc_lnk(zmbk,'U',1.) ; mbku (:,:) = MAX( INT( zmbk(:,:) ), 1 ) 730 745 zmbk(:,:) = REAL( mbkv(:,:), wp ) ; CALL lbc_lnk(zmbk,'V',1.) ; mbkv (:,:) = MAX( INT( zmbk(:,:) ), 1 ) 746 ! 747 IF( wrk_not_released(2, 1) ) CALL ctl_stop('zgr_bot_level: failed to release workspace array') 731 748 ! 732 749 END SUBROUTINE zgr_bot_level … … 805 822 !! Reference : Pacanowsky & Gnanadesikan 1997, Mon. Wea. Rev., 126, 3248-3270. 806 823 !!---------------------------------------------------------------------- 824 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 825 USE wrk_nemo, ONLY: zprt => wrk_3d_1 826 !! 807 827 INTEGER :: ji, jj, jk ! dummy loop indices 808 828 INTEGER :: ik, it ! temporary integers … … 813 833 REAL(wp) :: zdiff ! temporary scalar 814 834 REAL(wp) :: zrefdep ! temporary scalar 815 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprt ! 3D workspace816 835 !!--------------------------------------------------------------------- 836 ! 837 IF( wrk_in_use(3, 1) ) THEN 838 CALL ctl_stop('zgr_zps: requested workspace unavailable.') ; RETURN 839 ENDIF 817 840 818 841 IF(lwp) WRITE(numout,*) … … 822 845 823 846 ll_print = .FALSE. ! Local variable for debugging 824 !! ll_print = .TRUE.825 847 826 848 IF(lwp .AND. ll_print) THEN ! control print of the ocean depth … … 1006 1028 ENDIF 1007 1029 ! 1030 IF( wrk_not_released(3, 1) ) CALL ctl_stop('zgr_zps: failed to release workspace') 1031 ! 1008 1032 END SUBROUTINE zgr_zps 1009 1033 … … 1092 1116 !! Reference : Madec, Lott, Delecluse and Crepon, 1996. JPO, 26, 1393-1408. 1093 1117 !!---------------------------------------------------------------------- 1118 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 1119 USE wrk_nemo, ONLY: zenv => wrk_2d_1 , ztmp => wrk_2d_2 , zmsk => wrk_2d_3 1120 USE wrk_nemo, ONLY: zri => wrk_2d_4 , zrj => wrk_2d_5 , zhbat => wrk_2d_6 1121 USE wrk_nemo, ONLY: gsigw3 => wrk_3d_1 1122 USE wrk_nemo, ONLY: gsigt3 => wrk_3d_2 1123 USE wrk_nemo, ONLY: gsi3w3 => wrk_3d_3 1124 USE wrk_nemo, ONLY: esigt3 => wrk_3d_4 1125 USE wrk_nemo, ONLY: esigw3 => wrk_3d_5 1126 USE wrk_nemo, ONLY: esigtu3 => wrk_3d_6 1127 USE wrk_nemo, ONLY: esigtv3 => wrk_3d_7 1128 USE wrk_nemo, ONLY: esigtf3 => wrk_3d_8 1129 USE wrk_nemo, ONLY: esigwu3 => wrk_3d_9 1130 USE wrk_nemo, ONLY: esigwv3 => wrk_3d_10 1131 ! 1094 1132 INTEGER :: ji, jj, jk, jl ! dummy loop argument 1095 1133 INTEGER :: iip1, ijp1, iim1, ijm1 ! temporary integers 1096 1134 REAL(wp) :: zcoeft, zcoefw, zrmax, ztaper ! temporary scalars 1097 REAL(wp), DIMENSION(jpi,jpj) :: zenv, ztmp, zmsk ! 2D workspace 1098 REAL(wp), DIMENSION(jpi,jpj) :: zri , zrj , zhbat ! - - 1099 !! 1100 REAL(wp), DIMENSION(jpi,jpj,jpk) :: gsigw3 1101 REAL(wp), DIMENSION(jpi,jpj,jpk) :: gsigt3 1102 REAL(wp), DIMENSION(jpi,jpj,jpk) :: gsi3w3 1103 REAL(wp), DIMENSION(jpi,jpj,jpk) :: esigt3 1104 REAL(wp), DIMENSION(jpi,jpj,jpk) :: esigw3 1105 REAL(wp), DIMENSION(jpi,jpj,jpk) :: esigtu3 1106 REAL(wp), DIMENSION(jpi,jpj,jpk) :: esigtv3 1107 REAL(wp), DIMENSION(jpi,jpj,jpk) :: esigtf3 1108 REAL(wp), DIMENSION(jpi,jpj,jpk) :: esigwu3 1109 REAL(wp), DIMENSION(jpi,jpj,jpk) :: esigwv3 1110 !! 1135 ! 1136 1111 1137 NAMELIST/namzgr_sco/ rn_sbot_max, rn_sbot_min, rn_theta, rn_thetb, rn_rmax, ln_s_sigma, rn_bb, rn_hc 1112 1138 !!---------------------------------------------------------------------- 1113 1139 1114 REWIND( numnam ) ! Read Namelist namzgr_sco : sigma-stretching parameters 1140 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 1141 CALL ctl_stop('zgr_sco: ERROR - requested workspace arrays unavailable') ; RETURN 1142 ENDIF 1143 1144 REWIND( numnam ) ! Read Namelist namzgr_sco : sigma-stretching parameters 1115 1145 READ ( numnam, namzgr_sco ) 1116 1146 1117 IF(lwp) THEN 1147 IF(lwp) THEN ! control print 1118 1148 WRITE(numout,*) 1119 1149 WRITE(numout,*) 'dom:zgr_sco : s-coordinate or hybrid z-s-coordinate' … … 1146 1176 DO jj = 1, jpj 1147 1177 DO ji = 1, jpi 1148 IF( bathy(ji,jj) > 0._wp ) THEN 1149 bathy(ji,jj) = MAX( rn_sbot_min, bathy(ji,jj) ) 1150 ENDIF 1178 IF( bathy(ji,jj) > 0._wp ) bathy(ji,jj) = MAX( rn_sbot_min, bathy(ji,jj) ) 1151 1179 END DO 1152 1180 END DO … … 1372 1400 END DO ! for all ji's 1373 1401 1374 DO ji = 1, jpi 1375 DO jj = 1, jpj 1402 DO ji = 1, jpim1 1403 DO jj = 1, jpjm1 1376 1404 DO jk = 1, jpk 1377 1405 esigtu3(ji,jj,jk) = ( hbatt(ji,jj)*esigt3(ji,jj,jk)+hbatt(ji+1,jj)*esigt3(ji+1,jj,jk) ) & … … 1398 1426 END DO 1399 1427 END DO 1428 1429 CALL lbc_lnk( e3t , 'T', 1._wp ) 1430 CALL lbc_lnk( e3u , 'U', 1._wp ) 1431 CALL lbc_lnk( e3v , 'V', 1._wp ) 1432 CALL lbc_lnk( e3f , 'F', 1._wp ) 1433 CALL lbc_lnk( e3w , 'W', 1._wp ) 1434 CALL lbc_lnk( e3uw, 'U', 1._wp ) 1435 CALL lbc_lnk( e3vw, 'V', 1._wp ) 1436 1400 1437 ! 1401 1438 ELSE ! not ln_s_sigma … … 1553 1590 !!gm bug #endif 1554 1591 ! 1592 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) ) & 1593 & CALL ctl_stop('dom:zgr_sco: failed to release workspace arrays') 1594 ! 1555 1595 END SUBROUTINE zgr_sco 1556 1557 1596 1558 1597 !!======================================================================
Note: See TracChangeset
for help on using the changeset viewer.