Ignore:
Timestamp:
07/14/19 14:40:34 (5 years ago)
Author:
dubos
Message:

devel/unstructured : towards Fortran driver for DYNAMICO-unstructured

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/devel/src/time/euler_scheme.f90

    r885 r950  
    1515       f_dW_slow(:,:), f_dW_fast(:,:)                                 ! vertical momentum tendencies (NH) 
    1616 
    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 
    1818 
    1919  INTEGER,SAVE, PUBLIC :: nb_stage, matsuno_period, scheme, scheme_family 
     
    160160       IF(caldyn_eta==eta_mass .AND. is_omp_first_level) THEN ! update ps 
    161161          ps=f_ps(ind) 
    162           ps(:)=(ps(:)-ptop)/g 
     162          ps(:)=(ps(:)-ptop)/g ! FIXME : OpenMP+unstructured 
    163163       END IF 
    164164 
     
    175175          ENDDO 
    176176       CASE(grid_unst) 
    177           PRINT *, 'legacy_to_DEC', llm, edge_num, SHAPE(u), SHAPE(de) ! FIXME 
     177!          PRINT *, 'legacy_to_DEC', llm, edge_num, SHAPE(u), SHAPE(de) ! FIXME 
    178178          DO ij=1, edge_num 
    179179             DO l=1,llm 
     
    206206       IF(caldyn_eta==eta_mass .AND. is_omp_first_level) THEN 
    207207          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 
    212209       ENDIF 
    213210        
    214211       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 
    223232    ENDDO 
    224233 
Note: See TracChangeset for help on using the changeset viewer.