Changeset 4579
- Timestamp:
- 2014-03-26T10:17:58+01:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_v3_4_STABLE_2012/NEMOGCM/NEMO/OPATAM_SRC/DYN/dynvor_tam.F90
r3627 r4579 40 40 USE dom_oce 41 41 USE dynadv 42 USE dynvor 42 43 USE lbclnk 43 44 USE lbclnk_tam … … 58 59 PUBLIC dyn_vor_adj ! routine called by step_tam.F90 59 60 PUBLIC dyn_vor_adj_tst ! routine called by the tst.F90 60 61 62 !!* Namelist nam_dynvor: vorticity term63 LOGICAL, PUBLIC :: ln_dynvor_ene = .FALSE. !: energy conserving scheme64 LOGICAL, PUBLIC :: ln_dynvor_ens = .TRUE. !: enstrophy conserving scheme65 LOGICAL, PUBLIC :: ln_dynvor_mix = .FALSE. !: mixed scheme66 LOGICAL, PUBLIC :: ln_dynvor_een = .FALSE. !: energy and enstrophy conserving scheme67 61 68 62 INTEGER :: nvor = 0 ! type of vorticity trend used … … 615 609 CALL wrk_alloc( jpi, jpj, zwxtl , zwytl , zwztl ) 616 610 CALL wrk_alloc( jpi, jpj, ztnwtl, ztnetl, ztswtl, ztsetl ) 611 617 612 zuatl = 0.0_wp ; zvatl = 0.0_wp 618 613 zwx (:,:) = 0.0_wp ; zwy (:,:) = 0.0_wp ; zwz (:,:) = 0.0_wp … … 621 616 ztnwtl(:,:) = 0.0_wp ; ztnetl(:,:) = 0.0_wp ; ztswtl(:,:) = 0.0_wp ; ztsetl(:,:) = 0.0_wp 622 617 #if defined key_vvl 623 CALL wrk_alloc( jpi, jpj, jpk, ze3f_tl)618 CALL ctl_stop( 'STOP', 'key_vvl not available for tam' ) 624 619 #endif 625 620 IF( kt == nit000 ) THEN … … 760 755 END DO ! End of slab 761 756 ! ! =============== 762 CALL wrk_dealloc( jpi, jpj, zwx , zwy , zwz )763 CALL wrk_dealloc( jpi, jpj, ztnw, ztne, ztsw, ztse )764 CALL wrk_dealloc( jpi, jpj, zwxtl , zwytl , zwztl )757 CALL wrk_dealloc( jpi, jpj, zwx , zwy , zwz ) 758 CALL wrk_dealloc( jpi, jpj, ztnw, ztne, ztsw, ztse ) 759 CALL wrk_dealloc( jpi, jpj, zwxtl , zwytl , zwztl ) 765 760 CALL wrk_dealloc( jpi, jpj, ztnwtl, ztnetl, ztswtl, ztsetl ) 766 761 #if defined key_vvl 767 CALL wrk_dealloc( jpi, jpj, jpk, ze3f_tl )762 CALL wrk_dealloc( jpi, jpj, jpk, ze3f_tl ) 768 763 #endif 764 IF ( kt == nitend .AND. .NOT. lk_vvl ) DEALLOCATE( ze3f_tl ) 769 765 ! 770 766 IF( nn_timing == 1 ) CALL timing_stop('vor_een_tan') … … 1048 1044 !! 1049 1045 INTEGER :: ji, jj, jk ! dummy loop indices 1046 INTEGER :: ierr 1050 1047 REAL(wp) :: zfac12 ! temporary scalars 1051 1048 REAL(wp) :: zuaad, zvaad ! temporary scalars … … 1054 1051 REAL(wp), POINTER, DIMENSION(:,:) :: zwxad, zwyad, zwzad ! temporary 2D workspace 1055 1052 REAL(wp), POINTER, DIMENSION(:,:) :: ztnwad, ztnead, ztswad, ztsead ! temporary 3D workspace 1053 #if defined key_vvl 1054 REAL(wp), POINTER, DIMENSION(:,:,:) :: ze3f_ad 1055 #else 1056 1056 REAL(wp), POINTER, DIMENSION(:,:,:), SAVE :: ze3f_ad 1057 #endif 1057 1058 !!---------------------------------------------------------------------- 1058 1059 ! … … 1063 1064 CALL wrk_alloc( jpi, jpj, zwxad , zwyad , zwzad ) 1064 1065 CALL wrk_alloc( jpi, jpj, ztnwad, ztnead, ztswad, ztsead ) 1065 CALL wrk_alloc( jpi, jpj, jpk, ze3f_ad ) 1066 1066 1067 ! local adjoint initailization 1067 1068 zuaad = 0.0_wp ; zvaad = 0.0_wp … … 1072 1073 ze3f_ad = 0._wp 1073 1074 1075 #if defined key_vvl 1076 CALL wrk_alloc( jpi, jpj, jpk, ze3f_ad ) 1077 #endif 1078 1074 1079 IF( kt == nitend ) THEN 1075 1080 IF(lwp) WRITE(numout,*) 1076 1081 IF(lwp) WRITE(numout,*) 'dyn:vor_een_adj : vorticity term: energy and enstrophy conserving scheme' 1077 1082 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 1083 IF( .NOT.lk_vvl ) THEN 1084 ALLOCATE( ze3f_ad(jpi,jpj,jpk) , STAT=ierr ) 1085 IF( lk_mpp ) CALL mpp_sum ( ierr ) 1086 IF( ierr /= 0 ) CALL ctl_stop( 'STOP', 'dyn:vor_een : unable to allocate arrays' ) 1087 ze3f_ad = 0._wp 1088 ENDIF 1078 1089 ENDIF 1079 1090 1080 IF( kt == nit 000) THEN ! reciprocal of e3 at F-point (masked averaging of e3t)1091 IF( kt == nitend .OR. lk_vvl ) THEN ! reciprocal of e3 at F-point (masked averaging of e3t) 1081 1092 DO jk = 1, jpk 1082 1093 DO jj = 1, jpjm1 … … 1272 1283 CALL wrk_dealloc( jpi, jpj, zwxad , zwyad , zwzad ) 1273 1284 CALL wrk_dealloc( jpi, jpj, ztnwad, ztnead, ztswad, ztsead ) 1274 CALL wrk_dealloc( jpi, jpj, jpk, ze3f_ad) 1275 ! 1285 1286 #if defined key_vvl 1287 CALL wrk_dealloc( jpi, jpj, jpk, ze3f ) 1288 #endif 1289 IF ( kt == nit000 .AND. .NOT. lk_vvl ) DEALLOCATE( ze3f ) 1290 1276 1291 IF( nn_timing == 1 ) CALL timing_stop('vor_een_adj') 1277 1292 !
Note: See TracChangeset
for help on using the changeset viewer.