- Timestamp:
- 2011-03-15T16:27:46+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r2636 r2690 54 54 INTEGER , PARAMETER :: jp_snow = 8 ! index of snow (solid prcipitation) (kg/m2/s) 55 55 INTEGER , PARAMETER :: jp_tdif = 9 ! index of tau diff associated to HF tau (N/m2) at T-point 56 56 57 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf ! structure of input fields (file informations, fields read) 57 58 … … 111 112 !! - emp, emps evaporation minus precipitation 112 113 !!---------------------------------------------------------------------- 113 INTEGER, INTENT( in) :: kt ! ocean time step114 INTEGER, INTENT(in) :: kt ! ocean time step 114 115 !! 115 116 INTEGER :: ierror ! return error code … … 231 232 232 233 IF( wrk_in_use(2, 1,2,3,4,5,6,7,8,9,10,11,12,13) ) THEN 233 CALL ctl_stop('blk_oce_core: requested workspace arrays unavailable .') ; RETURN234 CALL ctl_stop('blk_oce_core: requested workspace arrays unavailable') ; RETURN 234 235 ENDIF 235 236 ! … … 605 606 ENDIF 606 607 607 IF( wrk_not_released(2, 1) .OR. &608 IF( wrk_not_released(2, 1) .OR. & 608 609 wrk_not_released(3, 4,5,6,7) ) CALL ctl_stop('blk_ice_core: failed to release workspace arrays') 609 610 ! … … 663 664 !!---------------------------------------------------------------------- 664 665 665 IF( wrk_in_use(2, 14,15,16,17,18,19,&666 20,21,22,23,24,25,26,27,28,29,&667 30,31,32) .OR.&668 iwrk_in_use(2, 1) ) THEN666 IF( wrk_in_use(2, 14,15,16,17,18,19, & 667 20,21,22,23,24,25,26,27,28,29, & 668 30,31,32) .OR. & 669 iwrk_in_use(2, 1) ) THEN 669 670 CALL ctl_stop('TURB_CORE_1Z: requested workspace arrays unavailable') ; RETURN 670 671 ENDIF … … 797 798 !! * Start 798 799 799 IF( wrk_in_use(2, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21) .OR. & 800 iwrk_in_use(2, 1) )THEN 801 CALL ctl_stop('TURB_CORE_2Z: requested workspace arrays unavailable.') 802 RETURN 800 IF( wrk_in_use(2, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21) .OR. & 801 iwrk_in_use(2, 1) ) THEN 802 CALL ctl_stop('TURB_CORE_2Z: requested workspace arrays unavailable') ; RETURN 803 803 END IF 804 804 … … 876 876 END DO 877 877 !! 878 IF( wrk_not_released(2, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21) .OR. & 879 iwrk_not_released(2, 1) )THEN 880 CALL ctl_stop('TURB_CORE_2Z: requested workspace arrays unavailable.') 881 END IF 878 IF( wrk_not_released(2, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21) .OR. & 879 iwrk_not_released(2, 1) ) CALL ctl_stop('TURB_CORE_2Z: requested workspace arrays unavailable') 882 880 ! 883 881 END SUBROUTINE TURB_CORE_2Z … … 897 895 !------------------------------------------------------------------------------- 898 896 899 IF(wrk_in_use(2, 33,34,35))THEN 900 CALL ctl_stop('psi_m: requested workspace arrays unavailable.') 901 RETURN 902 END IF 897 IF( wrk_in_use(2, 33,34,35) ) THEN 898 CALL ctl_stop('psi_m: requested workspace arrays unavailable') ; RETURN 899 ENDIF 903 900 904 901 X2 = sqrt(abs(1. - 16.*zta)) ; X2 = max(X2 , 1.0) ; X = sqrt(X2) 905 902 stabit = 0.5 + sign(0.5,zta) 906 psi_m = -5.*zta*stabit & ! Stable 907 & + (1. - stabit)*(2*log((1. + X)/2) + log((1. + X2)/2) - 2*atan(X) + pi/2) ! Unstable 908 909 IF( wrk_not_released(2, 33,34,35) ) THEN 910 CALL ctl_stop('psi_m: failed to release workspace arrays.') 911 RETURN 912 END IF 913 903 psi_m = -5.*zta*stabit & ! Stable 904 & + (1. - stabit)*(2*log((1. + X)/2) + log((1. + X2)/2) - 2*atan(X) + pi/2) ! Unstable 905 906 IF( wrk_not_released(2, 33,34,35) ) CALL ctl_stop('psi_m: failed to release workspace arrays') 907 ! 914 908 END FUNCTION psi_m 915 909 916 910 917 FUNCTION psi_h( zta) !! Psis, L & Y eq. (8c), (8d), (8e)911 FUNCTION psi_h( zta ) !! Psis, L & Y eq. (8c), (8d), (8e) 918 912 !------------------------------------------------------------------------------- 919 913 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released … … 921 915 USE wrk_nemo, ONLY: X => wrk_2d_34 922 916 USE wrk_nemo, ONLY: stabit => wrk_2d_35 923 ! !924 REAL(wp), DIMENSION(jpi,jpj), INTENT(in) :: zta925 926 REAL(wp), DIMENSION(jpi,jpj) :: psi_h917 ! 918 REAL(wp), DIMENSION(jpi,jpj), INTENT(in) :: zta 919 ! 920 REAL(wp), DIMENSION(jpi,jpj) :: psi_h 927 921 !------------------------------------------------------------------------------- 928 922 … … 934 928 stabit = 0.5 + sign(0.5,zta) 935 929 psi_h = -5.*zta*stabit & ! Stable 936 &+ (1. - stabit)*(2.*log( (1. + X2)/2. )) ! Unstable937 938 IF( wrk_not_released(2, 33,34,35) ) CALL ctl_stop('psi_h: failed to release workspace arrays .')930 & + (1. - stabit)*(2.*log( (1. + X2)/2. )) ! Unstable 931 932 IF( wrk_not_released(2, 33,34,35) ) CALL ctl_stop('psi_h: failed to release workspace arrays') 939 933 ! 940 934 END FUNCTION psi_h
Note: See TracChangeset
for help on using the changeset viewer.