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.
ocfzpt.F90 in trunk/NEMO/OPA_SRC – NEMO

source: trunk/NEMO/OPA_SRC/ocfzpt.F90 @ 15

Last change on this file since 15 was 15, checked in by opalod, 20 years ago

CT : UPDATE001 : First major NEMO update

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.0 KB
Line 
1MODULE ocfzpt
2   !!======================================================================
3   !!                       ***  MODULE  ocfzpt  ***
4   !! Ocean active tracers:  freezing point computation and freezing area
5   !!======================================================================
6   
7   !!----------------------------------------------------------------------
8   !! * Modules used
9   USE oce             ! ocean dynamics and tracers
10   USE dom_oce         ! ocean space and time domain
11
12   IMPLICIT NONE
13   PRIVATE
14
15   !! * Routine accessibility
16   PUBLIC oc_fz_pt        ! called by opa.F90 and step.F90
17
18   !! * Shared module variables   
19   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   &  !:
20      freeze, freezn,  &  !: after and now ice mask (0 or 1)
21      fzptb, fzptn        !: before and now freezing point
22   !!----------------------------------------------------------------------
23   !! OPA 8.5, LODYC-IPSL (2002)
24   !!----------------------------------------------------------------------
25
26CONTAINS
27
28   SUBROUTINE oc_fz_pt
29      !!----------------------------------------------------------------------
30      !!                     ***  ROUTINE oc_fz_pt  ***
31      !!
32      !! ** Purpose : - Calculate ocean surface freezing temperature
33      !!              - Calculate related boolean for now ice distribution
34      !!
35      !! ** Method  :   Caution, freezing point only for jackett & McDougall eos
36      !!
37      !! ** Action  : - fzptn  : now freezing temperature at ocean surface
38      !!              - fzptb  : before freezing temperature at ocean surface
39      !!              - freezn : boolean indicating freezing conditions at the
40      !!                ocean surface at time step "now"
41      !!
42      !! History :
43      !!        !  94-08  (M.-A. Filiberti)  Original code
44      !!   8.5  !  02-08  (G. Madec)  F90: Free form
45      !!----------------------------------------------------------------------
46      !! * Local declarations
47      INTEGER ::  ji, jj      ! dummy loop indices
48      !!----------------------------------------------------------------------     
49
50!CDIR NOVERRCHK
51      DO jj = 1, jpj
52!CDIR NOVERRCHK
53         DO ji = 1, jpi
54            fzptb(ji,jj) = fzptn(ji,jj)        ! swap freezing point array
55
56            !                                  ! ocean local surface freezing temperature
57            !                                  ! sn >= 0 : this is verified in stpctl at each time step
58            fzptn (ji,jj) = ( -0.0575 + 1.710523e-3 * SQRT( sn(ji,jj,1) )   &
59                                      - 2.154996e-4 *       sn(ji,jj,1)   ) * sn(ji,jj,1)   !!   &
60            !!                        - 7.53e-4 * pressure
61
62            !                                  ! Define boolean related to freezing conditions
63            freezn(ji,jj) = tmask(ji,jj,1) * MAX( 0., SIGN( 1., fzptn(ji,jj) - tn(ji,jj,1) )  )
64         END DO
65      END DO
66
67   END SUBROUTINE oc_fz_pt
68
69   !!======================================================================
70END MODULE ocfzpt
Note: See TracBrowser for help on using the repository browser.