Changeset 950
- Timestamp:
- 07/14/19 14:40:34 (5 years ago)
- Location:
- codes/icosagcm/devel/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/devel/src/base/field.f90
r883 r950 365 365 field_pt=>field%rval2d 366 366 IF(grid_type == grid_unst) THEN 367 PRINT *, 'getval_r2d for ' // TRIM(field%name) // ' : ', SHAPE(field_pt)367 ! PRINT *, 'getval_r2d for ' // TRIM(field%name) // ' : ', SHAPE(field_pt) 368 368 END IF 369 369 END SUBROUTINE getval_r2d … … 381 381 field_pt=>field%rval3d 382 382 IF(grid_type == grid_unst) THEN 383 PRINT *, 'getval_r3d for ' // TRIM(field%name) // ' : ', SHAPE(field_pt)383 ! PRINT *, 'getval_r3d for ' // TRIM(field%name) // ' : ', SHAPE(field_pt) 384 384 END IF 385 385 END SUBROUTINE getval_r3d … … 396 396 field_pt=>field%rval4d 397 397 IF(grid_type == grid_unst) THEN 398 PRINT *, 'getval_r4d for ' // TRIM(field%name) // ' : ', SHAPE(field_pt)398 ! PRINT *, 'getval_r4d for ' // TRIM(field%name) // ' : ', SHAPE(field_pt) 399 399 END IF 400 400 END SUBROUTINE getval_r4d -
codes/icosagcm/devel/src/dissip/dissip_gcm.f90
r925 r950 127 127 CALL dissip_profile 128 128 CALL dissip_timescale 129 ELSE ! FIXME unstructured 130 itau_dissip=1000000000 129 131 END IF 130 132 -
codes/icosagcm/devel/src/time/euler_scheme.f90
r885 r950 15 15 f_dW_slow(:,:), f_dW_fast(:,:) ! vertical momentum tendencies (NH) 16 16 17 INTEGER, PARAMETER, PUBLIC :: explicit=1, hevi=2, euler=1, rk4=2, mlf=3, rk25=4, ark23=6, ark33=7 17 INTEGER, PARAMETER, PUBLIC :: explicit=1, hevi=2, euler=1, rk4=2, mlf=3, rk25=4, ark23=6, ark33=7, ark11=8 18 18 19 19 INTEGER,SAVE, PUBLIC :: nb_stage, matsuno_period, scheme, scheme_family … … 160 160 IF(caldyn_eta==eta_mass .AND. is_omp_first_level) THEN ! update ps 161 161 ps=f_ps(ind) 162 ps(:)=(ps(:)-ptop)/g 162 ps(:)=(ps(:)-ptop)/g ! FIXME : OpenMP+unstructured 163 163 END IF 164 164 … … 175 175 ENDDO 176 176 CASE(grid_unst) 177 PRINT *, 'legacy_to_DEC', llm, edge_num, SHAPE(u), SHAPE(de) ! FIXME177 ! PRINT *, 'legacy_to_DEC', llm, edge_num, SHAPE(u), SHAPE(de) ! FIXME 178 178 DO ij=1, edge_num 179 179 DO l=1,llm … … 206 206 IF(caldyn_eta==eta_mass .AND. is_omp_first_level) THEN 207 207 ps=f_ps(ind) 208 !DIR$ SIMD 209 DO ij=ij_begin,ij_end 210 ps(ij)=ptop+ps(ij)*g ! convert column-integrated mass to ps 211 ENDDO 208 ps(:) = ptop + ps(:)*g ! FIXME : OpenMP+unstructured 212 209 ENDIF 213 210 214 211 u=f_u(ind) 215 DO l=ll_begin,ll_end 216 !DIR$ SIMD 217 DO ij=ij_begin,ij_end 218 u(ij+u_right,l)=u(ij+u_right,l)/de(ij+u_right) 219 u(ij+u_lup,l)=u(ij+u_lup,l)/de(ij+u_lup) 220 u(ij+u_ldown,l)=u(ij+u_ldown,l)/de(ij+u_ldown) 221 ENDDO 222 ENDDO 212 SELECT CASE(grid_type) 213 CASE(grid_ico) 214 DO l=ll_begin,ll_end 215 !DIR$ SIMD 216 DO ij=ij_begin,ij_end 217 u(ij+u_right,l)=u(ij+u_right,l)/de(ij+u_right) 218 u(ij+u_lup,l)=u(ij+u_lup,l)/de(ij+u_lup) 219 u(ij+u_ldown,l)=u(ij+u_ldown,l)/de(ij+u_ldown) 220 ENDDO 221 ENDDO 222 CASE(grid_unst) 223 ! PRINT *, 'DEC_to_legacy', llm, edge_num, SHAPE(u), SHAPE(de) ! FIXME 224 DO ij=1, edge_num 225 DO l=1,llm 226 u(l,ij) = u(l,ij)/de(ij) 227 END DO 228 END DO 229 CASE DEFAULT 230 STOP 'Unsupported grid_type encountered in legacy_to_DEC' 231 END SELECT 223 232 ENDDO 224 233 -
codes/icosagcm/devel/src/time/hevi_scheme.f90
r732 r950 11 11 REAL(rstd), PARAMETER, DIMENSION(3) :: zero = (/0.,0.,0./) 12 12 13 PUBLIC :: set_coefs_ark23, set_coefs_ark33, hevi_scheme13 PUBLIC :: set_coefs_ark23, set_coefs_ark33, set_coefs_ark11, hevi_scheme 14 14 15 15 CONTAINS … … 34 34 END SUBROUTINE set_coefs_ark33 35 35 36 SUBROUTINE set_coefs_ark11(dt) 37 ! Euler scheme disguised as ARK for development purposes 38 REAL(rstd) :: dt 39 CALL set_coefs_rk(dt, (/ zero, (/1.,0.,0./), (/0.,0.,0./), (/0./0.,0./0.,0./) /) ) 40 END SUBROUTINE set_coefs_ark11 41 36 42 SUBROUTINE set_coefs_rk(dt, ajl) 37 43 REAL(rstd) :: dt, ajl(3,4) … … 42 48 REAL(rstd) :: dt, ajl_slow(3,4), ajl_fast(3,4) ! fast/slow Butcher tableaus 43 49 INTEGER :: j 44 DO j=1, 350 DO j=1,nb_stage 45 51 bjl(:,j) = dt*(ajl_slow(:,j+1)-ajl_slow(:,j)) 46 52 cjl(:,j) = dt*(ajl_fast(:,j+1)-ajl_fast(:,j)) 47 53 taujj(j) = dt*ajl_fast(j,j) 48 54 END DO 49 wj=dt*ajl_slow(:, 4)55 wj=dt*ajl_slow(:,nb_stage+1) 50 56 END SUBROUTINE set_coefs_hevi 51 57 … … 142 148 INTENT(INOUT) :: y 143 149 INTENT(IN) :: dy 144 INTEGER :: l 145 DO l=ll_begin,ll_end 150 INTEGER :: l, l_begin, l_end 151 IF(grid_type==grid_ico) THEN 152 l_begin = ll_begin 153 l_end = l_end 154 ELSE ! unstructured : FIXME OpenMP 155 l_begin = 1 156 l_end = SIZE(y,2) 157 END IF 158 DO l=l_begin,l_end 146 159 y(:,l)=y(:,l)+w*dy(:,l) 147 160 ENDDO … … 157 170 IF (.NOT. assigned_domain(ind)) CYCLE 158 171 dy=f_dy(ind); y=f_y(ind) 159 IF (is_omp_level_master) CALL compute_update_2D(w,y,dy) 172 IF (is_omp_level_master) CALL compute_update_2D(w,y,dy) ! FIXME OpenMP+unstructured 160 173 ENDDO 161 174 END SUBROUTINE update_2D -
codes/icosagcm/devel/src/time/timeloop_gcm.f90
r949 r950 78 78 CALL getin('matsuno_period',matsuno_period) 79 79 nb_stage=matsuno_period+1 80 CASE('ARK1.1') 81 scheme_family=hevi 82 scheme=ark11 83 nb_stage=1 84 CALL set_coefs_ark11(dt) 80 85 CASE('ARK2.3') 81 86 scheme_family=hevi … … 91 96 nb_stage=0 92 97 CASE default 93 PRINT*,'Bad selector for variable scheme : <' , TRIM(def),&94 ' > options are <euler>, <runge_kutta>, <leapfrog_matsuno>,<RK2.5>,<ARK2.3>'98 PRINT*,'Bad selector for variable scheme : <' // TRIM(def) // '>, ', & 99 'options are <euler>, <runge_kutta>, <leapfrog_matsuno>, <RK2.5>,<ARK2.3>, ,<ARK1.1>' 95 100 STOP 96 101 END SELECT
Note: See TracChangeset
for help on using the changeset viewer.