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 7525 for branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90 – NEMO

Ignore:
Timestamp:
2017-01-04T17:47:47+01:00 (7 years ago)
Author:
mocavero
Message:

changes after review

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90

    r7513 r7525  
    129129 
    130130      IF( lk_degrad ) THEN 
    131 !$OMP DO schedule(static) private(jk,jj,ji) 
    132       DO jk = 1, jpk 
    133          DO jj = 1, jpj 
    134             DO ji = 1, jpi 
    135                prmax(ji,jj,jk) = prmax(ji,jj,jk) * facvol(ji,jj,jk)  
    136             END DO 
    137          END DO 
    138       END DO  
     131!$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
     132         DO jk = 1, jpk 
     133            DO jj = 1, jpj 
     134               DO ji = 1, jpi 
     135                  prmax(ji,jj,jk) = prmax(ji,jj,jk) * facvol(ji,jj,jk)  
     136               END DO 
     137            END DO 
     138         END DO  
    139139      END IF 
    140140 
     
    453453          IF( iom_use( "PPPHY" ) .OR. iom_use( "PPPHY2" ) )  THEN 
    454454!$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    455             DO jk = 1, jpk 
    456                DO jj = 1, jpj 
    457                   DO ji = 1, jpi 
    458                      zw3d(ji,jj,jk) = zprorca (ji,jj,jk) * zfact * tmask(ji,jj,jk)  ! primary production by nanophyto 
    459                   END DO 
    460                END DO 
    461             END DO 
    462               CALL iom_put( "PPPHY"  , zw3d ) 
    463 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    464             DO jk = 1, jpk 
    465                DO jj = 1, jpj 
    466                   DO ji = 1, jpi 
    467                      zw3d(ji,jj,jk) = zprorcad (ji,jj,jk) * zfact * tmask(ji,jj,jk)  ! primary production by nanophyto 
    468                   END DO 
    469                END DO 
    470             END DO 
     455             DO jk = 1, jpk 
     456                DO jj = 1, jpj 
     457                   DO ji = 1, jpi 
     458                      zw3d(ji,jj,jk) = zprorca (ji,jj,jk) * zfact * tmask(ji,jj,jk)  ! primary production by nanophyto 
     459                   END DO 
     460                END DO 
     461             END DO 
     462             CALL iom_put( "PPPHY"  , zw3d ) 
     463!$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
     464             DO jk = 1, jpk 
     465                DO jj = 1, jpj 
     466                   DO ji = 1, jpi 
     467                      zw3d(ji,jj,jk) = zprorcad (ji,jj,jk) * zfact * tmask(ji,jj,jk)  ! primary production by nanophyto 
     468                   END DO 
     469                END DO 
     470             END DO 
     471             ! 
     472             CALL iom_put( "PPPHY2"  , zw3d ) 
     473          ENDIF 
     474          IF( iom_use( "PPNEWN" ) .OR. iom_use( "PPNEWD" ) )  THEN 
     475!$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
     476             DO jk = 1, jpk 
     477                DO jj = 1, jpj 
     478                   DO ji = 1, jpi 
     479                      zw3d(ji,jj,jk) = zpronew (ji,jj,jk) * zfact * tmask(ji,jj,jk)  ! new primary production by nanophyto 
     480                   END DO 
     481                END DO 
     482             END DO 
     483             CALL iom_put( "PPNEWN"  , zw3d ) 
     484             ! 
     485!$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
     486             DO jk = 1, jpk 
     487                DO jj = 1, jpj 
     488                   DO ji = 1, jpi 
     489                      zw3d(ji,jj,jk) = zpronewd (ji,jj,jk) * zfact * tmask(ji,jj,jk)  ! new primary production by nanophyto 
     490                   END DO 
     491                END DO 
     492             END DO 
     493             CALL iom_put( "PPNEWD"  , zw3d ) 
     494          ENDIF 
     495          IF( iom_use( "PBSi" ) )  THEN 
     496!$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
     497             DO jk = 1, jpk 
     498                DO jj = 1, jpj 
     499                   DO ji = 1, jpi 
     500                      zw3d(ji,jj,jk) = zprorcad(ji,jj,jk) * zfact * tmask(ji,jj,jk) * zysopt(ji,jj,jk) ! biogenic silica production 
     501                   END DO 
     502                END DO 
     503             END DO 
     504             CALL iom_put( "PBSi"  , zw3d ) 
     505          ENDIF 
     506          IF( iom_use( "PFeN" ) .OR. iom_use( "PFeD" ) )  THEN 
     507!$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
     508             DO jk = 1, jpk 
     509                DO jj = 1, jpj 
     510                   DO ji = 1, jpi 
     511                      zw3d(ji,jj,jk) = zprofen(ji,jj,jk) * zfact * tmask(ji,jj,jk)  ! biogenic iron production by nanophyto 
     512                   END DO 
     513                END DO 
     514             END DO 
     515             CALL iom_put( "PFeN"  , zw3d ) 
     516             ! 
     517!$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
     518             DO jk = 1, jpk 
     519                DO jj = 1, jpj 
     520                   DO ji = 1, jpi 
     521                      zw3d(ji,jj,jk) = zprofed(ji,jj,jk) * zfact * tmask(ji,jj,jk)  ! biogenic iron production by nanophyto 
     522                   END DO 
     523                END DO 
     524             END DO 
     525             CALL iom_put( "PFeD"  , zw3d ) 
     526          ENDIF 
     527          IF( iom_use( "Mumax" ) )  THEN 
     528!$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
     529             DO jk = 1, jpk 
     530                DO jj = 1, jpj 
     531                   DO ji = 1, jpi 
     532                      zw3d(ji,jj,jk) = prmax(ji,jj,jk) * tmask(ji,jj,jk)   ! Maximum growth rate 
     533                   END DO 
     534                END DO 
     535             END DO 
     536             CALL iom_put( "Mumax"  , zw3d ) 
     537          ENDIF 
     538          IF( iom_use( "MuN" ) .OR. iom_use( "MuD" ) )  THEN 
     539!$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
     540             DO jk = 1, jpk 
     541                DO jj = 1, jpj 
     542                   DO ji = 1, jpi 
     543                      zw3d(ji,jj,jk) = zprbio(ji,jj,jk) * xlimphy(ji,jj,jk) * tmask(ji,jj,jk)  ! Realized growth rate for nanophyto 
     544                   END DO 
     545                END DO 
     546             END DO 
     547             CALL iom_put( "MuN"  , zw3d ) 
    471548              ! 
    472               CALL iom_put( "PPPHY2"  , zw3d ) 
    473           ENDIF 
    474           IF( iom_use( "PPNEWN" ) .OR. iom_use( "PPNEWD" ) )  THEN 
    475 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    476             DO jk = 1, jpk 
    477                DO jj = 1, jpj 
    478                   DO ji = 1, jpi 
    479                      zw3d(ji,jj,jk) = zpronew (ji,jj,jk) * zfact * tmask(ji,jj,jk)  ! new primary production by nanophyto 
    480                   END DO 
    481                END DO 
    482             END DO 
    483               CALL iom_put( "PPNEWN"  , zw3d ) 
    484               ! 
    485 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    486             DO jk = 1, jpk 
    487                DO jj = 1, jpj 
    488                   DO ji = 1, jpi 
    489                      zw3d(ji,jj,jk) = zpronewd (ji,jj,jk) * zfact * tmask(ji,jj,jk)  ! new primary production by nanophyto 
    490                   END DO 
    491                END DO 
    492             END DO 
    493               CALL iom_put( "PPNEWD"  , zw3d ) 
    494           ENDIF 
    495           IF( iom_use( "PBSi" ) )  THEN 
    496 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    497             DO jk = 1, jpk 
    498                DO jj = 1, jpj 
    499                   DO ji = 1, jpi 
    500                      zw3d(ji,jj,jk) = zprorcad(ji,jj,jk) * zfact * tmask(ji,jj,jk) * zysopt(ji,jj,jk) ! biogenic silica production 
    501                   END DO 
    502                END DO 
    503             END DO 
    504               CALL iom_put( "PBSi"  , zw3d ) 
    505           ENDIF 
    506           IF( iom_use( "PFeN" ) .OR. iom_use( "PFeD" ) )  THEN 
    507 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    508             DO jk = 1, jpk 
    509                DO jj = 1, jpj 
    510                   DO ji = 1, jpi 
    511                      zw3d(ji,jj,jk) = zprofen(ji,jj,jk) * zfact * tmask(ji,jj,jk)  ! biogenic iron production by nanophyto 
    512                   END DO 
    513                END DO 
    514             END DO 
    515               CALL iom_put( "PFeN"  , zw3d ) 
    516               ! 
    517 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    518             DO jk = 1, jpk 
    519                DO jj = 1, jpj 
    520                   DO ji = 1, jpi 
    521                      zw3d(ji,jj,jk) = zprofed(ji,jj,jk) * zfact * tmask(ji,jj,jk)  ! biogenic iron production by nanophyto 
    522                   END DO 
    523                END DO 
    524             END DO 
    525               CALL iom_put( "PFeD"  , zw3d ) 
    526           ENDIF 
    527           IF( iom_use( "Mumax" ) )  THEN 
    528 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    529             DO jk = 1, jpk 
    530                DO jj = 1, jpj 
    531                   DO ji = 1, jpi 
    532                      zw3d(ji,jj,jk) = prmax(ji,jj,jk) * tmask(ji,jj,jk)   ! Maximum growth rate 
    533                   END DO 
    534                END DO 
    535             END DO 
    536               CALL iom_put( "Mumax"  , zw3d ) 
    537           ENDIF 
    538           IF( iom_use( "MuN" ) .OR. iom_use( "MuD" ) )  THEN 
    539 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    540             DO jk = 1, jpk 
    541                DO jj = 1, jpj 
    542                   DO ji = 1, jpi 
    543                      zw3d(ji,jj,jk) = zprbio(ji,jj,jk) * xlimphy(ji,jj,jk) * tmask(ji,jj,jk)  ! Realized growth rate for nanophyto 
    544                   END DO 
    545                END DO 
    546             END DO 
    547               CALL iom_put( "MuN"  , zw3d ) 
    548               ! 
    549 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    550             DO jk = 1, jpk 
    551                DO jj = 1, jpj 
    552                   DO ji = 1, jpi 
    553                      zw3d(ji,jj,jk) =  zprdia(ji,jj,jk) * xlimdia(ji,jj,jk) * tmask(ji,jj,jk)  ! Realized growth rate for diatoms 
    554                   END DO 
    555                END DO 
    556             END DO 
    557               CALL iom_put( "MuD"  , zw3d ) 
     549!$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
     550             DO jk = 1, jpk 
     551                DO jj = 1, jpj 
     552                   DO ji = 1, jpi 
     553                      zw3d(ji,jj,jk) =  zprdia(ji,jj,jk) * xlimdia(ji,jj,jk) * tmask(ji,jj,jk)  ! Realized growth rate for diatoms 
     554                   END DO 
     555                END DO 
     556             END DO 
     557             CALL iom_put( "MuD"  , zw3d ) 
    558558          ENDIF 
    559559          IF( iom_use( "LNlight" ) .OR. iom_use( "LDlight" ) )  THEN 
    560560!$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    561             DO jk = 1, jpk 
    562                DO jj = 1, jpj 
    563                   DO ji = 1, jpi 
    564                      zw3d(ji,jj,jk) = zprbio (ji,jj,jk) / (prmax(ji,jj,jk) + rtrn) * tmask(ji,jj,jk) ! light limitation term 
    565                   END DO 
    566                END DO 
    567             END DO 
    568               CALL iom_put( "LNlight"  , zw3d ) 
    569               ! 
    570 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    571             DO jk = 1, jpk 
    572                DO jj = 1, jpj 
    573                   DO ji = 1, jpi 
    574                      zw3d(ji,jj,jk) =  zprdia (ji,jj,jk) / (prmax(ji,jj,jk) + rtrn) * tmask(ji,jj,jk)  ! light limitation term 
    575                   END DO 
    576                END DO 
    577             END DO 
    578               CALL iom_put( "LDlight"  , zw3d ) 
     561             DO jk = 1, jpk 
     562                DO jj = 1, jpj 
     563                   DO ji = 1, jpi 
     564                      zw3d(ji,jj,jk) = zprbio (ji,jj,jk) / (prmax(ji,jj,jk) + rtrn) * tmask(ji,jj,jk) ! light limitation term 
     565                   END DO 
     566                END DO 
     567             END DO 
     568             CALL iom_put( "LNlight"  , zw3d ) 
     569             ! 
     570!$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
     571             DO jk = 1, jpk 
     572                DO jj = 1, jpj 
     573                   DO ji = 1, jpi 
     574                      zw3d(ji,jj,jk) =  zprdia (ji,jj,jk) / (prmax(ji,jj,jk) + rtrn) * tmask(ji,jj,jk)  ! light limitation term 
     575                   END DO 
     576                END DO 
     577             END DO 
     578             CALL iom_put( "LDlight"  , zw3d ) 
    579579          ENDIF 
    580580          IF( iom_use( "TPP" ) )  THEN 
    581581!$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    582             DO jk = 1, jpk 
    583                DO jj = 1, jpj 
    584                   DO ji = 1, jpi 
    585                      zw3d(ji,jj,jk) = ( zprorca(ji,jj,jk) + zprorcad(ji,jj,jk) ) * zfact * tmask(ji,jj,jk)  ! total primary production 
    586                   END DO 
    587                END DO 
    588             END DO 
    589               CALL iom_put( "TPP"  , zw3d ) 
     582             DO jk = 1, jpk 
     583                DO jj = 1, jpj 
     584                   DO ji = 1, jpi 
     585                      zw3d(ji,jj,jk) = ( zprorca(ji,jj,jk) + zprorcad(ji,jj,jk) ) * zfact * tmask(ji,jj,jk)  ! total primary production 
     586                   END DO 
     587                END DO 
     588             END DO 
     589             CALL iom_put( "TPP"  , zw3d ) 
    590590          ENDIF 
    591591          IF( iom_use( "TPNEW" ) )  THEN 
    592592!$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    593             DO jk = 1, jpk 
    594                DO jj = 1, jpj 
    595                   DO ji = 1, jpi 
    596                      zw3d(ji,jj,jk) = ( zpronew(ji,jj,jk) + zpronewd(ji,jj,jk) ) * zfact * tmask(ji,jj,jk)  ! total new production 
    597                   END DO 
    598                END DO 
    599             END DO 
    600               CALL iom_put( "TPNEW"  , zw3d ) 
     593             DO jk = 1, jpk 
     594                DO jj = 1, jpj 
     595                   DO ji = 1, jpi 
     596                      zw3d(ji,jj,jk) = ( zpronew(ji,jj,jk) + zpronewd(ji,jj,jk) ) * zfact * tmask(ji,jj,jk)  ! total new production 
     597                   END DO 
     598                END DO 
     599             END DO 
     600             CALL iom_put( "TPNEW"  , zw3d ) 
    601601          ENDIF 
    602602          IF( iom_use( "TPBFE" ) )  THEN 
    603603!$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    604             DO jk = 1, jpk 
    605                DO jj = 1, jpj 
    606                   DO ji = 1, jpi 
    607                      zw3d(ji,jj,jk) = ( zprofen(ji,jj,jk) + zprofed(ji,jj,jk) ) * zfact * tmask(ji,jj,jk)  ! total biogenic iron production 
    608                   END DO 
    609                END DO 
    610             END DO 
    611               CALL iom_put( "TPBFE"  , zw3d ) 
     604             DO jk = 1, jpk 
     605                DO jj = 1, jpj 
     606                   DO ji = 1, jpi 
     607                      zw3d(ji,jj,jk) = ( zprofen(ji,jj,jk) + zprofed(ji,jj,jk) ) * zfact * tmask(ji,jj,jk)  ! total biogenic iron production 
     608                   END DO 
     609                END DO 
     610             END DO 
     611             CALL iom_put( "TPBFE"  , zw3d ) 
    612612          ENDIF 
    613613          IF( iom_use( "INTPPPHY" ) .OR. iom_use( "INTPPPHY2" ) ) THEN   
     
    708708             ENDDO 
    709709!$OMP END PARALLEL 
    710             CALL iom_put( "INTPBFE" , zw2d ) 
     710             CALL iom_put( "INTPBFE" , zw2d ) 
    711711          ENDIF 
    712712          IF( iom_use( "INTPBSI" ) ) THEN           !   total biogenic silica production  ( vertically integrated ) 
     
    739739           zfact = 1.e+3 * rfact2r 
    740740!$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    741             DO jk = 1, jpk 
    742                DO jj = 1, jpj 
    743                   DO ji = 1, jpi 
    744                      trc3d(ji,jj,jk,jp_pcs0_3d + 4)  = zprorca (ji,jj,jk) * zfact * tmask(ji,jj,jk) 
    745                      trc3d(ji,jj,jk,jp_pcs0_3d + 5)  = zprorcad(ji,jj,jk) * zfact * tmask(ji,jj,jk) 
    746                      trc3d(ji,jj,jk,jp_pcs0_3d + 6)  = zpronew (ji,jj,jk) * zfact * tmask(ji,jj,jk) 
    747                      trc3d(ji,jj,jk,jp_pcs0_3d + 7)  = zpronewd(ji,jj,jk) * zfact * tmask(ji,jj,jk) 
    748                      trc3d(ji,jj,jk,jp_pcs0_3d + 8)  = zprorcad(ji,jj,jk) * zfact * tmask(ji,jj,jk) * zysopt(ji,jj,jk) 
    749                      trc3d(ji,jj,jk,jp_pcs0_3d + 9)  = zprofed (ji,jj,jk) * zfact * tmask(ji,jj,jk) 
     741           DO jk = 1, jpk 
     742              DO jj = 1, jpj 
     743                 DO ji = 1, jpi 
     744                    trc3d(ji,jj,jk,jp_pcs0_3d + 4)  = zprorca (ji,jj,jk) * zfact * tmask(ji,jj,jk) 
     745                    trc3d(ji,jj,jk,jp_pcs0_3d + 5)  = zprorcad(ji,jj,jk) * zfact * tmask(ji,jj,jk) 
     746                    trc3d(ji,jj,jk,jp_pcs0_3d + 6)  = zpronew (ji,jj,jk) * zfact * tmask(ji,jj,jk) 
     747                    trc3d(ji,jj,jk,jp_pcs0_3d + 7)  = zpronewd(ji,jj,jk) * zfact * tmask(ji,jj,jk) 
     748                    trc3d(ji,jj,jk,jp_pcs0_3d + 8)  = zprorcad(ji,jj,jk) * zfact * tmask(ji,jj,jk) * zysopt(ji,jj,jk) 
     749                    trc3d(ji,jj,jk,jp_pcs0_3d + 9)  = zprofed (ji,jj,jk) * zfact * tmask(ji,jj,jk) 
    750750#  if ! defined key_kriest 
    751                      trc3d(ji,jj,jk,jp_pcs0_3d + 10) = zprofen (ji,jj,jk) * zfact * tmask(ji,jj,jk) 
     751                    trc3d(ji,jj,jk,jp_pcs0_3d + 10) = zprofen (ji,jj,jk) * zfact * tmask(ji,jj,jk) 
    752752#  endif 
    753                   END DO 
    754                END DO 
    755             END DO 
     753                 END DO 
     754              END DO 
     755           END DO 
    756756        ENDIF 
    757757     ENDIF 
Note: See TracChangeset for help on using the changeset viewer.