New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 3043 – NEMO

Changeset 3043


Ignore:
Timestamp:
2011-11-04T10:08:18+01:00 (12 years ago)
Author:
cbricaud
Message:

Coding rules

Location:
branches/2011/dev_r2787_MERCATOR2_tidalharm/NEMOGCM/NEMO/OPA_SRC/DIA
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_r2787_MERCATOR2_tidalharm/NEMOGCM/NEMO/OPA_SRC/DIA/diaharm.F90

    r3042 r3043  
    234234        nhan = (nitend_han-nit000_han+1)/nstep_han ! Number of dumps used for analysis 
    235235 
    236         NBINCO = 2*nb_ana 
     236        ninco = 2*nb_ana 
    237237 
    238238        ksp = 0 
     
    246246              kun = kun + 1 
    247247              ksp = ksp + 1 
    248               ISPARSE(ksp) = keq 
    249               JSPARSE(ksp) = kun 
    250               SPARSEVALUE(ksp)= & 
     248              nisparse(ksp) = keq 
     249              njsparse(ksp) = kun 
     250              valuesparse(ksp)= & 
    251251                 +(     MOD(jc,2) * ft(jh) * COS(ana_freq(jh)*ztime + vt(jh) + ut(jh)) & 
    252252                   +(1.-MOD(jc,2))* ft(jh) * SIN(ana_freq(jh)*ztime + vt(jh) + ut(jh))) 
     
    255255        END DO 
    256256 
    257         NBSPARSE=ksp 
     257        nsparse=ksp 
    258258 
    259259        ! Elevation: 
     
    265265              DO jc = 1,2 
    266266                kun = kun + 1 
    267                 TAB4(kun)=ana_temp(ji,jj,kun,1) 
     267                tmp4(kun)=ana_temp(ji,jj,kun,1) 
    268268              ENDDO 
    269269            ENDDO 
     
    273273            ! Fill output array 
    274274            DO jh = 1, nb_ana 
    275               ana_amp(ji,jj,jh,1)=TAB7((jh-1)*2+1) 
    276               ana_amp(ji,jj,jh,2)=TAB7((jh-1)*2+2) 
     275              ana_amp(ji,jj,jh,1)=tmp7((jh-1)*2+1) 
     276              ana_amp(ji,jj,jh,2)=tmp7((jh-1)*2+2) 
    277277            END DO 
    278278          END DO 
     
    303303              DO jc = 1,2 
    304304                kun = kun + 1 
    305                 TAB4(kun)=ana_temp(ji,jj,kun,2) 
     305                tmp4(kun)=ana_temp(ji,jj,kun,2) 
    306306              ENDDO 
    307307            ENDDO 
     
    311311            ! Fill output array 
    312312            DO jh = 1, nb_ana 
    313               ana_amp(ji,jj,jh,1)=TAB7((jh-1)*2+1) 
    314               ana_amp(ji,jj,jh,2)=TAB7((jh-1)*2+2) 
     313              ana_amp(ji,jj,jh,1)=tmp7((jh-1)*2+1) 
     314              ana_amp(ji,jj,jh,2)=tmp7((jh-1)*2+2) 
    315315            END DO 
    316316 
     
    337337                DO jc = 1,2 
    338338                  kun = kun + 1 
    339                   TAB4(kun)=ana_temp(ji,jj,kun,3) 
     339                  tmp4(kun)=ana_temp(ji,jj,kun,3) 
    340340                ENDDO 
    341341              ENDDO 
     
    345345              ! Fill output array 
    346346              DO jh = 1, nb_ana 
    347                 ana_amp(ji,jj,jh,1)=TAB7((jh-1)*2+1) 
    348                 ana_amp(ji,jj,jh,2)=TAB7((jh-1)*2+2) 
     347                ana_amp(ji,jj,jh,1)=tmp7((jh-1)*2+1) 
     348                ana_amp(ji,jj,jh,2)=tmp7((jh-1)*2+2) 
    349349              END DO 
    350350 
  • branches/2011/dev_r2787_MERCATOR2_tidalharm/NEMOGCM/NEMO/OPA_SRC/DIA/surdetermine.F90

    r2956 r3043  
    66   PUBLIC 
    77    
    8    INTEGER, PARAMETER :: NBINCOMAX = 18 
    9    INTEGER, PARAMETER :: DIMSPARSE = NBINCOMAX*300*24 
     8   INTEGER, PARAMETER :: jpincomax = 18 
     9   INTEGER, PARAMETER :: jpdimsparse = jpincomax*300*24 
    1010 
    11    INTEGER :: NBSPARSE, NBINCO 
    12    REAL(wp), DIMENSION(DIMSPARSE) :: SPARSEVALUE 
    13    INTEGER, DIMENSION(DIMSPARSE) :: JSPARSE , ISPARSE 
     11   INTEGER, PUBLIC :: nsparse, ninco 
     12   REAL(wp), PUBLIC, DIMENSION(jpdimsparse) :: valuesparse 
     13   INTEGER , PUBLIC, DIMENSION(jpdimsparse) :: njsparse, nisparse 
    1414 
    15    INTEGER, SAVE, DIMENSION(NBINCOMAX) :: JPOS1 
    16    REAL(wp), DIMENSION(NBINCOMAX) :: TAB4, TAB7 
    17    REAL(wp), SAVE, DIMENSION(NBINCOMAX,NBINCOMAX) :: TAB3, PILIER 
    18    REAL(wp), SAVE, DIMENSION(NBINCOMAX) :: PIVOT 
     15   INTEGER, SAVE, DIMENSION(jpincomax) :: ipos1 
     16   REAL(wp), DIMENSION(jpincomax) :: tmp4, tmp7 
     17   REAL(wp), SAVE, DIMENSION(jpincomax,jpincomax) :: ztmp3, zpilier 
     18   REAL(wp), SAVE, DIMENSION(jpincomax) :: zpivot 
    1919 
    2020   !!--------------------------------------------------------------------------------- 
     
    2929 
    3030      INTEGER  :: & 
    31          I_SD, I1_SD, II_SD, J_SD, K1_SD, K2_SD 
    32       REAL(wp) :: VALEUR1, VALEUR2, X1 
    33       REAL(wp), DIMENSION(NBINCOMAX) :: TABX, COL1, COL2 
    34       INTEGER, DIMENSION(NBINCOMAX) :: JPOS2, JPIVOT       
     31         ji_sd, jj_sd, ji1_sd, ji2_sd, jk1_sd, jk2_sd 
     32      REAL(wp) :: zval1, zval2, zx1 
     33      REAL(wp), DIMENSION(jpincomax) :: ztmpx, zcol1, zcol2 
     34      INTEGER, DIMENSION(jpincomax) :: ipos2, ipivot       
    3535   !--------------------------------------------------------------------------------- 
    3636 
    3737      IF (init==1) THEN 
    38         IF(NBSPARSE.GT.DIMSPARSE) STOP 'surdetermine erreur1' 
    39         IF(NBINCO.GT.NBINCOMAX)THEN 
    40           IF (lwp) WRITE(numout,*)'NBINCO   =',NBINCO 
    41           IF (lwp) WRITE(numout,*)'NBINCOMAX=',NBINCOMAX 
     38        IF(nsparse .gt. jpdimsparse) STOP 'surdetermine erreur1' 
     39        IF(ninco .gt. jpincomax)THEN 
     40          IF (lwp) WRITE(numout,*)'ninco   =',ninco 
     41          IF (lwp) WRITE(numout,*)'jpincomax=',jpincomax 
    4242          STOP 'DONC dans surdetermine erreur2' 
    4343        END IF 
    4444 
    45         TAB3(:,:)=0.e0 
     45        ztmp3(:,:)=0.e0 
    4646 
    47         DO K1_SD=1,NBSPARSE 
    48           DO K2_SD=1,NBSPARSE  
    49             ISPARSE(K2_SD)=ISPARSE(K2_SD) 
    50             JSPARSE(K2_SD)=JSPARSE(K2_SD) 
    51             IF(ISPARSE(K2_SD).EQ.ISPARSE(K1_SD)) & 
    52             TAB3(JSPARSE(K1_SD),JSPARSE(K2_SD))= & 
    53             TAB3(JSPARSE(K1_SD),JSPARSE(K2_SD))  & 
    54            +SPARSEVALUE(K1_SD)*SPARSEVALUE(K2_SD) 
     47        DO jk1_sd=1,nsparse 
     48          DO jk2_sd=1,nsparse  
     49            nisparse(jk2_sd)=nisparse(jk2_sd) 
     50            njsparse(jk2_sd)=njsparse(jk2_sd) 
     51            IF(nisparse(jk2_sd) .eq. nisparse(jk1_sd)) & 
     52            ztmp3(njsparse(jk1_sd),njsparse(jk2_sd))= & 
     53            ztmp3(njsparse(jk1_sd),njsparse(jk2_sd))  & 
     54           +valuesparse(jk1_sd)*valuesparse(jk2_sd) 
    5555          END DO 
    5656        END DO 
    5757 
    58         DO J_SD=1,NBINCO 
    59           JPOS1(J_SD)=J_SD 
    60           JPOS2(J_SD)=J_SD 
     58        DO jj_sd=1,ninco 
     59          ipos1(jj_sd)=jj_sd 
     60          ipos2(jj_sd)=jj_sd 
    6161        ENDDO 
    6262 
    63         DO I_SD=1,NBINCO 
     63        DO ji_sd=1,ninco 
    6464! recherche du plus grand pivot non nul 
    65           VALEUR1=ABS(TAB3(I_SD,I_SD)) 
     65          zval1=ABS(ztmp3(ji_sd,ji_sd)) 
    6666 
    67           JPIVOT(I_SD)=I_SD 
    68           DO J_SD=I_SD,NBINCO 
    69              VALEUR2=ABS(TAB3(I_SD,J_SD)) 
    70              IF(VALEUR2.GE.VALEUR1) THEN 
    71               JPIVOT(I_SD)=J_SD 
    72               VALEUR1=VALEUR2 
     67          ipivot(ji_sd)=ji_sd 
     68          DO jj_sd=ji_sd,ninco 
     69             zval2=ABS(ztmp3(ji_sd,jj_sd)) 
     70             IF(zval2.GE.zval1) THEN 
     71              ipivot(ji_sd)=jj_sd 
     72              zval1=zval2 
    7373             ENDIF 
    7474          END DO 
    7575 
    76           DO I1_SD=1,NBINCO 
    77              COL1(I1_SD)=TAB3(I1_SD,I_SD) 
    78              COL2(I1_SD)=TAB3(I1_SD,JPIVOT(I_SD)) 
    79              TAB3(I1_SD,I_SD)=COL2(I1_SD) 
    80              TAB3(I1_SD,JPIVOT(I_SD))=COL1(I1_SD) 
     76          DO ji1_sd=1,ninco 
     77             zcol1(ji1_sd)=ztmp3(ji1_sd,ji_sd) 
     78             zcol2(ji1_sd)=ztmp3(ji1_sd,ipivot(ji_sd)) 
     79             ztmp3(ji1_sd,ji_sd)=zcol2(ji1_sd) 
     80             ztmp3(ji1_sd,ipivot(ji_sd))=zcol1(ji1_sd) 
    8181          END DO 
    8282 
    83           JPOS2(I_SD)=JPOS1(JPIVOT(I_SD)) 
    84           JPOS2(JPIVOT(I_SD))=JPOS1(I_SD) 
    85           JPOS1(I_SD)=JPOS2(I_SD) 
    86           JPOS1(JPIVOT(I_SD))=JPOS2(JPIVOT(I_SD)) 
     83          ipos2(ji_sd)=ipos1(ipivot(ji_sd)) 
     84          ipos2(ipivot(ji_sd))=ipos1(ji_sd) 
     85          ipos1(ji_sd)=ipos2(ji_sd) 
     86          ipos1(ipivot(ji_sd))=ipos2(ipivot(ji_sd)) 
    8787 
    8888 
    8989!------------------------------- 
    90           PIVOT(I_SD)=TAB3(I_SD,I_SD) 
    91           DO J_SD=1,NBINCO 
    92              TAB3(I_SD,J_SD)=TAB3(I_SD,J_SD)/PIVOT(I_SD) 
     90          zpivot(ji_sd)=ztmp3(ji_sd,ji_sd) 
     91          DO jj_sd=1,ninco 
     92             ztmp3(ji_sd,jj_sd)=ztmp3(ji_sd,jj_sd)/zpivot(ji_sd) 
    9393          END DO 
    9494!------------------------------- 
    9595 
    9696!------------------------------- 
    97           DO II_SD=I_SD+1,NBINCO 
    98              PILIER(II_SD,I_SD)=TAB3(II_SD,I_SD) 
    99              DO J_SD=1,NBINCO 
    100                TAB3(II_SD,J_SD)= & 
    101                TAB3(II_SD,J_SD)-TAB3(I_SD,J_SD)*PILIER(II_SD,I_SD) 
     97          DO ji2_sd=ji_sd+1,ninco 
     98             zpilier(ji2_sd,ji_sd)=ztmp3(ji2_sd,ji_sd) 
     99             DO jj_sd=1,ninco 
     100               ztmp3(ji2_sd,jj_sd)= & 
     101               ztmp3(ji2_sd,jj_sd)-ztmp3(ji_sd,jj_sd)*zpilier(ji2_sd,ji_sd) 
    102102             END DO  
    103103          END DO 
     
    108108 
    109109! 
    110       DO I_SD=1,NBINCO 
    111         TAB4(I_SD)=TAB4(I_SD)/PIVOT(I_SD) 
    112         DO II_SD=I_SD+1,NBINCO 
    113            TAB4(II_SD)=TAB4(II_SD)-TAB4(I_SD)*PILIER(II_SD,I_SD) 
     110      DO ji_sd=1,ninco 
     111        tmp4(ji_sd)=tmp4(ji_sd)/zpivot(ji_sd) 
     112        DO ji2_sd=ji_sd+1,ninco 
     113           tmp4(ji2_sd)=tmp4(ji2_sd)-tmp4(ji_sd)*zpilier(ji2_sd,ji_sd) 
    114114        END DO 
    115115      END DO 
    116116 
    117117!  resolution du systeme: 
    118       TABX(NBINCO)=TAB4(NBINCO)/TAB3(NBINCO,NBINCO) 
    119       I_SD=NBINCO 
    120       DO I_SD=NBINCO-1,1,-1 
    121         X1=0. 
    122         DO J_SD=I_SD+1,NBINCO 
    123           X1=X1+TABX(J_SD)*TAB3(I_SD,J_SD) 
     118      ztmpx(ninco)=tmp4(ninco)/ztmp3(ninco,ninco) 
     119      ji_sd=ninco 
     120      DO ji_sd=ninco-1,1,-1 
     121        zx1=0. 
     122        DO jj_sd=ji_sd+1,ninco 
     123          zx1=zx1+ztmpx(jj_sd)*ztmp3(ji_sd,jj_sd) 
    124124        END DO  
    125         TABX(I_SD)=TAB4(I_SD)-X1 
     125        ztmpx(ji_sd)=tmp4(ji_sd)-zx1 
    126126      END DO  
    127127 
    128       DO J_SD=1,NBINCO 
    129         TAB7(JPOS1(J_SD))=TABX(J_SD) 
     128      DO jj_sd=1,ninco 
     129        tmp7(ipos1(jj_sd))=ztmpx(jj_sd) 
    130130      END DO 
    131131 
Note: See TracChangeset for help on using the changeset viewer.