Changeset 7545
- Timestamp:
- 2017-01-11T12:27:34+01:00 (7 years ago)
- Location:
- branches/UKMO/MEDUSA_optim_MG_MS_RH/NEMOGCM/NEMO
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/MEDUSA_optim_MG_MS_RH/NEMOGCM/NEMO/OPA_SRC/SBC/fldread.F90
r5733 r7545 93 93 ! ! =-1 not cyclic 94 94 LOGICAL :: cyclic ! east-west cyclic or not 95 INTEGER, DIMENSION(:,:,:), POINTER:: data_jpi ! array of source integers96 INTEGER, DIMENSION(:,:,:), POINTER:: data_jpj ! array of source integers97 REAL(wp), DIMENSION(:,:,:), POINTER:: data_wgt ! array of weights on model grid98 REAL(wp), DIMENSION(:,:,:), POINTER:: fly_dta ! array of values on input grid99 REAL(wp), DIMENSION(:,:,:), POINTER:: col ! temporary array for reading in columns95 INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: data_jpi ! array of source integers 96 INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: data_jpj ! array of source integers 97 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: data_wgt ! array of weights on model grid 98 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: fly_dta ! array of values on input grid 99 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: col ! temporary array for reading in columns 100 100 END TYPE WGT 101 101 … … 688 688 REAL(wp), POINTER, DIMENSION(:,:,:) :: dta_read ! work space for global data 689 689 !!--------------------------------------------------------------------- 690 690 691 691 ipi = SIZE( dta, 1 ) 692 692 ipj = 1 … … 745 745 INTEGER :: ill ! character length 746 746 INTEGER :: iv ! indice of V component 747 REAL(wp), POINTER, DIMENSION(:,:) :: utmp, vtmp ! temporary arrays for vector rotation747 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: utmp, vtmp ! temporary arrays for vector rotation 748 748 CHARACTER (LEN=100) :: clcomp ! dummy weight name 749 749 !!--------------------------------------------------------------------- 750 750 751 CALL wrk_alloc( jpi,jpj, utmp, vtmp ) 751 ALLOCATE( utmp (1:jpi, 1:jpj) ) 752 ALLOCATE( vtmp (1:jpi, 1:jpj) ) 752 753 753 754 !! (sga: following code should be modified so that pairs arent searched for each time … … 786 787 END DO 787 788 ! 788 CALL wrk_dealloc( jpi,jpj, utmp, vtmp)789 DEALLOCATE (utmp, vtmp) 789 790 ! 790 791 END SUBROUTINE fld_rot … … 935 936 END DO 936 937 ENDIF 937 938 938 939 END SUBROUTINE fld_fill 939 940 … … 1005 1006 WRITE(numout,*) ' not cyclical' 1006 1007 ENDIF 1007 IF( A SSOCIATED(ref_wgts(kw)%data_wgt) ) WRITE(numout,*) ' allocated'1008 IF( ALLOCATED(ref_wgts(kw)%data_wgt) ) WRITE(numout,*) ' allocated' 1008 1009 END DO 1009 1010 ! … … 1026 1027 CHARACTER (len=5) :: aname 1027 1028 INTEGER , DIMENSION(:), ALLOCATABLE :: ddims 1028 INTEGER , POINTER, DIMENSION(:,:) :: data_src1029 REAL(wp), POINTER, DIMENSION(:,:) :: data_tmp1029 INTEGER , ALLOCATABLE, DIMENSION(:,:) :: data_src 1030 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: data_tmp 1030 1031 LOGICAL :: cyclical 1031 1032 INTEGER :: zwrap ! local integer 1032 1033 !!---------------------------------------------------------------------- 1033 1034 ! 1034 CALL wrk_alloc( jpi,jpj, data_src ) ! integer 1035 CALL wrk_alloc( jpi,jpj, data_tmp ) 1035 ALLOCATE(data_src(1:jpi, 1:jpj)) 1036 ALLOCATE(data_tmp(1:jpi, 1:jpj)) 1037 1036 1038 ! 1037 1039 IF( nxt_wgt > tot_wgts ) THEN … … 1152 1154 DEALLOCATE (ddims ) 1153 1155 1154 CALL wrk_dealloc( jpi,jpj,data_src ) ! integer1155 CALL wrk_dealloc( jpi,jpj,data_tmp )1156 DEALLOCATE( data_src ) ! integer 1157 DEALLOCATE( data_tmp ) 1156 1158 ! 1157 1159 END SUBROUTINE fld_weight … … 1294 1296 INTEGER :: jpi1_lsm,jpi2_lsm,jpj1_lsm,jpj2_lsm ! temporary indices 1295 1297 INTEGER :: itmpi,itmpj,itmpz ! lengths 1296 1298 1297 1299 !!---------------------------------------------------------------------- 1298 1300 ! -
branches/UKMO/MEDUSA_optim_MG_MS_RH/NEMOGCM/NEMO/OPA_SRC/SOL/solpcg.F90
r5735 r7545 93 93 REAL(wp) :: zgcad ! temporary scalars 94 94 REAL(wp), DIMENSION(2) :: zsum 95 REAL(wp), POINTER, DIMENSION(:,:) :: zgcr95 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zgcr 96 96 !!---------------------------------------------------------------------- 97 97 ! 98 98 IF( nn_timing == 1 ) CALL timing_start('sol_pcg') 99 99 ! 100 CALL wrk_alloc( jpi, jpj, zgcr)100 ALLOCATE( zgcr(jpi,jpj) ) 101 101 ! 102 102 ! Initialization of the algorithm with standard PCG … … 210 210 CALL lbc_lnk( gcx, c_solver_pt, 1. ) ! Output in gcx with lateral b.c. applied 211 211 ! 212 CALL wrk_dealloc( jpi, jpj,zgcr )212 DEALLOCATE ( zgcr ) 213 213 ! 214 214 IF( nn_timing == 1 ) CALL timing_stop('sol_pcg') -
branches/UKMO/MEDUSA_optim_MG_MS_RH/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90
r5733 r7545 78 78 ! 79 79 INTEGER :: jk ! dummy loop index 80 REAL(wp), POINTER, DIMENSION(:,:,:) :: zun, zvn, zwn 80 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zun, zvn, zwn 81 81 82 !!---------------------------------------------------------------------- 82 83 ! 83 84 IF( nn_timing == 1 ) CALL timing_start('tra_adv') 84 85 ! 85 CALL wrk_alloc( jpi, jpj, jpk, zun, zvn, zwn ) 86 87 ALLOCATE( zun(1:jpi, 1:jpj, 1:jpk) ) 88 ALLOCATE( zvn(1:jpi, 1:jpj, 1:jpk) ) 89 ALLOCATE( zwn(1:jpi, 1:jpj, 1:jpk) ) 90 86 91 ! ! set time step 87 92 IF( neuler == 0 .AND. kt == nit000 ) THEN ! at nit000 … … 108 113 zvn(:,:,jpk) = 0._wp ! no transport trough the bottom 109 114 zwn(:,:,jpk) = 0._wp ! no transport trough the bottom 115 110 116 ! 111 117 IF( lk_traldf_eiv .AND. .NOT. ln_traldf_grif ) & … … 155 161 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 156 162 ! 163 DEALLOCATE ( zun, zvn, zwn ) 157 164 IF( nn_timing == 1 ) CALL timing_stop( 'tra_adv' ) 158 165 ! 159 CALL wrk_dealloc( jpi, jpj, jpk, zun, zvn, zwn )160 166 ! 161 167 END SUBROUTINE tra_adv -
branches/UKMO/MEDUSA_optim_MG_MS_RH/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl.F90
r5735 r7545 82 82 REAL(wp) :: zv, z0v, zzwy, z0w ! - - 83 83 REAL(wp) :: ztra, zbtr, zdt, zalpha ! - - 84 REAL(wp), POINTER, DIMENSION(:,:,:) :: zslpx, zslpy ! 3D workspace 85 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwx , zwy ! - - 84 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zslpx, zslpy ! 3D workspace 85 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zwx , zwy ! - - 86 86 87 !!---------------------------------------------------------------------- 87 88 ! 88 89 IF( nn_timing == 1 ) CALL timing_start('tra_adv_muscl') 89 90 ! 90 CALL wrk_alloc( jpi, jpj, jpk, zslpx, zslpy, zwx, zwy ) 91 ALLOCATE( zslpx(1:jpi, 1:jpj, 1:jpk) ) 92 ALLOCATE( zslpy(1:jpi, 1:jpj, 1:jpk) ) 93 ALLOCATE( zwx (1:jpi, 1:jpj, 1:jpk) ) 94 ALLOCATE( zwy (1:jpi, 1:jpj, 1:jpk) ) 91 95 ! 92 96 IF( kt == kit000 ) THEN … … 291 295 END DO 292 296 ! 293 CALL wrk_dealloc( jpi, jpj, jpk, zslpx, zslpy, zwx, zwy ) 297 DEALLOCATE( zslpx ) 298 DEALLOCATE( zslpy ) 299 DEALLOCATE( zwx ) 300 DEALLOCATE( zwy ) 294 301 ! 295 302 IF( nn_timing == 1 ) CALL timing_stop('tra_adv_muscl') -
branches/UKMO/MEDUSA_optim_MG_MS_RH/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90
r5733 r7545 107 107 INTEGER, INTENT( in ) :: kt ! ocean time-step 108 108 ! 109 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdt, ztrds109 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrdt, ztrds 110 110 !!---------------------------------------------------------------------- 111 111 ! … … 113 113 ! 114 114 IF( l_trdtra ) THEN !* Save ta and sa trends 115 CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds ) 115 ALLOCATE( ztrdt (1:jpi, 1:jpj, 1:jpk)) 116 ALLOCATE( ztrds (1:jpi, 1:jpj, 1:jpk)) 116 117 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 117 118 ztrds(:,:,:) = tsa(:,:,:,jp_sal) … … 151 152 CALL trd_tra( kt, 'TRA', jp_tem, jptra_bbl, ztrdt ) 152 153 CALL trd_tra( kt, 'TRA', jp_sal, jptra_bbl, ztrds ) 153 CALL wrk_dealloc( jpi, jpj, jpk,ztrdt, ztrds )154 DEALLOCATE( ztrdt, ztrds ) 154 155 ENDIF 155 156 ! … … 187 188 INTEGER :: ik ! local integers 188 189 REAL(wp) :: zbtr ! local scalars 189 REAL(wp), POINTER, DIMENSION(:,:) :: zptb190 REAL(wp), ALLOCATABLE , DIMENSION(:,:) :: zptb 190 191 !!---------------------------------------------------------------------- 191 192 ! 192 193 IF( nn_timing == 1 ) CALL timing_start('tra_bbl_dif') 193 194 ! 194 CALL wrk_alloc( jpi, jpj, zptb)195 ALLOCATE(zptb(1:jpi, 1:jpj)) 195 196 ! 196 197 DO jn = 1, kjpt ! tracer loop … … 217 218 END DO ! end tracer 218 219 ! ! =========== 219 CALL wrk_dealloc( jpi, jpj,zptb )220 DEALLOCATE( zptb ) 220 221 ! 221 222 IF( nn_timing == 1 ) CALL timing_stop('tra_bbl_dif') -
branches/UKMO/MEDUSA_optim_MG_MS_RH/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90
r5733 r7545 108 108 REAL(wp) :: zmskv, zabe2, zcof2, zcoef4 ! - - 109 109 REAL(wp) :: zcoef0, zbtr, ztra ! - - 110 REAL(wp), POINTER, DIMENSION(:,: ) :: z2d111 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdkt, zdk1t, zdit, zdjt, ztfw110 REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: z2d 111 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zdkt, zdk1t, zdit, zdjt, ztfw 112 112 !!---------------------------------------------------------------------- 113 113 ! 114 114 IF( nn_timing == 1 ) CALL timing_start('tra_ldf_iso') 115 115 ! 116 CALL wrk_alloc( jpi, jpj, z2d ) 117 CALL wrk_alloc( jpi, jpj, jpk, zdit, zdjt, ztfw, zdkt, zdk1t ) 116 ALLOCATE( z2d (1:jpi, 1:jpj) ) 117 ALLOCATE( zdit (1:jpi, 1:jpj, 1:jpk) ) 118 ALLOCATE( zdjt (1:jpi, 1:jpj, 1:jpk) ) 119 ALLOCATE( ztfw (1:jpi, 1:jpj, 1:jpk) ) 120 ALLOCATE( zdkt (1:jpi, 1:jpj, 1:jpk) ) 121 ALLOCATE( zdk1t (1:jpi, 1:jpj, 1:jpk) ) 118 122 ! 119 123 … … 322 326 END DO 323 327 ! 324 CALL wrk_dealloc( jpi, jpj, z2d ) 325 CALL wrk_dealloc( jpi, jpj, jpk, zdit, zdjt, ztfw, zdkt, zdk1t ) 328 DEALLOCATE( z2d ) 329 DEALLOCATE( zdit ) 330 DEALLOCATE( zdjt ) 331 DEALLOCATE( ztfw ) 332 DEALLOCATE( zdkt ) 333 DEALLOCATE( zdk1t ) 334 ! 335 326 336 ! 327 337 IF( nn_timing == 1 ) CALL timing_stop('tra_ldf_iso') -
branches/UKMO/MEDUSA_optim_MG_MS_RH/NEMOGCM/NEMO/TOP_SRC/TRP/trcbbl.F90
r5729 r7545 53 53 INTEGER, INTENT( in ) :: kt ! ocean time-step 54 54 CHARACTER (len=22) :: charout 55 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztrtrd55 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: ztrtrd 56 56 !!---------------------------------------------------------------------- 57 57 ! … … 64 64 65 65 IF( l_trdtrc ) THEN 66 CALL wrk_alloc( jpi, jpj, jpk, jptra, ztrtrd ) ! temporary save of trends66 ALLOCATE( ztrtrd (1:jpi, 1:jpj, 1:jpk, 1:jptra) ) 67 67 ztrtrd(:,:,:,:) = tra(:,:,:,:) 68 68 ENDIF … … 95 95 CALL trd_tra( kt, 'TRC', jn, jptra_bbl, ztrtrd(:,:,:,jn) ) 96 96 END DO 97 CALL wrk_dealloc( jpi, jpj, jpk, jptra,ztrtrd ) ! temporary save of trends97 DEALLOCATE( ztrtrd ) ! temporary save of trends 98 98 ENDIF 99 99 ! -
branches/UKMO/MEDUSA_optim_MG_MS_RH/NEMOGCM/NEMO/TOP_SRC/TRP/trcldf.F90
r5729 r7545 58 58 INTEGER :: jn 59 59 CHARACTER (len=22) :: charout 60 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztrtrd60 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: ztrtrd 61 61 !!---------------------------------------------------------------------- 62 62 ! … … 68 68 69 69 IF( l_trdtrc ) THEN 70 CALL wrk_alloc( jpi, jpj, jpk, jptra, ztrtrd)70 ALLOCATE( ztrtrd(1:jpi, 1:jpj, 1:jpk, 1:jptra)) 71 71 ztrtrd(:,:,:,:) = tra(:,:,:,:) 72 72 ENDIF … … 107 107 CALL trd_tra( kt, 'TRC', jn, jptra_ldf, ztrtrd(:,:,:,jn) ) 108 108 END DO 109 CALL wrk_dealloc( jpi, jpj, jpk, jptra,ztrtrd )109 DEALLOCATE( ztrtrd ) 110 110 ENDIF 111 111 ! ! print mean trends (used for debugging)
Note: See TracChangeset
for help on using the changeset viewer.