Changeset 2715 for trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90
- Timestamp:
- 2011-03-30T17:58:35+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90
r2528 r2715 31 31 USE dom_oce ! ocean space and time domain 32 32 USE phycst ! physical constants 33 USE in_out_manager ! I/O manager34 33 USE trdmod ! ocean dynamics trends 35 34 USE trdmod_oce ! ocean variables trends 35 USE in_out_manager ! I/O manager 36 36 USE prtctl ! Print control 37 37 USE lbclnk ! lateral boundary condition 38 USE lib_mpp ! MPP library 38 39 39 40 IMPLICIT NONE … … 76 77 !! - Save the trend (l_trddyn=T) 77 78 !!---------------------------------------------------------------------- 79 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 80 USE wrk_nemo, ONLY: ztrdu => wrk_3d_1 , ztrdv => wrk_3d_2 ! 3D workspace 81 !! 78 82 INTEGER, INTENT(in) :: kt ! ocean time-step index 79 !! 80 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztrdu, ztrdv ! 3D temporary workspace 81 !!---------------------------------------------------------------------- 83 !!---------------------------------------------------------------------- 84 ! 85 IF( wrk_in_use(3, 1,2) ) THEN 86 CALL ctl_stop('dyn_hpg: requested workspace arrays are unavailable') ; RETURN 87 ENDIF 82 88 ! 83 89 IF( l_trddyn ) THEN ! Temporary saving of ua and va trends (l_trddyn) … … 104 110 IF(ln_ctl) CALL prt_ctl( tab3d_1=ua, clinfo1=' hpg - Ua: ', mask1=umask, & 105 111 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 112 ! 113 IF( wrk_not_released(3, 1,2) ) CALL ctl_stop('dyn_hpg: failed to release workspace arrays') 106 114 ! 107 115 END SUBROUTINE dyn_hpg … … 144 152 ! 145 153 IF( lk_vvl .AND. .NOT. ln_hpg_sco ) & 146 & CALL ctl_stop( 154 & CALL ctl_stop('dyn_hpg_init : variable volume key_vvl require the standard jacobian formulation hpg_sco') 147 155 ! 148 156 ! ! Set nhpg from ln_hpg_... flags … … 164 172 IF( ln_hpg_djc ) ioptio = ioptio + 1 165 173 IF( ln_hpg_rot ) ioptio = ioptio + 1 166 IF ( ioptio /= 1 ) CALL ctl_stop( 'NO or several hydrostatic pressure gradient options used' )174 IF( ioptio /= 1 ) CALL ctl_stop( 'NO or several hydrostatic pressure gradient options used' ) 167 175 ! 168 176 END SUBROUTINE dyn_hpg_init … … 185 193 !! ** Action : - Update (ua,va) with the now hydrastatic pressure trend 186 194 !!---------------------------------------------------------------------- 187 USE oce, ONLY : zhpi => ta ! use ta as 3D workspace 188 USE oce, ONLY : zhpj => sa ! use sa as 3D workspace 195 USE oce, ONLY: zhpi => ta , zhpj => sa ! (ta,sa) used as 3D workspace 189 196 !! 190 197 INTEGER, INTENT(in) :: kt ! ocean time-step index … … 200 207 ENDIF 201 208 202 ! Local constant initialization 203 zcoef0 = - grav * 0.5_wp 209 zcoef0 = - grav * 0.5_wp ! Local constant initialization 204 210 205 211 ! Surface value … … 247 253 !! ** Action : - Update (ua,va) with the now hydrastatic pressure trend 248 254 !!---------------------------------------------------------------------- 249 USE oce, ONLY : zhpi => ta ! use ta as 3D workspace 250 USE oce, ONLY : zhpj => sa ! use sa as 3D workspace 255 USE oce, ONLY: zhpi => ta , zhpj => sa ! (ta,sa) used as 3D workspace 251 256 !! 252 257 INTEGER, INTENT(in) :: kt ! ocean time-step index … … 349 354 !! ** Action : - Update (ua,va) with the now hydrastatic pressure trend 350 355 !!---------------------------------------------------------------------- 351 USE oce, ONLY : zhpi => ta ! use ta as 3D workspace 352 USE oce, ONLY : zhpj => sa ! use sa as 3D workspace 356 USE oce, ONLY: zhpi => ta , zhpj => sa ! (ta,sa) used as 3D workspace 353 357 !! 354 358 INTEGER, INTENT(in) :: kt ! ocean time-step index … … 435 439 !! - Save the trend (l_trddyn=T) 436 440 !!---------------------------------------------------------------------- 437 USE oce, ONLY : zhpi => ta ! use ta as 3D workspace 438 USE oce, ONLY : zhpj => sa ! use sa as 3D workspace 441 USE oce, ONLY: zhpi => ta , zhpj => sa ! (ta,sa) used as 3D workspace 439 442 !! 440 443 INTEGER, INTENT(in) :: kt ! ocean time-step index … … 512 515 !! Reference : Song, Mon. Wea. Rev., 126, 3213-3230, 1998. 513 516 !!---------------------------------------------------------------------- 514 USE oce, ONLY : zhpi => ta ! use ta as 3D workspace 515 USE oce, ONLY : zhpj => sa ! use sa as 3D workspace 517 USE oce, ONLY: zhpi => ta , zhpj => sa ! (ta,sa) used as 3D workspace 516 518 !! 517 519 INTEGER, INTENT(in) :: kt ! ocean time-step index … … 592 594 !! Reference: Shchepetkin and McWilliams, J. Geophys. Res., 108(C3), 3090, 2003 593 595 !!---------------------------------------------------------------------- 594 USE oce, ONLY : zhpi => ta ! use ta as 3D workspace 595 USE oce, ONLY : zhpj => sa ! use sa as 3D workspace 596 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 597 USE oce , ONLY: zhpi => ta , zhpj => sa ! (ta,sa) used as 3D workspace 598 USE wrk_nemo, ONLY: drhox => wrk_3d_1 , dzx => wrk_3d_2 599 USE wrk_nemo, ONLY: drhou => wrk_3d_3 , dzu => wrk_3d_4 , rho_i => wrk_3d_5 600 USE wrk_nemo, ONLY: drhoy => wrk_3d_6 , dzy => wrk_3d_7 601 USE wrk_nemo, ONLY: drhov => wrk_3d_8 , dzv => wrk_3d_9 , rho_j => wrk_3d_10 602 USE wrk_nemo, ONLY: drhoz => wrk_3d_11 , dzz => wrk_3d_12 603 USE wrk_nemo, ONLY: drhow => wrk_3d_13 , dzw => wrk_3d_14 604 USE wrk_nemo, ONLY: rho_k => wrk_3d_15 596 605 !! 597 606 INTEGER, INTENT(in) :: kt ! ocean time-step index … … 601 610 REAL(wp) :: z1_10, cffu, cffx ! " " 602 611 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 !!---------------------------------------------------------------------- 612 !!---------------------------------------------------------------------- 613 614 IF( wrk_in_use(3, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) ) THEN 615 CALL ctl_stop('dyn:hpg_djc: requested workspace arrays unavailable') ; RETURN 616 ENDIF 607 617 608 618 IF( kt == nit000 ) THEN … … 611 621 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~ s-coordinate case, density Jacobian with cubic polynomial scheme' 612 622 ENDIF 613 614 623 615 624 ! Local constant initialization … … 802 811 END DO 803 812 ! 813 IF( wrk_not_released(3, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) ) & 814 CALL ctl_stop('dyn:hpg_djc: failed to release workspace arrays') 815 ! 804 816 END SUBROUTINE hpg_djc 805 817 … … 813 825 !! Reference: Thiem & Berntsen, Ocean Modelling, In press, 2005. 814 826 !!---------------------------------------------------------------------- 815 USE oce, ONLY : zhpi => ta ! use ta as 3D workspace 816 USE oce, ONLY : zhpj => sa ! use sa as 3D workspace 827 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 828 USE oce , ONLY: zhpi => ta , zhpj => sa ! (ta,sa) used as 3D workspace 829 USE wrk_nemo, ONLY: zdistr => wrk_2d_1 , zsina => wrk_2d_2 , zcosa => wrk_2d_3 830 USE wrk_nemo, ONLY: zhpiorg => wrk_3d_1 , zhpirot => wrk_3d_2 831 USE wrk_nemo, ONLY: zhpitra => wrk_3d_3 , zhpine => wrk_3d_4 832 USE wrk_nemo, ONLY: zhpjorg => wrk_3d_5 , zhpjrot => wrk_3d_6 833 USE wrk_nemo, ONLY: zhpjtra => wrk_3d_7 , zhpjne => wrk_3d_8 817 834 !! 818 835 INTEGER, INTENT(in) :: kt ! ocean time-step index … … 821 838 REAL(wp) :: zforg, zcoef0, zuap, zmskd1, zmskd1m ! temporary scalar 822 839 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 !!---------------------------------------------------------------------- 840 !!---------------------------------------------------------------------- 841 842 IF( wrk_in_use(2, 1,2,3) .OR. & 843 wrk_in_use(3, 1,2,3,4,5,6,7,8) ) THEN 844 CALL ctl_stop('dyn:hpg_rot: requested workspace arrays unavailable') ; RETURN 845 ENDIF 827 846 828 847 IF( kt == nit000 ) THEN … … 981 1000 END DO 982 1001 ! 1002 IF( wrk_not_released(2, 1,2,3) .OR. & 1003 wrk_not_released(3, 1,2,3,4,5,6,7,8) ) CALL ctl_stop('dyn:hpg_rot: failed to release workspace arrays') 1004 ! 983 1005 END SUBROUTINE hpg_rot 984 1006
Note: See TracChangeset
for help on using the changeset viewer.