Ignore:
Timestamp:
2020-07-30T17:05:58+02:00 (8 weeks ago)
Author:
techene
Message:

hydrostatic pressure gradient is computed with density anomaly when possible

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r13333_KERNEL-08_techene_gm_HPG_SPG/src/OCE/ISF/isf_oce.F90

    r12077 r13364  
    11MODULE isf_oce 
    22   !!====================================================================== 
    3    !!                       ***  MODULE  sbcisf  *** 
    4    !! Surface module :  compute iceshelf melt and heat flux 
     3   !!                       ***  MODULE  isf_oce  *** 
     4   !! Ice shelves :  ice shelves variables defined in memory 
    55   !!====================================================================== 
    66   !! History :  3.2  !  2011-02  (C.Harris  ) Original code isf cav 
     
    146146   END SUBROUTINE isf_alloc_par 
    147147 
     148    
    148149   SUBROUTINE isf_alloc_cav() 
    149150      !!--------------------------------------------------------------------- 
     
    173174   END SUBROUTINE isf_alloc_cav 
    174175 
     176    
    175177   SUBROUTINE isf_alloc_cpl() 
    176178      !!--------------------------------------------------------------------- 
     
    184186      ierr = 0 
    185187      ! 
    186       ALLOCATE( risfcpl_ssh(jpi,jpj), risfcpl_tsc(jpi,jpj,jpk,jpts), risfcpl_vol(jpi,jpj,jpk), STAT=ialloc ) 
    187       ierr = ierr + ialloc 
    188       ! 
    189       risfcpl_tsc(:,:,:,:) = 0.0 ; risfcpl_vol(:,:,:) = 0.0 ; risfcpl_ssh(:,:) = 0.0 
    190  
    191       IF ( ln_isfcpl_cons) THEN 
    192          ALLOCATE( risfcpl_cons_tsc(jpi,jpj,jpk,jpts) , risfcpl_cons_vol(jpi,jpj,jpk) ,risfcpl_cons_ssh(jpi,jpj), STAT=ialloc ) 
     188      ALLOCATE( risfcpl_ssh(jpi,jpj) , risfcpl_tsc(jpi,jpj,jpk,jpts) , risfcpl_vol(jpi,jpj,jpk) , STAT=ialloc ) 
     189      ierr = ierr + ialloc 
     190      ! 
     191      risfcpl_tsc(:,:,:,:) = 0._wp ; risfcpl_vol(:,:,:) = 0._wp ; risfcpl_ssh(:,:) = 0._wp 
     192 
     193      IF ( ln_isfcpl_cons ) THEN 
     194         ALLOCATE( risfcpl_cons_tsc(jpi,jpj,jpk,jpts) , risfcpl_cons_vol(jpi,jpj,jpk) , risfcpl_cons_ssh(jpi,jpj) , STAT=ialloc ) 
    193195         ierr = ierr + ialloc 
    194196         ! 
    195          risfcpl_cons_tsc(:,:,:,:) = 0.0 ; risfcpl_cons_vol(:,:,:) = 0.0 ; risfcpl_cons_ssh(:,:) = 0.0 
     197         risfcpl_cons_tsc(:,:,:,:) = 0._wp ; risfcpl_cons_vol(:,:,:) = 0._wp ; risfcpl_cons_ssh(:,:) = 0._wp 
    196198         ! 
    197199      END IF 
     
    202204   END SUBROUTINE isf_alloc_cpl 
    203205 
     206    
    204207   SUBROUTINE isf_dealloc_cpl() 
    205208      !!--------------------------------------------------------------------- 
     
    213216      ierr = 0 
    214217      ! 
    215       DEALLOCATE( risfcpl_ssh, risfcpl_tsc, risfcpl_vol, STAT=ialloc ) 
     218      DEALLOCATE( risfcpl_ssh , risfcpl_tsc , risfcpl_vol , STAT=ialloc ) 
    216219      ierr = ierr + ialloc 
    217220      ! 
     
    221224   END SUBROUTINE isf_dealloc_cpl 
    222225 
     226    
    223227   SUBROUTINE isf_alloc() 
    224228      !!--------------------------------------------------------------------- 
     
    233237      ierr = 0       ! set to zero if no array to be allocated 
    234238      ! 
    235       ALLOCATE(fwfisf_par(jpi,jpj)  , fwfisf_par_b(jpi,jpj), & 
    236          &     fwfisf_cav(jpi,jpj)  , fwfisf_cav_b(jpi,jpj), & 
    237          &     fwfisf_oasis(jpi,jpj),            STAT=ialloc ) 
    238       ierr = ierr + ialloc 
    239       ! 
    240       ALLOCATE(risf_par_tsc(jpi,jpj,jpts), risf_par_tsc_b(jpi,jpj,jpts), STAT=ialloc ) 
    241       ierr = ierr + ialloc 
    242       ! 
    243       ALLOCATE(risf_cav_tsc(jpi,jpj,jpts), risf_cav_tsc_b(jpi,jpj,jpts), STAT=ialloc ) 
    244       ierr = ierr + ialloc 
    245       ! 
    246       ALLOCATE(risfload(jpi,jpj), STAT=ialloc) 
    247       ierr = ierr + ialloc 
    248       ! 
    249       ALLOCATE( mskisf_cav(jpi,jpj), STAT=ialloc) 
     239      ALLOCATE( fwfisf_par  (jpi,jpj) , fwfisf_par_b(jpi,jpj) ,    & 
     240         &      fwfisf_cav  (jpi,jpj) , fwfisf_cav_b(jpi,jpj) ,    & 
     241         &      fwfisf_oasis(jpi,jpj)                         , STAT=ialloc ) 
     242      ierr = ierr + ialloc 
     243      ! 
     244      ALLOCATE( risf_par_tsc(jpi,jpj,jpts) , risf_par_tsc_b(jpi,jpj,jpts) , STAT=ialloc ) 
     245      ierr = ierr + ialloc 
     246      ! 
     247      ALLOCATE( risf_cav_tsc(jpi,jpj,jpts) , risf_cav_tsc_b(jpi,jpj,jpts) , STAT=ialloc ) 
     248      ierr = ierr + ialloc 
     249      ! 
     250      ALLOCATE( risfload(jpi,jpj) , STAT=ialloc ) 
     251      ierr = ierr + ialloc 
     252      ! 
     253      ALLOCATE( mskisf_cav(jpi,jpj) , STAT=ialloc ) 
    250254      ierr = ierr + ialloc 
    251255      ! 
     
    254258      ! 
    255259      ! initalisation of fwf and tsc array to 0 
    256       risfload(:,:)       = 0.0_wp 
    257       fwfisf_oasis(:,:)   = 0.0_wp 
    258       fwfisf_par(:,:)     = 0.0_wp    ; fwfisf_par_b(:,:)     = 0.0_wp 
    259       fwfisf_cav(:,:)     = 0.0_wp    ; fwfisf_cav_b(:,:)     = 0.0_wp 
    260       risf_cav_tsc(:,:,:) = 0.0_wp    ; risf_cav_tsc_b(:,:,:) = 0.0_wp 
    261       risf_par_tsc(:,:,:) = 0.0_wp    ; risf_par_tsc_b(:,:,:) = 0.0_wp 
    262       ! 
    263  
     260      risfload    (:,:)   = 0._wp 
     261      fwfisf_oasis(:,:)   = 0._wp 
     262      fwfisf_par  (:,:)   = 0._wp   ;   fwfisf_par_b  (:,:)   = 0._wp 
     263      fwfisf_cav  (:,:)   = 0._wp   ;   fwfisf_cav_b  (:,:)   = 0._wp 
     264      risf_cav_tsc(:,:,:) = 0._wp   ;   risf_cav_tsc_b(:,:,:) = 0._wp 
     265      risf_par_tsc(:,:,:) = 0._wp   ;   risf_par_tsc_b(:,:,:) = 0._wp 
     266      ! 
    264267   END SUBROUTINE isf_alloc 
    265  
     268    
     269   !!====================================================================== 
    266270END MODULE isf_oce 
Note: See TracChangeset for help on using the changeset viewer.