Changeset 1329


Ignore:
Timestamp:
2009-02-20T11:32:52+01:00 (12 years ago)
Author:
cetlod
Message:

update modules to take into account the mask land points in NetCDF outputs, see ticket:322

Location:
trunk/NEMO/TOP_SRC
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/TOP_SRC/C14b/trcsms_c14b.F90

    r1252 r1329  
    1414   !!   trc_sms_c14b  :  compute and add C14 suface forcing to C14 trends 
    1515   !!---------------------------------------------------------------------- 
    16    USE daymod       ! calendar 
    1716   USE oce_trc      ! Ocean variables 
    1817   USE par_trc      ! TOP parameters 
  • trunk/NEMO/TOP_SRC/CFC/trcsms_cfc.F90

    r1255 r1329  
    1515   !!   trc_cfc_cst :  sets constants for CFC surface forcing computation 
    1616   !!---------------------------------------------------------------------- 
    17    USE daymod       ! calendar 
    1817   USE oce_trc      ! Ocean variables 
    1918   USE par_trc      ! TOP parameters 
  • trunk/NEMO/TOP_SRC/PISCES/p4zbio.F90

    r1289 r1329  
    128128 
    129129# if defined key_trc_dia3d && defined key_kriest 
    130       trc3d(:,:,:,jp_pcs0_3d + 10) = tra(:,:,:,jpcal) * xnegtr(:,:,:) * 1.e3 * rfact2r 
     130      trc3d(:,:,:,jp_pcs0_3d + 10) = tra(:,:,:,jpcal) & 
     131     &                              * xnegtr(:,:,:) * 1.e3 * rfact2r  * tmask(:,:,:) 
    131132# endif 
    132133      ! 
  • trunk/NEMO/TOP_SRC/PISCES/p4zflx.F90

    r1298 r1329  
    169169# if defined key_trc_diaadd 
    170170            ! Save diagnostics 
    171             trc2d(ji,jj,jp_pcs0_2d    ) = ( zfld - zflu ) * 1000. 
    172             trc2d(ji,jj,jp_pcs0_2d + 1) = ( zfld16 - zflu16 ) * 1000. 
    173             trc2d(ji,jj,jp_pcs0_2d + 2) = zkgco2(ji,jj) 
    174             trc2d(ji,jj,jp_pcs0_2d + 3) = atcco2 - zh2co3(ji,jj) / ( chemc(ji,jj,1) + rtrn ) 
     171            trc2d(ji,jj,jp_pcs0_2d    ) = ( zfld - zflu ) * 1000.  * tmask(ji,jj,1) 
     172            trc2d(ji,jj,jp_pcs0_2d + 1) = ( zfld16 - zflu16 ) * 1000. * tmask(ji,jj,1) 
     173            trc2d(ji,jj,jp_pcs0_2d + 2) = zkgco2(ji,jj) * tmask(ji,jj,1) 
     174            trc2d(ji,jj,jp_pcs0_2d + 3) = atcco2 - zh2co3(ji,jj) / ( chemc(ji,jj,1) + rtrn ) * tmask(ji,jj,1) 
    175175# endif 
    176176         END DO 
  • trunk/NEMO/TOP_SRC/PISCES/p4zlys.F90

    r1152 r1329  
    6666      IF( kt == nittrc000  )   CALL p4z_lys_init      ! Initialization (first time-step only) 
    6767 
    68  
     68      zco3(:,:,:) = 0. 
    6969 
    7070      !     ------------------------------------------- 
     
    150150      END DO 
    151151 
    152 # if defined key_trc_dia3d 
    153          trc3d(:,:,:,jp_pcs0_3d    ) = hi(:,:,:) 
    154          trc3d(:,:,:,jp_pcs0_3d + 1) = zco3(:,:,:) 
    155          trc3d(:,:,:,jp_pcs0_3d + 2) = aksp(:,:,:) / calcon 
     152# if defined key_trc_diaadd &&  defined key_trc_dia3d 
     153      DO jk = 1, jpk 
     154         DO jj = 1, jpj 
     155            DO ji = 1, jpi 
     156               trc3d(ji,jj,jk,jp_pcs0_3d    ) = hi  (ji,jj,jk)          * tmask(ji,jj,jk) 
     157               trc3d(ji,jj,jk,jp_pcs0_3d + 1) = zco3(ji,jj,jk)          * tmask(ji,jj,jk) 
     158               trc3d(ji,jj,jk,jp_pcs0_3d + 2) = aksp(ji,jj,jk) / calcon * tmask(ji,jj,jk) 
     159            ENDDO 
     160         ENDDO 
     161      ENDDO 
    156162# endif 
    157163      ! 
  • trunk/NEMO/TOP_SRC/PISCES/p4zopt.F90

    r1271 r1329  
    259259 
    260260# if defined key_trc_diaadd 
    261       trc2d(:,:,jp_pcs0_2d + 10) = heup(:,:) 
     261      trc2d(:,:,jp_pcs0_2d + 10) = heup(:,:) * tmask(:,:,1) 
    262262# endif 
    263263      ! 
  • trunk/NEMO/TOP_SRC/PISCES/p4zprod.F90

    r1298 r1329  
    359359      ENDIF 
    360360 
    361 #if defined key_trc_dia3d 
     361#if defined key_trc_diaadd && defined key_trc_dia3d 
    362362      zrfact2 = 1.e3 * rfact2r 
    363363      !   Supplementary diagnostics 
    364       trc3d(:,:,:,jp_pcs0_3d + 3)  = etot(:,:,:) 
    365       trc3d(:,:,:,jp_pcs0_3d + 4)  = zprorca(:,:,:)  * zrfact2 
    366       trc3d(:,:,:,jp_pcs0_3d + 5)  = zprorcad(:,:,:) * zrfact2 
    367       trc3d(:,:,:,jp_pcs0_3d + 6)  = zpronew(:,:,:)  * zrfact2 
    368       trc3d(:,:,:,jp_pcs0_3d + 7)  = zpronewd(:,:,:) * zrfact2 
    369       trc3d(:,:,:,jp_pcs0_3d + 8)  = zprorcad(:,:,:) * zysopt(:,:,:) * zrfact2 
    370       trc3d(:,:,:,jp_pcs0_3d + 9) = zprofed(:,:,:) * zrfact2 
     364      DO jk = 1, jpk 
     365         DO jj = 1, jpj 
     366            DO ji = 1, jpi  
     367               trc3d(ji,jj,jk,jp_pcs0_3d + 3)  = etot(ji,jj,jk)               * tmask(ji,jj,jk) 
     368               trc3d(ji,jj,jk,jp_pcs0_3d + 4)  = zprorca (ji,jj,jk) * zrfact2 * tmask(ji,jj,jk) 
     369               trc3d(ji,jj,jk,jp_pcs0_3d + 5)  = zprorcad(ji,jj,jk) * zrfact2 * tmask(ji,jj,jk) 
     370               trc3d(ji,jj,jk,jp_pcs0_3d + 6)  = zpronew (ji,jj,jk) * zrfact2 * tmask(ji,jj,jk) 
     371               trc3d(ji,jj,jk,jp_pcs0_3d + 7)  = zpronewd(ji,jj,jk) * zrfact2 * tmask(ji,jj,jk) 
     372               trc3d(ji,jj,jk,jp_pcs0_3d + 8)  = zprorcad(ji,jj,jk) * zrfact2 * tmask(ji,jj,jk) & 
     373     &                                         * zysopt(ji,jj,jk) 
     374               trc3d(ji,jj,jk,jp_pcs0_3d + 9)  = zprofed (ji,jj,jk) * zrfact2 * tmask(ji,jj,jk) 
    371375#if ! defined key_kriest 
    372       trc3d(:,:,:,jp_pcs0_3d + 10) = zprofen(:,:,:) * zrfact2 
     376               trc3d(ji,jj,jk,jp_pcs0_3d + 10) = zprofen (ji,jj,jk) * zrfact2 * tmask(ji,jj,jk) 
    373377#endif 
     378            ENDDO 
     379         ENDDO 
     380      ENDDO 
    374381#endif 
    375382 
  • trunk/NEMO/TOP_SRC/PISCES/p4zsed.F90

    r1255 r1329  
    330330      DO jj = 1,jpj 
    331331         DO ji = 1,jpi 
    332             trc2d(ji,jj,jp_pcs0_2d + 11) = zirondep(ji,jj,1) * 1.e+3 * rfact2r * fse3t(ji,jj,1) 
    333             trc2d(ji,jj,jp_pcs0_2d + 12) = znitrpot(ji,jj,1) * 1.e-7 * fse3t(ji,jj,1) * 1.e+3 / rfact2 
     332            trc2d(ji,jj,jp_pcs0_2d + 11) = zirondep(ji,jj,1) * 1.e+3 * rfact2r & 
     333      &                                   * fse3t(ji,jj,1) * tmask(ji,jj,1) 
     334            trc2d(ji,jj,jp_pcs0_2d + 12) = znitrpot(ji,jj,1) * 1.e-7 & 
     335      &                                   * fse3t(ji,jj,1) * 1.e+3 / rfact2 * tmask(ji,jj,1) 
    334336         END DO 
    335337      END DO 
  • trunk/NEMO/TOP_SRC/PISCES/p4zsink.F90

    r1264 r1329  
    279279      END DO 
    280280 
    281 #    if defined key_trc_dia3d 
     281#if defined key_trc_diaadd 
    282282      zrfact2 = 1.e3 * rfact2r 
    283       trc2d(:,:,  jp_pcs0_2d + 4)   = sinking (:,:,iksed+1) * zrfact2 
    284       trc2d(:,:,  jp_pcs0_2d + 5)   = sinking2(:,:,iksed+1) * zrfact2 
    285       trc2d(:,:,  jp_pcs0_2d + 6)   = sinkfer (:,:,iksed+1) * zrfact2 
    286       trc2d(:,:,  jp_pcs0_2d + 8)   = sinksil (:,:,iksed+1) * zrfact2 
    287       trc2d(:,:,  jp_pcs0_2d + 9)   = sinkcal (:,:,iksed+1) * zrfact2 
    288       trc3d(:,:,:,jp_pcs0_3d + 11) = sinking (:,:,:)       * zrfact2 
    289       trc3d(:,:,:,jp_pcs0_3d + 12) = sinking2(:,:,:)       * zrfact2 
    290       trc3d(:,:,:,jp_pcs0_3d + 13) = sinksil (:,:,:)       * zrfact2 
    291       trc3d(:,:,:,jp_pcs0_3d + 14) = sinkcal (:,:,:)       * zrfact2 
    292       trc3d(:,:,:,jp_pcs0_3d + 15) = znum3d  (:,:,:) 
    293       trc3d(:,:,:,jp_pcs0_3d + 16) = wsbio3  (:,:,:) 
    294       trc3d(:,:,:,jp_pcs0_3d + 17) = wsbio4  (:,:,:) 
    295 #    endif 
     283      DO jj = 1, jpj  
     284         DO ji = 1, jpi 
     285            trc2d(ji,jj, jp_pcs0_2d + 4) = sinking (ji,jj,iksed+1) * zrfact2 * tmask(ji,jj,1) 
     286            trc2d(ji,jj, jp_pcs0_2d + 5) = sinking2(ji,jj,iksed+1) * zrfact2 * tmask(ji,jj,1) 
     287            trc2d(ji,jj, jp_pcs0_2d + 6) = sinkfer (ji,jj,iksed+1) * zrfact2 * tmask(ji,jj,1) 
     288            trc2d(ji,jj, jp_pcs0_2d + 7) = sinksil (ji,jj,iksed+1) * zrfact2 * tmask(ji,jj,1) 
     289            trc2d(ji,jj, jp_pcs0_2d + 8) = sinkcal (ji,jj,iksed+1) * zrfact2 * tmask(ji,jj,1) 
     290         ENDDO 
     291      ENDDO 
     292#  if defined key_trc_dia3d 
     293      DO jk = 1, jpk 
     294         DO jj = 1, jpj 
     295            DO ji = 1, jpi 
     296               trc3d(ji,jj,jk,jp_pcs0_3d + 11) = sinking (ji,jj,jk) * zrfact2 * tmask(ji,jj,jk) 
     297               trc3d(ji,jj,jk,jp_pcs0_3d + 12) = sinking2(ji,jj,jk) * zrfact2 * tmask(ji,jj,jk) 
     298               trc3d(ji,jj,jk,jp_pcs0_3d + 13) = sinksil (ji,jj,jk) * zrfact2 * tmask(ji,jj,jk) 
     299               trc3d(ji,jj,jk,jp_pcs0_3d + 14) = sinkcal (ji,jj,jk) * zrfact2 * tmask(ji,jj,jk) 
     300               trc3d(ji,jj,jk,jp_pcs0_3d + 15) = znum3d  (ji,jj,jk)           * tmask(ji,jj,jk) 
     301               trc3d(ji,jj,jk,jp_pcs0_3d + 16) = wsbio3  (ji,jj,jk)           * tmask(ji,jj,jk) 
     302               trc3d(ji,jj,jk,jp_pcs0_3d + 17) = wsbio4  (ji,jj,jk)           * tmask(ji,jj,jk) 
     303            ENDDO 
     304         ENDDO 
     305      ENDDO 
     306#  endif 
     307 
     308#endif 
    296309      ! 
    297310       IF(ln_ctl)   THEN  ! print mean trends (used for debugging) 
     
    598611# if defined key_trc_diaadd 
    599612      zrfact2 = 1.e3 * rfact2r 
    600       trc2d(:,:, jp_pcs0_2d + 4) = sinking (:,:,iksed+1) * zrfact2 
    601       trc2d(:,:, jp_pcs0_2d + 5) = sinking2(:,:,iksed+1) * zrfact2 
    602       trc2d(:,:, jp_pcs0_2d + 6) = sinkfer (:,:,iksed+1) * zrfact2 
    603       trc2d(:,:, jp_pcs0_2d + 7) = sinkfer2(:,:,iksed+1) * zrfact2 
    604       trc2d(:,:, jp_pcs0_2d + 8) = sinksil (:,:,iksed+1) * zrfact2 
    605       trc2d(:,:, jp_pcs0_2d + 9) = sinkcal (:,:,iksed+1) * zrfact2 
     613      DO jj = 1, jpj 
     614         DO ji = 1, jpi 
     615            trc2d(ji,jj, jp_pcs0_2d + 4) = sinking (ji,jj,iksed+1) * zrfact2 * tmask(ji,jj,1) 
     616            trc2d(ji,jj, jp_pcs0_2d + 5) = sinking2(ji,jj,iksed+1) * zrfact2 * tmask(ji,jj,1) 
     617            trc2d(ji,jj, jp_pcs0_2d + 6) = sinkfer (ji,jj,iksed+1) * zrfact2 * tmask(ji,jj,1) 
     618            trc2d(ji,jj, jp_pcs0_2d + 7) = sinkfer2(ji,jj,iksed+1) * zrfact2 * tmask(ji,jj,1) 
     619            trc2d(ji,jj, jp_pcs0_2d + 8) = sinksil (ji,jj,iksed+1) * zrfact2 * tmask(ji,jj,1) 
     620            trc2d(ji,jj, jp_pcs0_2d + 9) = sinkcal (ji,jj,iksed+1) * zrfact2 * tmask(ji,jj,1) 
     621         ENDDO 
     622      ENDDO 
    606623# endif 
    607624      ! 
  • trunk/NEMO/TOP_SRC/SED/sed.F90

    r1250 r1329  
    2121      rdt      =>   rdt         !: time step for the dynamics 
    2222 
    23    USE daymod , ONLY :                 & 
    24       nyear     =>   nyear,   &  !: Current year 
    25       nmonth    =>   nmonth,  &  !: Current month 
    26       nday      =>   nday        !: Current day 
     23   USE daymod , ONLY :            & 
     24      nyear     =>   nyear    ,   & !: Current year 
     25      nmonth    =>   nmonth   ,   & !: Current month 
     26      nday      =>   nday     ,   & !: Current day 
     27      ndastp    =>   ndastp   ,   & !: time step date in year/month/day aammjj 
     28      nday_year =>   nday_year,   & !: curent day counted from jan 1st of the current year 
     29      adatrj    =>   adatrj         !: number of elapsed days since the begining of the run 
     30   !                                !: it is the accumulated duration of previous runs 
     31   !                                !: that may have been run with different time steps. 
    2732 
    2833 
  • trunk/NEMO/TOP_SRC/SED/sedwri.F90

    r1318 r1329  
    211211         ENDDO 
    212212 
    213          !Fluxes 
     213         ! Fluxes 
    214214         DO jn = 1, jpdia2dsed 
    215215            cltra  = seddia2d(jn)   ! short title for 2D diagnostic 
     
    227227         WRITE(numsed,*) 'End of NetCDF sediment output file Initialization' 
    228228 
    229       ELSE 
    230  
    231  
    232          ! Start writing data 
    233          ! --------------------- 
    234           DO jn = 1, jptrased 
    235              cltra = sedtrcd(jn) ! short title for 3D diagnostic 
    236              CALL histwrite( nised, cltra, it, trcsedi(:,:,:,jn), ndimt52, ndext52 ) 
    237           END DO 
    238  
    239           DO jn = 1, jpdia3dsed 
    240              cltra = seddia3d(jn) ! short title for 3D diagnostic 
    241              CALL histwrite( nised, cltra, it, flxsedi3d(:,:,:,jn), ndimt52, ndext52 ) 
    242           END DO 
    243  
    244           DO jn = 1, jpdia2dsed 
     229       ENDIF 
     230 
     231       ! Start writing data 
     232       ! --------------------- 
     233       DO jn = 1, jptrased 
     234          cltra = sedtrcd(jn) ! short title for 3D diagnostic 
     235          CALL histwrite( nised, cltra, it, trcsedi(:,:,:,jn), ndimt52, ndext52 ) 
     236       END DO 
     237 
     238       DO jn = 1, jpdia3dsed 
     239          cltra = seddia3d(jn) ! short title for 3D diagnostic 
     240          CALL histwrite( nised, cltra, it, flxsedi3d(:,:,:,jn), ndimt52, ndext52 ) 
     241       END DO 
     242 
     243       DO jn = 1, jpdia2dsed 
    245244             cltra = seddia2d(jn) ! short title for 2D diagnostic 
    246245             CALL histwrite( nised, cltra, it, flxsedi2d(:,:,jn  ), ndimt51, ndext51 ) 
    247           END DO 
    248  
    249       ENDIF 
    250  
    251 ! 3. Closing all files 
    252 ! -------------------- 
     246       END DO 
     247 
     248 
     249      ! 3. Closing all files 
     250      ! -------------------- 
    253251      IF( kt == nitsedend  ) THEN 
    254252          CALL histclo( nised ) 
  • trunk/NEMO/TOP_SRC/oce_trc.F90

    r1177 r1329  
    143143   USE daymod  , ONLY :   nmonth    =>   nmonth      !: Current month 
    144144   USE daymod  , ONLY :   nday      =>   nday        !: Current day 
     145   USE daymod  , ONLY :   adatrj    =>   adatrj      !: number of elapsed days since the begining of the run 
     146   !                                                 !: it is the accumulated duration of previous runs 
     147   !                                                 !: that may have been run with different time steps. 
    145148 
    146149   !* ocean fields: here now and after fields * 
     
    155158   USE oce , ONLY :   rhd     =>    rhd     !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units) 
    156159   USE oce , ONLY :   hdivn   =>    hdivn   !: horizontal divergence (1/s) 
    157  
    158  
     160#if defined key_off_tra 
     161   USE oce , ONLY :   gtu     =>    gtu     !: t-, s- and rd horizontal gradient at u- and 
     162   USE oce , ONLY :   gsu     =>    gsu     !: v-points at bottom ocean level 
     163   USE oce , ONLY :   gru     =>    gru     !: 
     164   USE oce , ONLY :   gtv     =>    gtv     !: 
     165   USE oce , ONLY :   gsv     =>    gsv     !: 
     166   USE oce , ONLY :   grv     =>    grv     !:  
     167#endif 
    159168   USE lib_mpp , ONLY :   lk_mpp    =>  lk_mpp       !: Mpp flag 
    160169 
  • trunk/NEMO/TOP_SRC/trcdia.F90

    r1318 r1329  
    4040   INTEGER  ::   ndimt50   !: number of ocean points in index array 
    4141   INTEGER  ::   ndimt51   !: number of ocean points in index array 
    42    REAL(wp) ::   zjulian   !: ????   not DOCTOR ! 
     42   REAL(wp) ::   xjulian   !: ????   not DOCTOR ! 
    4343   INTEGER , DIMENSION (jpij*jpk) ::   ndext50   !: integer arrays for ocean 3D index 
    4444   INTEGER , DIMENSION (jpij)     ::   ndext51   !: integer arrays for ocean surface index 
     
    151151 
    152152         ! Compute julian date from starting date of the run 
    153          CALL ymds2ju( nyear, nmonth, nday, rdt, zjulian ) 
    154          zjulian = zjulian - adatrj   !   set calendar origin to the beginning of the experiment 
     153         CALL ymds2ju( nyear, nmonth, nday, rdt, xjulian ) 
     154         xjulian = xjulian - adatrj   !   set calendar origin to the beginning of the experiment 
    155155         IF(lwp)WRITE(numout,*)' '   
    156156         IF(lwp)WRITE(numout,*)' Date 0 used :', nittrc000                         & 
    157157            &                 ,' YEAR ', nyear, ' MONTH ', nmonth, ' DAY ', nday   & 
    158             &                 ,'Julian day : ', zjulian     
     158            &                 ,'Julian day : ', xjulian     
    159159         IF(lwp) WRITE(numout,*) ' indexes of zoom = ', iimi, iima, ijmi, ijma,  & 
    160160            &                    ' limit storage in depth = ', ipk 
     
    168168         CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,     & 
    169169            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,         &  
    170             &          0, zjulian, zdt, nhorit5, nit5 , domain_id=nidom) 
     170            &          0, xjulian, zdt, nhorit5, nit5 , domain_id=nidom) 
    171171! Vertical grid for tracer : gdept 
    172172         CALL histvert( nit5, 'deptht', 'Vertical T levels', & 
     
    298298               CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,       & 
    299299                  &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,   & 
    300                   &          0, zjulian, rdt, nhorit6(jn),           & 
     300                  &          0, xjulian, rdt, nhorit6(jn),           & 
    301301                  &          nit6(jn) , domain_id=nidom ) 
    302302 
     
    536536         CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,             & 
    537537            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,         & 
    538             &          0, zjulian, zdt, nhoritd, nitd , domain_id=nidom ) 
     538            &          0, xjulian, zdt, nhoritd, nitd , domain_id=nidom ) 
    539539 
    540540         ! Vertical grid for 2d and 3d arrays 
     
    682682         CALL histbeg(clhstnam, jpi, glamt, jpj, gphit,      & 
    683683            &    iimi, iima-iimi+1, ijmi, ijma-ijmi+1,          & 
    684             &    0, zjulian, rdt, nhoritb, nitb , domain_id=nidom) 
     684            &    0, xjulian, rdt, nhoritb, nitb , domain_id=nidom) 
    685685         ! Vertical grid for biological trends 
    686686         CALL histvert(nitb, 'deptht', 'Vertical T levels',  & 
  • trunk/NEMO/TOP_SRC/trcrst.F90

    r1287 r1329  
    2424   USE lib_mpp 
    2525   USE iom 
    26    USE daymod 
    2726    
    2827   IMPLICIT NONE 
Note: See TracChangeset for help on using the changeset viewer.