Ignore:
Timestamp:
Aug 2, 2024, 2:12:03 PM (3 months ago)
Author:
abarral
Message:

Add missing klon on strataer_emiss_mod.F90
Correct various missing explicit declarations
Replace tabs by spaces (tabs are not part of the fortran charset)
Continue cleaning modules
Removed unused arguments and variables

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/phylmd/ecrad.v1.5.1/radiation_matrix.F90

    r4489 r5158  
    9090      mat_x_vec(1:iend,1) = A(1:iend,1,1)*b(1:iend,1)
    9191    else
    92       do j1 = 1,m
    93         do j2 = 1,m
     92      DO j1 = 1,m
     93        DO j2 = 1,m
    9494          mat_x_vec(1:iend,j1) = mat_x_vec(1:iend,j1) &
    9595               &               + A(1:iend,j1,j2)*b(1:iend,j2)
     
    124124    singlemat_x_vec = 0.0_jprb
    125125
    126     do j1 = 1,m
    127       do j2 = 1,m
     126    DO j1 = 1,m
     127      DO j2 = 1,m
    128128        singlemat_x_vec(1:iend,j1) = singlemat_x_vec(1:iend,j1) &
    129129             &                    + A(j1,j2)*b(1:iend,j2)
     
    175175      m2block = 2*mblock
    176176      ! Do the top-left (C, D, F, G)
    177       do j2 = 1,m2block
    178         do j1 = 1,m2block
    179           do j3 = 1,m2block
     177      DO j2 = 1,m2block
     178        DO j1 = 1,m2block
     179          DO j3 = 1,m2block
    180180            mat_x_mat(1:iend,j1,j2) = mat_x_mat(1:iend,j1,j2) &
    181181                 &                  + A(1:iend,j1,j3)*B(1:iend,j3,j2)
     
    183183        end do
    184184      end do
    185       do j2 = m2block+1,m
     185      DO j2 = m2block+1,m
    186186        ! Do the top-right (E & H)
    187         do j1 = 1,m2block
    188           do j3 = 1,m
     187        DO j1 = 1,m2block
     188          DO j3 = 1,m
    189189            mat_x_mat(1:iend,j1,j2) = mat_x_mat(1:iend,j1,j2) &
    190190                 &                  + A(1:iend,j1,j3)*B(1:iend,j3,j2)
     
    192192        end do
    193193        ! Do the bottom-right (I)
    194         do j1 = m2block+1,m
    195           do j3 = m2block+1,m
     194        DO j1 = m2block+1,m
     195          DO j3 = m2block+1,m
    196196            mat_x_mat(1:iend,j1,j2) = mat_x_mat(1:iend,j1,j2) &
    197197                 &                  + A(1:iend,j1,j3)*B(1:iend,j3,j2)
     
    201201    else
    202202      ! Ordinary dense matrix
    203       do j2 = 1,m
    204         do j1 = 1,m
    205           do j3 = 1,m
     203      DO j2 = 1,m
     204        DO j1 = 1,m
     205          DO j3 = 1,m
    206206            mat_x_mat(1:iend,j1,j2) = mat_x_mat(1:iend,j1,j2) &
    207207                 &                  + A(1:iend,j1,j3)*B(1:iend,j3,j2)
     
    237237    singlemat_x_mat = 0.0_jprb
    238238
    239     do j2 = 1,m
    240       do j1 = 1,m
    241         do j3 = 1,m
     239    DO j2 = 1,m
     240      DO j1 = 1,m
     241        DO j3 = 1,m
    242242          singlemat_x_mat(1:iend,j1,j2) = singlemat_x_mat(1:iend,j1,j2) &
    243243               &                        + A(j1,j3)*B(1:iend,j3,j2)
     
    272272    mat_x_singlemat = 0.0_jprb
    273273
    274     do j2 = 1,m
    275       do j1 = 1,m
    276         do j3 = 1,m
     274    DO j2 = 1,m
     275      DO j1 = 1,m
     276        DO j3 = 1,m
    277277          mat_x_singlemat(1:iend,j1,j2) = mat_x_singlemat(1:iend,j1,j2) &
    278278               &                        + A(1:iend,j1,j3)*B(j3,j2)
     
    310310
    311311    identity_minus_mat_x_mat = - identity_minus_mat_x_mat
    312     do j = 1,m
     312    DO j = 1,m
    313313      identity_minus_mat_x_mat(1:iend,j,j) &
    314314           &     = 1.0_jprb + identity_minus_mat_x_mat(1:iend,j,j)
     
    348348      mblock = m/3
    349349      m2block = 2*mblock
    350       do j4 = 1,nrepeat
     350      DO j4 = 1,nrepeat
    351351        repeated_square = 0.0_jprb
    352352        ! Do the top-left (C, D, F & G)
    353         do j2 = 1,m2block
    354           do j1 = 1,m2block
    355             do j3 = 1,m2block
     353        DO j2 = 1,m2block
     354          DO j1 = 1,m2block
     355            DO j3 = 1,m2block
    356356              repeated_square(j1,j2) = repeated_square(j1,j2) &
    357357                   &                 + A(j1,j3)*A(j3,j2)
     
    359359          end do
    360360        end do
    361         do j2 = m2block+1, m
     361        DO j2 = m2block+1, m
    362362          ! Do the top-right (E & H)
    363           do j1 = 1,m2block
    364             do j3 = 1,m
     363          DO j1 = 1,m2block
     364            DO j3 = 1,m
    365365              repeated_square(j1,j2) = repeated_square(j1,j2) &
    366366                   &                 + A(j1,j3)*A(j3,j2)
     
    368368          end do
    369369          ! Do the bottom-right (I)
    370           do j1 = m2block+1, m
    371             do j3 = m2block+1,m
     370          DO j1 = m2block+1, m
     371            DO j3 = m2block+1,m
    372372              repeated_square(j1,j2) = repeated_square(j1,j2) &
    373373                   &                 + A(j1,j3)*A(j3,j2)
     
    381381    else
    382382      ! Ordinary dense matrix
    383       do j4 = 1,nrepeat
     383      DO j4 = 1,nrepeat
    384384        repeated_square = 0.0_jprb
    385         do j2 = 1,m
    386           do j1 = 1,m
    387             do j3 = 1,m
     385        DO j2 = 1,m
     386          DO j1 = 1,m
     387            DO j3 = 1,m
    388388              repeated_square(j1,j2) = repeated_square(j1,j2) &
    389389                   &                 + A(j1,j3)*A(j3,j2)
     
    521521    U33 = A(1:iend,3,3) - L31*A(1:iend,1,3) - L32*U23
    522522
    523     do j = 1,3
     523    DO j = 1,3
    524524      ! Solve Ly = B(:,:,j) by forward substitution
    525525      ! y1 = B(:,1,j)
     
    621621    LU(1:iend,1:m,1:m) = A(1:iend,1:m,1:m)
    622622
    623     do j2 = 1, m
    624       do j1 = 1, j2-1
     623    DO j2 = 1, m
     624      DO j1 = 1, j2-1
    625625        s = LU(1:iend,j1,j2)
    626         do j3 = 1, j1-1
     626        DO j3 = 1, j1-1
    627627          s = s - LU(1:iend,j1,j3) * LU(1:iend,j3,j2)
    628628        end do
    629629        LU(1:iend,j1,j2) = s
    630630      end do
    631       do j1 = j2, m
     631      DO j1 = j2, m
    632632        s = LU(1:iend,j1,j2)
    633         do j3 = 1, j2-1
     633        DO j3 = 1, j2-1
    634634          s = s - LU(1:iend,j1,j3) * LU(1:iend,j3,j2)
    635635        end do
     
    638638      if (j2 /= m) then
    639639        s = 1.0_jprb / LU(1:iend,j2,j2)
    640         do j1 = j2+1, m
     640        DO j1 = j2+1, m
    641641          LU(1:iend,j1,j2) = LU(1:iend,j1,j2) * s
    642642        end do
     
    663663
    664664    ! First solve Ly=b
    665     do j2 = 2, m
    666       do j1 = 1, j2-1
     665    DO j2 = 2, m
     666      DO j1 = 1, j2-1
    667667        x(1:iend,j2) = x(1:iend,j2) - x(1:iend,j1)*LU(1:iend,j2,j1)
    668668      end do
    669669    end do
    670670    ! Now solve Ux=y
    671     do j2 = m, 1, -1
    672       do j1 = j2+1, m
     671    DO j2 = m, 1, -1
     672      DO j1 = j2+1, m
    673673        x(1:iend,j2) = x(1:iend,j2) - x(1:iend,j1)*LU(1:iend,j2,j1)
    674674      end do
     
    694694    call lu_factorization(n,iend,m,A,LU)
    695695
    696     do j = 1, m
     696    DO j = 1, m
    697697      call lu_substitution(n,iend,m,LU,B(1:,1:m,j),X(1:iend,1:m,j))
    698698!      call lu_substitution(n,iend,m,LU,B(1:n,1:m,j),X(1:iend,1:m,j))
     
    807807
    808808    ! Compute the 1-norms of A
    809     do j3 = 1,m
     809    DO j3 = 1,m
    810810      sum_column(:) = 0.0_jprb
    811       do j2 = 1,m
    812         do j1 = 1,iend
     811      DO j2 = 1,m
     812        DO j1 = 1,iend
    813813          sum_column(j1) = sum_column(j1) + abs(A(j1,j2,j3))
    814814        end do
    815815      end do
    816       do j1 = 1,iend
     816      DO j1 = 1,iend
    817817        if (sum_column(j1) > normA(j1)) then
    818818          normA(j1) = sum_column(j1)
     
    833833    ! Scale the input matrices by a power of 2
    834834    scaling = 2.0_jprb**(-expo)
    835     do j3 = 1,m
    836       do j2 = 1,m
     835    DO j3 = 1,m
     836      DO j2 = 1,m
    837837        A(1:iend,j2,j3) = A(1:iend,j2,j3) * scaling
    838838      end do
     
    844844
    845845    V = c(8)*A6 + c(6)*A4 + c(4)*A2
    846     do j3 = 1,m
     846    DO j3 = 1,m
    847847      V(:,j3,j3) = V(:,j3,j3) + c(2)
    848848    end do
     
    850850    V = c(7)*A6 + c(5)*A4 + c(3)*A2
    851851    ! Add a multiple of the identity matrix
    852     do j3 = 1,m
     852    DO j3 = 1,m
    853853      V(:,j3,j3) = V(:,j3,j3) + c(1)
    854854    end do
     
    859859
    860860    ! Add the identity matrix
    861     do j3 = 1,m
     861    DO j3 = 1,m
    862862      A(1:iend,j3,j3) = A(1:iend,j3,j3) + 1.0_jprb
    863863    end do
    864864
    865865    ! Loop through the matrices
    866     do j1 = 1,iend
     866    DO j1 = 1,iend
    867867      if (expo(j1) > 0) then
    868868        ! Square matrix j1 expo(j1) times         
     
    983983
    984984    ! Compute V * diag_rdivide_V
    985     do j1 = 1,3
    986       do j2 = 1,3
     985    DO j1 = 1,3
     986      DO j2 = 1,3
    987987        R(1:iend,j2,j1) = V(1:iend,j2,1)*diag_rdivide_V(1:iend,1,j1) &
    988988             &          + V(1:iend,j2,2)*diag_rdivide_V(1:iend,2,j1) &
Note: See TracChangeset for help on using the changeset viewer.