Ignore:
Timestamp:
Jun 4, 2007 8:07:41 AM (17 years ago)
Author:
raasch
Message:

more preliminary uncomplete changes for ocean version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/flow_statistics.f90

    r94 r96  
    44! Actual revisions:
    55! -----------------
    6 ! Calculation of Deardorff velocity scale adjusted to be used with the ocean
     6! Statistics for ocean version (salinity, density) added,
     7! calculation of Deardorff velocity scale adjusted to be used with the ocean
    78! version (HAS STILL TO BE COMPLETED!!!)
    89!
     
    123124          ENDDO
    124125       ENDDO
     126
     127!
     128!--    Horizontally averaged profile of salinity
     129       IF ( ocean )  THEN
     130          !$OMP DO
     131          DO  i = nxl, nxr
     132             DO  j =  nys, nyn
     133                DO  k = nzb_s_outer(j,i), nzt+1
     134                   sums_l(k,23,tn)  = sums_l(k,23,tn) + &
     135                                      sa(k,j,i) * rmask(j,i,sr)
     136                ENDDO
     137             ENDDO
     138          ENDDO
     139       ENDIF
    125140
    126141!
     
    177192             sums_l(:,2,0) = sums_l(:,2,0) + sums_l(:,2,i)
    178193             sums_l(:,4,0) = sums_l(:,4,0) + sums_l(:,4,i)
     194             IF ( ocean )  THEN
     195                sums_l(:,23,0) = sums_l(:,23,0) + sums_l(:,23,i)
     196             ENDIF
    179197             IF ( humidity )  THEN
    180198                sums_l(:,41,0) = sums_l(:,41,0) + sums_l(:,41,i)
     
    200218       CALL MPI_ALLREDUCE( sums_l(nzb,4,0), sums(nzb,4), nzt+2-nzb, MPI_REAL, &
    201219                           MPI_SUM, comm2d, ierr )
     220       IF ( ocean )  THEN
     221          CALL MPI_ALLREDUCE( sums_l(nzb,23,0), sums(nzb,23), nzt+2-nzb, &
     222                              MPI_REAL, MPI_SUM, comm2d, ierr )
     223       ENDIF
    202224       IF ( humidity ) THEN
    203225          CALL MPI_ALLREDUCE( sums_l(nzb,44,0), sums(nzb,44), nzt+2-nzb, &
     
    221243       sums(:,2) = sums_l(:,2,0)
    222244       sums(:,4) = sums_l(:,4,0)
     245       IF ( ocean )  sums(:,23) = sums_l(:,23,0)
    223246       IF ( humidity ) THEN
    224247          sums(:,44) = sums_l(:,44,0)
     
    241264       hom(:,1,2,sr) = sums(:,2)             ! v
    242265       hom(:,1,4,sr) = sums(:,4)             ! pt
     266
     267!
     268!--    Salinity
     269       IF ( ocean )  THEN
     270          sums(:,23) = sums(:,23) / ngp_2dh_outer(:,sr)
     271          hom(:,1,23,sr) = sums(:,23)             ! sa
     272       ENDIF
    243273
    244274!
     
    377407
    378408!
     409!--             Salinity flux w"sa"
     410                IF ( ocean )  THEN
     411                   sums_l(k,65,tn) = sums_l(k,65,tn)                           &
     412                                         - 0.5 * ( kh(k,j,i) + kh(k+1,j,i) )   &
     413                                               * ( sa(k+1,j,i) - sa(k,j,i) )   &
     414                                               * ddzu(k+1) * rmask(j,i,sr)
     415                ENDIF
     416
     417!
    379418!--             Buoyancy flux, water flux (humidity flux) w"q"
    380419                IF ( humidity ) THEN
     
    420459                sums_l(nzb,61,tn) = sums_l(nzb,61,tn) + &
    421460                                    0.0 * rmask(j,i,sr)           ! v"pt"
     461                IF ( ocean )  THEN
     462                   sums_l(nzb,65,tn) = sums_l(nzb,65,tn) + &
     463                                       saswsb(j,i) * rmask(j,i,sr)  ! w"sa"
     464                ENDIF
    422465                IF ( humidity )  THEN
    423466                   sums_l(nzb,48,tn) = sums_l(nzb,48,tn) + &
     
    450493                sums_l(nzt,61,tn) = sums_l(nzt,61,tn) + &
    451494                                    0.0 * rmask(j,i,sr)           ! v"pt"
     495                IF ( ocean )  THEN
     496                   sums_l(nzt,65,tn) = sums_l(nzt,65,tn) + &
     497                                       saswst(j,i) * rmask(j,i,sr)  ! w"sa"
     498                ENDIF
    452499                IF ( humidity )  THEN
    453500                   sums_l(nzt,48,tn) = sums_l(nzt,48,tn) + &
     
    508555                sums_l(k,36,tn) = sums_l(k,36,tn) + pts**2 * w(k,j,i) * &
    509556                                                    rmask(j,i,sr)
     557
     558!
     559!--             Salinity flux and density (density does not belong to here,
     560!--             but so far there is no suitable place to calculate)
     561                IF ( ocean )  THEN
     562                   pts = 0.5 * ( sa(k,j,i)   - hom(k,1,23,sr) + &
     563                                 sa(k+1,j,i) - hom(k+1,1,23,sr) )
     564                   sums_l(k,66,tn) = sums_l(k,66,tn) + pts * w(k,j,i) * &
     565                                                       rmask(j,i,sr)
     566                   sums_l(k,64,tn) = sums_l(k,64,tn) + rho(k,j,i) * &
     567                                                       rmask(j,i,sr)
     568                ENDIF
    510569
    511570!
     
    739798       hom(:,1,21,sr) = sums(:,21)     ! w*pt*BC
    740799       hom(:,1,22,sr) = sums(:,16) + sums(:,21)    ! wptBC
    741                                        ! profiles 23-29 left empty for initial
     800                                       ! profile 24 is initial profile (sa)
     801                                       ! profiles 25-29 left empty for initial
    742802                                       ! profiles
    743803       hom(:,1,30,sr) = sums(:,30)     ! u*2
     
    771831       hom(:,1,62,sr) = sums(:,62)     ! v*pt*
    772832       hom(:,1,63,sr) = sums(:,61) + sums(:,62)    ! vpt_t
     833       hom(:,1,64,sr) = sums(:,64)     ! rho
     834       hom(:,1,65,sr) = sums(:,65)     ! w"sa"
     835       hom(:,1,66,sr) = sums(:,66)     ! w*sa*
     836       hom(:,1,67,sr) = sums(:,65) + sums(:,66)    ! wsa
    773837
    774838       hom(:,1,pr_palm-1,sr) = sums(:,pr_palm-1)
Note: See TracChangeset for help on using the changeset viewer.