- Timestamp:
- 2011-06-27T13:18:25+02:00 (13 years ago)
- Location:
- branches/2011/dev_r2787_LOCEAN3_TRA_TRP/NEMOGCM/NEMO/OPA_SRC/TRA
- Files:
-
- 1 deleted
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_r2787_LOCEAN3_TRA_TRP/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_cen2.F90
r2715 r2789 111 111 !!---------------------------------------------------------------------- 112 112 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 113 USE oce , ONLY: zwx => ua , zwy => va! (ua,va) used as 3D workspace114 USE wrk_nemo, ONLY: zwz => wrk_3d_1 , zind => wrk_3d_2! 3D workspace115 USE wrk_nemo, ONLY: ztfreez => wrk_2d_1 ! 2D -113 USE oce , ONLY: zwx => ua , zwy => va ! (ua,va) used as 3D workspace 114 USE wrk_nemo, ONLY: zwz => wrk_3d_12 , zind => wrk_3d_13 ! 3D workspace 115 USE wrk_nemo, ONLY: ztfreez => wrk_2d_1 ! 2D - 116 116 ! 117 117 INTEGER , INTENT(in ) :: kt ! ocean time-step index … … 131 131 !!---------------------------------------------------------------------- 132 132 133 IF( wrk_in_use(2, 1) .OR. wrk_in_use(3, 1 ,2) ) THEN133 IF( wrk_in_use(2, 1) .OR. wrk_in_use(3, 12,13) ) THEN 134 134 CALL ctl_stop('tra_adv_cen2: requested workspace arrays unavailable') ; RETURN 135 135 ENDIF … … 276 276 ! 277 277 IF( wrk_not_released(2, 1) .OR. & 278 wrk_not_released(3, 1 ,2) ) CALL ctl_stop('tra_adv_cen2: failed to release workspace arrays')278 wrk_not_released(3, 12,13) ) CALL ctl_stop('tra_adv_cen2: failed to release workspace arrays') 279 279 ! 280 280 END SUBROUTINE tra_adv_cen2 -
branches/2011/dev_r2787_LOCEAN3_TRA_TRP/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl.F90
r2715 r2789 63 63 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 64 64 USE oce , ONLY: zwx => ua , zwy => va ! (ua,va) used as workspace 65 USE wrk_nemo, ONLY: zslpx => wrk_3d_1 , zslpy => wrk_3d_2 ! 3D workspace65 USE wrk_nemo, ONLY: zslpx => wrk_3d_11 , zslpy => wrk_3d_12 ! 3D workspace 66 66 ! 67 67 INTEGER , INTENT(in ) :: kt ! ocean time-step index … … 79 79 !!---------------------------------------------------------------------- 80 80 81 IF( wrk_in_use(3, 1 ,2) ) THEN81 IF( wrk_in_use(3, 11,12) ) THEN 82 82 CALL ctl_stop('tra_adv_muscl: requested workspace arrays unavailable') ; RETURN 83 83 ENDIF … … 252 252 ENDDO 253 253 ! 254 IF( wrk_not_released(3, 1 ,2) ) CALL ctl_stop('tra_adv_muscl: requested workspace arrays unavailable')254 IF( wrk_not_released(3, 11,12) ) CALL ctl_stop('tra_adv_muscl: requested workspace arrays unavailable') 255 255 ! 256 256 END SUBROUTINE tra_adv_muscl -
branches/2011/dev_r2787_LOCEAN3_TRA_TRP/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl2.F90
r2715 r2789 61 61 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 62 62 USE oce , ONLY: zwx => ua , zwy => va ! (ua,va) used as 3D workspace 63 USE wrk_nemo, ONLY: zslpx => wrk_3d_1 , zslpy => wrk_3d_2 ! 3D workspace63 USE wrk_nemo, ONLY: zslpx => wrk_3d_11, zslpy => wrk_3d_12 ! 3D workspace 64 64 !! 65 65 INTEGER , INTENT(in ) :: kt ! ocean time-step index … … 77 77 !!---------------------------------------------------------------------- 78 78 79 IF( wrk_in_use(3, 1 ,2) ) THEN79 IF( wrk_in_use(3, 11,12) ) THEN 80 80 CALL ctl_stop('tra_adv_muscl2: requested workspace arrays are unavailable') ; RETURN 81 81 ENDIF … … 285 285 END DO 286 286 ! 287 IF( wrk_not_released(3, 1 ,2) ) CALL ctl_stop('tra_adv_muscl2: failed to release workspace arrays')287 IF( wrk_not_released(3, 11,12) ) CALL ctl_stop('tra_adv_muscl2: failed to release workspace arrays') 288 288 ! 289 289 END SUBROUTINE tra_adv_muscl2 -
branches/2011/dev_r2787_LOCEAN3_TRA_TRP/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90
r2715 r2789 117 117 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 118 118 USE oce , ONLY: zwx => ua ! ua used as workspace 119 USE wrk_nemo, ONLY: zfu => wrk_3d_1 , zfc => wrk_3d_2, zfd => wrk_3d_3 ! 3D workspace119 USE wrk_nemo, ONLY: zfu => wrk_3d_11 , zfc => wrk_3d_12, zfd => wrk_3d_13 ! 3D workspace 120 120 ! 121 121 INTEGER , INTENT(in ) :: kt ! ocean time-step index … … 131 131 !---------------------------------------------------------------------- 132 132 ! 133 IF( wrk_in_use(3, 1 ,2,3) ) THEN133 IF( wrk_in_use(3, 11,12,13) ) THEN 134 134 CALL ctl_stop('tra_adv_qck_i: requested workspace arrays unavailable') ; RETURN 135 135 ENDIF … … 228 228 END DO 229 229 ! 230 IF( wrk_not_released(3, 1 ,2,3) ) CALL ctl_stop('tra_adv_qck_i: failed to release workspace arrays')230 IF( wrk_not_released(3, 11,12,13) ) CALL ctl_stop('tra_adv_qck_i: failed to release workspace arrays') 231 231 ! 232 232 END SUBROUTINE tra_adv_qck_i … … 240 240 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 241 241 USE oce , ONLY: zwy => ua ! ua used as workspace 242 USE wrk_nemo, ONLY: zfu => wrk_3d_1 , zfc => wrk_3d_2, zfd => wrk_3d_3 ! 3D workspace242 USE wrk_nemo, ONLY: zfu => wrk_3d_11 , zfc => wrk_3d_12, zfd => wrk_3d_13 ! 3D workspace 243 243 ! 244 244 INTEGER , INTENT(in ) :: kt ! ocean time-step index … … 254 254 !---------------------------------------------------------------------- 255 255 ! 256 IF(wrk_in_use(3, 1 ,2,3))THEN256 IF(wrk_in_use(3, 11,12,13))THEN 257 257 CALL ctl_stop('tra_adv_qck_j: ERROR: requested workspace arrays unavailable') 258 258 RETURN … … 359 359 END DO 360 360 ! 361 IF( wrk_not_released(3, 1 ,2,3) ) CALL ctl_stop('tra_adv_qck_j: failed to release workspace arrays')361 IF( wrk_not_released(3, 11,12,13) ) CALL ctl_stop('tra_adv_qck_j: failed to release workspace arrays') 362 362 ! 363 363 END SUBROUTINE tra_adv_qck_j -
branches/2011/dev_r2787_LOCEAN3_TRA_TRP/NEMOGCM/NEMO/OPA_SRC/TRA/tradmp.F90
r2715 r2789 14 14 !! 3.2 ! 2009-08 (G. Madec, C. Talandier) DOCTOR norm for namelist parameter 15 15 !! 3.3 ! 2010-06 (C. Ethe, G. Madec) merge TRA-TRC 16 !! 3.4 ! 2011-04 (G. Madec, C. Ethe) Merge of dtatem and dtasal + suppression of CPP keys 16 17 !!---------------------------------------------------------------------- 17 #if defined key_tradmp || defined key_esopa 18 !!---------------------------------------------------------------------- 19 !! 'key_tradmp' internal damping 18 20 19 !!---------------------------------------------------------------------- 21 20 !! tra_dmp_alloc : allocate tradmp arrays … … 32 31 USE zdf_oce ! ocean: vertical physics 33 32 USE phycst ! physical constants 34 USE dtatem ! data: temperature 35 USE dtasal ! data: salinity 33 USE dtatsd ! data: temperature & salinity 36 34 USE zdfmxl ! vertical physics: mixed layer depth 37 35 USE in_out_manager ! I/O manager … … 47 45 PUBLIC dtacof_zoom ! routine called by in both tradmp.F90 and trcdmp.F90 48 46 49 #if ! defined key_agrif 50 LOGICAL, PUBLIC, PARAMETER :: lk_tradmp = .TRUE. !: internal damping flag 51 #else 52 LOGICAL, PUBLIC :: lk_tradmp = .TRUE. !: internal damping flag 53 #endif 47 ! !!* Namelist namtra_dmp : T & S newtonian damping * 48 LOGICAL, PUBLIC :: ln_tradmp = .TRUE. !: internal damping flag 49 INTEGER :: nn_hdmp = -1 ! = 0/-1/'latitude' for damping over T and S 50 INTEGER :: nn_zdmp = 0 ! = 0/1/2 flag for damping in the mixed layer 51 REAL(wp) :: rn_surf = 50._wp ! surface time scale for internal damping [days] 52 REAL(wp) :: rn_bot = 360._wp ! bottom time scale for internal damping [days] 53 REAL(wp) :: rn_dep = 800._wp ! depth of transition between rn_surf and rn_bot [meters] 54 INTEGER :: nn_file = 2 ! = 1 create a damping.coeff NetCDF file 55 54 56 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: strdmp !: damping salinity trend (psu/s) 55 57 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ttrdmp !: damping temperature trend (Celcius/s) 56 58 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: resto !: restoring coeff. on T and S (s-1) 57 58 ! !!* Namelist namtra_dmp : T & S newtonian damping *59 INTEGER :: nn_hdmp = -1 ! = 0/-1/'latitude' for damping over T and S60 INTEGER :: nn_zdmp = 0 ! = 0/1/2 flag for damping in the mixed layer61 REAL(wp) :: rn_surf = 50._wp ! surface time scale for internal damping [days]62 REAL(wp) :: rn_bot = 360._wp ! bottom time scale for internal damping [days]63 REAL(wp) :: rn_dep = 800._wp ! depth of transition between rn_surf and rn_bot [meters]64 INTEGER :: nn_file = 2 ! = 1 create a damping.coeff NetCDF file65 59 66 60 !! * Substitutions … … 76 70 INTEGER FUNCTION tra_dmp_alloc() 77 71 !!---------------------------------------------------------------------- 78 !! *** FUNCTION tra_ bbl_alloc ***79 !!---------------------------------------------------------------------- 80 ALLOCATE( strdmp(jpi,jpj,jpk) , ttrdmp(jpi,jpj,jpk) 72 !! *** FUNCTION tra_dmp_alloc *** 73 !!---------------------------------------------------------------------- 74 ALLOCATE( strdmp(jpi,jpj,jpk) , ttrdmp(jpi,jpj,jpk), resto(jpi,jpj,jpk), STAT= tra_dmp_alloc ) 81 75 ! 82 76 IF( lk_mpp ) CALL mpp_sum ( tra_dmp_alloc ) 83 77 IF( tra_dmp_alloc > 0 ) CALL ctl_warn('tra_dmp_alloc: allocation of arrays failed') 78 ! 84 79 END FUNCTION tra_dmp_alloc 85 80 … … 103 98 !! ** Action : - (ta,sa) tracer trends updated with the damping trend 104 99 !!---------------------------------------------------------------------- 100 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 101 USE wrk_nemo, ONLY: zts_dta => wrk_4d_2 ! 4D workspace 102 ! 105 103 INTEGER, INTENT(in) :: kt ! ocean time-step index 106 104 !! 107 105 INTEGER :: ji, jj, jk ! dummy loop indices 108 REAL(wp) :: zta, zsa ! local scalars 109 !!---------------------------------------------------------------------- 106 REAL(wp) :: zta, zsa ! local scalars 107 !!---------------------------------------------------------------------- 108 ! 109 IF( wrk_in_use(4, 2) ) THEN 110 CALL ctl_stop('tra_dmp: requested workspace arrays unavailable') ; RETURN 111 ENDIF 112 ! !== input T-S data at kt ==! 113 CALL dta_tsd( kt, zts_dta ) ! read and interpolates T-S data at kt 110 114 ! 111 115 SELECT CASE ( nn_zdmp ) !== type of damping ==! … … 115 119 DO jj = 2, jpjm1 116 120 DO ji = fs_2, fs_jpim1 ! vector opt. 117 zta = resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tsb(ji,jj,jk,jp_tem) )118 zsa = resto(ji,jj,jk) * ( s_dta(ji,jj,jk) - tsb(ji,jj,jk,jp_sal) )121 zta = resto(ji,jj,jk) * ( zts_dta(ji,jj,jk,jp_tem) - tsb(ji,jj,jk,jp_tem) ) 122 zsa = resto(ji,jj,jk) * ( zts_dta(ji,jj,jk,jp_sal) - tsb(ji,jj,jk,jp_sal) ) 119 123 tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) + zta 120 124 tsa(ji,jj,jk,jp_sal) = tsa(ji,jj,jk,jp_sal) + zsa 121 strdmp(ji,jj,jk) = zsa ! save the salinitytrend (used in asmtrj)122 ttrdmp(ji,jj,jk) = zta 125 strdmp(ji,jj,jk) = zsa ! save the trend (used in asmtrj) 126 ttrdmp(ji,jj,jk) = zta 123 127 END DO 124 128 END DO … … 130 134 DO ji = fs_2, fs_jpim1 ! vector opt. 131 135 IF( avt(ji,jj,jk) <= 5.e-4_wp ) THEN 132 zta = resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tsb(ji,jj,jk,jp_tem) )133 zsa = resto(ji,jj,jk) * ( s_dta(ji,jj,jk) - tsb(ji,jj,jk,jp_sal) )136 zta = resto(ji,jj,jk) * ( zts_dta(ji,jj,jk,jp_tem) - tsb(ji,jj,jk,jp_tem) ) 137 zsa = resto(ji,jj,jk) * ( zts_dta(ji,jj,jk,jp_sal) - tsb(ji,jj,jk,jp_sal) ) 134 138 ELSE 135 139 zta = 0._wp … … 149 153 DO ji = fs_2, fs_jpim1 ! vector opt. 150 154 IF( fsdept(ji,jj,jk) >= hmlp (ji,jj) ) THEN 151 zta = resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tsb(ji,jj,jk,jp_tem) )152 zsa = resto(ji,jj,jk) * ( s_dta(ji,jj,jk) - tsb(ji,jj,jk,jp_sal) )155 zta = resto(ji,jj,jk) * ( zts_dta(ji,jj,jk,jp_tem) - tsb(ji,jj,jk,jp_tem) ) 156 zsa = resto(ji,jj,jk) * ( zts_dta(ji,jj,jk,jp_sal) - tsb(ji,jj,jk,jp_sal) ) 153 157 ELSE 154 158 zta = 0._wp … … 173 177 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 174 178 ! 179 IF( wrk_not_released(4, 2) ) CALL ctl_stop('tra_dmp: failed to release workspace arrays') 180 ! 175 181 END SUBROUTINE tra_dmp 176 182 … … 184 190 !! ** Method : read the nammbf namelist and check the parameters 185 191 !!---------------------------------------------------------------------- 186 NAMELIST/namtra_dmp/ nn_hdmp, nn_zdmp, rn_surf, rn_bot, rn_dep, nn_file192 NAMELIST/namtra_dmp/ ln_tradmp, nn_hdmp, nn_zdmp, rn_surf, rn_bot, rn_dep, nn_file 187 193 !!---------------------------------------------------------------------- 188 194 … … 194 200 IF(lwp) THEN ! Namelist print 195 201 WRITE(numout,*) 196 WRITE(numout,*) 'tra_dmp : T and S newtonian damping'202 WRITE(numout,*) 'tra_dmp_init : T and S newtonian damping' 197 203 WRITE(numout,*) '~~~~~~~' 198 204 WRITE(numout,*) ' Namelist namtra_dmp : set damping parameter' 199 WRITE(numout,*) ' T and S damping option nn_hdmp = ', nn_hdmp 200 WRITE(numout,*) ' mixed layer damping option nn_zdmp = ', nn_zdmp, '(zoom: forced to 0)' 201 WRITE(numout,*) ' surface time scale (days) rn_surf = ', rn_surf 202 WRITE(numout,*) ' bottom time scale (days) rn_bot = ', rn_bot 203 WRITE(numout,*) ' depth of transition (meters) rn_dep = ', rn_dep 204 WRITE(numout,*) ' create a damping.coeff file nn_file = ', nn_file 205 ENDIF 206 207 ! ! allocate tradmp arrays 208 IF( tra_dmp_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'tra_dmp_init: unable to allocate arrays' ) 209 210 SELECT CASE ( nn_hdmp ) 211 CASE ( -1 ) ; IF(lwp) WRITE(numout,*) ' tracer damping in the Med & Red seas only' 212 CASE ( 1:90 ) ; IF(lwp) WRITE(numout,*) ' tracer damping poleward of', nn_hdmp, ' degrees' 213 CASE DEFAULT 214 WRITE(ctmp1,*) ' bad flag value for nn_hdmp = ', nn_hdmp 215 CALL ctl_stop(ctmp1) 216 END SELECT 217 218 SELECT CASE ( nn_zdmp ) 219 CASE ( 0 ) ; IF(lwp) WRITE(numout,*) ' tracer damping throughout the water column' 220 CASE ( 1 ) ; IF(lwp) WRITE(numout,*) ' no tracer damping in the turbocline (avt > 5 cm2/s)' 221 CASE ( 2 ) ; IF(lwp) WRITE(numout,*) ' no tracer damping in the mixed layer' 222 CASE DEFAULT 223 WRITE(ctmp1,*) 'bad flag value for nn_zdmp = ', nn_zdmp 224 CALL ctl_stop(ctmp1) 225 END SELECT 226 227 IF( .NOT.lk_dtasal .OR. .NOT.lk_dtatem ) & 228 & CALL ctl_stop( 'no temperature and/or salinity data define key_dtatem and key_dtasal' ) 229 230 strdmp(:,:,:) = 0._wp ! internal damping salinity trend (used in asmtrj) 231 ttrdmp(:,:,:) = 0._wp 232 ! ! Damping coefficients initialization 233 IF( lzoom ) THEN ; CALL dtacof_zoom( resto ) 234 ELSE ; CALL dtacof( nn_hdmp, rn_surf, rn_bot, rn_dep, & 235 & nn_file, 'TRA' , resto ) 205 WRITE(numout,*) ' add a damping termn or not ln_tradmp = ', ln_tradmp 206 WRITE(numout,*) ' T and S damping option nn_hdmp = ', nn_hdmp 207 WRITE(numout,*) ' mixed layer damping option nn_zdmp = ', nn_zdmp, '(zoom: forced to 0)' 208 WRITE(numout,*) ' surface time scale (days) rn_surf = ', rn_surf 209 WRITE(numout,*) ' bottom time scale (days) rn_bot = ', rn_bot 210 WRITE(numout,*) ' depth of transition (meters) rn_dep = ', rn_dep 211 WRITE(numout,*) ' create a damping.coeff file nn_file = ', nn_file 212 WRITE(numout,*) 213 ENDIF 214 215 IF( ln_tradmp ) THEN ! initialization for T-S damping 216 ! 217 IF( tra_dmp_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'tra_dmp_init: unable to allocate arrays' ) 218 ! 219 SELECT CASE ( nn_hdmp ) 220 CASE ( -1 ) ; IF(lwp) WRITE(numout,*) ' tracer damping in the Med & Red seas only' 221 CASE ( 1:90 ) ; IF(lwp) WRITE(numout,*) ' tracer damping poleward of', nn_hdmp, ' degrees' 222 CASE DEFAULT 223 WRITE(ctmp1,*) ' bad flag value for nn_hdmp = ', nn_hdmp 224 CALL ctl_stop(ctmp1) 225 END SELECT 226 ! 227 SELECT CASE ( nn_zdmp ) 228 CASE ( 0 ) ; IF(lwp) WRITE(numout,*) ' tracer damping throughout the water column' 229 CASE ( 1 ) ; IF(lwp) WRITE(numout,*) ' no tracer damping in the turbocline (avt > 5 cm2/s)' 230 CASE ( 2 ) ; IF(lwp) WRITE(numout,*) ' no tracer damping in the mixed layer' 231 CASE DEFAULT 232 WRITE(ctmp1,*) 'bad flag value for nn_zdmp = ', nn_zdmp 233 CALL ctl_stop(ctmp1) 234 END SELECT 235 ! 236 IF( .NOT.ln_tsd_tradmp ) THEN 237 CALL ctl_warn( 'tra_dmp_init: read T-S data not initialized, we force ln_tsd_tradmp=T' ) 238 CALL dta_tsd_init( ld_tradmp=ln_tradmp ) ! forces the initialisation of T-S data 239 ENDIF 240 ! 241 strdmp(:,:,:) = 0._wp ! internal damping salinity trend (used in asmtrj) 242 ttrdmp(:,:,:) = 0._wp 243 ! ! Damping coefficients initialization 244 IF( lzoom ) THEN ; CALL dtacof_zoom( resto ) 245 ELSE ; CALL dtacof( nn_hdmp, rn_surf, rn_bot, rn_dep, nn_file, 'TRA', resto ) 246 ENDIF 247 ! 236 248 ENDIF 237 249 ! … … 347 359 !!---------------------------------------------------------------------- 348 360 349 IF( wrk_in_use(1, 1) .OR. & 350 wrk_in_use(2, 1) .OR. & 351 wrk_in_use(3, 1) ) THEN 361 IF( wrk_in_use(1, 1) .OR. wrk_in_use(2, 1) .OR. wrk_in_use(3, 1) ) THEN 352 362 CALL ctl_stop('dtacof: requested workspace arrays unavailable') ; RETURN 353 363 ENDIF … … 529 539 ELSE ! No damping ! 530 540 ! !--------------------! 531 CALL ctl_stop( 'Choose a correct value of nn_hdmp or DO NOT defined key_tradmp' )541 CALL ctl_stop( 'Choose a correct value of nn_hdmp or put ln_tradmp to FALSE' ) 532 542 ENDIF 533 543 … … 544 554 ENDIF 545 555 ! 546 IF( wrk_not_released(1, 1) .OR. & 547 wrk_not_released(2, 1) .OR. & 548 wrk_not_released(3, 1) ) CALL ctl_stop('dtacof: failed to release workspace arrays') 556 IF( wrk_not_released(1, 1) .OR. wrk_not_released(2, 1) .OR. wrk_not_released(3, 1) ) & 557 & CALL ctl_stop('dtacof: failed to release workspace arrays') 549 558 ! 550 559 END SUBROUTINE dtacof … … 572 581 !!---------------------------------------------------------------------- 573 582 USE ioipsl ! IOipsl librairy 574 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 575 USE wrk_nemo, ONLY: zxt => wrk_2d_1 , zyt => wrk_2d_2 , zzt => wrk_2d_3, zmask => wrk_2d_4 583 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 584 USE wrk_nemo, ONLY: zxt => wrk_2d_1, zyt => wrk_2d_2 585 USE wrk_nemo, ONLY: zzt => wrk_2d_3, zmask => wrk_2d_4 576 586 !! 577 587 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT( out ) :: pdct ! distance to the coastline … … 585 595 !!---------------------------------------------------------------------- 586 596 587 IF( wrk_in_use(2, 1,2,3,4) .OR. & 588 wrk_in_use(1, 1,2,3,4) ) THEN 597 IF( wrk_in_use(2, 1,2,3,4) ) THEN 589 598 CALL ctl_stop('cofdis: requested workspace arrays unavailable') ; RETURN 590 599 ENDIF … … 745 754 CALL restclo( icot ) 746 755 ! 747 IF( wrk_not_released(2, 1,2,3,4) .OR. & 748 wrk_not_released(1, 1,2,3,4) ) CALL ctl_stop('cofdis: failed to release workspace arrays') 749 DEALLOCATE( llcotu , llcotv , llcotf , & 750 & zxc , zyc , zzc , zdis ) 756 IF( wrk_not_released(2, 1,2,3,4) ) CALL ctl_stop('cofdis: failed to release workspace arrays') 757 DEALLOCATE( llcotu, llcotv, llcotf, zyc, zzc, zdis ) 751 758 ! 752 759 END SUBROUTINE cofdis 753 754 #else755 !!----------------------------------------------------------------------756 !! Default key NO internal damping757 !!----------------------------------------------------------------------758 LOGICAL , PUBLIC, PARAMETER :: lk_tradmp = .FALSE. !: internal damping flag759 CONTAINS760 SUBROUTINE tra_dmp( kt ) ! Empty routine761 WRITE(*,*) 'tra_dmp: You should not have seen this print! error?', kt762 END SUBROUTINE tra_dmp763 SUBROUTINE tra_dmp_init ! Empty routine764 END SUBROUTINE tra_dmp_init765 #endif766 767 760 !!====================================================================== 768 761 END MODULE tradmp -
branches/2011/dev_r2787_LOCEAN3_TRA_TRP/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90
r2715 r2789 42 42 USE prtctl ! Print control 43 43 USE traqsr ! penetrative solar radiation (needed for nksr) 44 USE traswp ! swap array45 44 USE obc_oce 46 45 #if defined key_agrif … … 111 110 CALL lbc_lnk( tsa(:,:,:,jp_sal), 'T', 1. ) 112 111 ! 113 #if defined key_obc || defined key_bdy || defined key_agrif114 CALL tra_unswap115 #endif116 117 112 #if defined key_obc 118 113 IF( lk_obc ) CALL obc_tra( kt ) ! OBC open boundaries … … 123 118 #if defined key_agrif 124 119 CALL Agrif_tra ! AGRIF zoom boundaries 125 #endif126 127 #if defined key_obc || defined key_bdy || defined key_agrif128 CALL tra_swap129 120 #endif 130 121 … … 155 146 #if defined key_agrif 156 147 ! Update tracer at AGRIF zoom boundaries 157 CALL tra_unswap158 148 IF( .NOT.Agrif_Root() ) CALL Agrif_Update_Tra( kt ) ! children only 159 CALL tra_swap160 149 #endif 161 150 !
Note: See TracChangeset
for help on using the changeset viewer.