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 2587 for branches/TAM_V3_0/NEMOTAM/OPATAM_SRC/oce_tam.F90 – NEMO

Ignore:
Timestamp:
2011-02-15T12:58:59+01:00 (13 years ago)
Author:
vidard
Message:

refer to ticket #798

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/TAM_V3_0/NEMOTAM/OPATAM_SRC/oce_tam.F90

    r1885 r2587  
    3434   PUBLIC & 
    3535      & oce_tam_init, & !: Initialize the TAM fields 
     36      & oce_tam_deallocate, & 
    3637                    !: 
    3738      & ub_tl,    & !: Tangent linear of before u-component velocity 
     
    788789 
    789790   END SUBROUTINE oce_tam_init 
     791   SUBROUTINE oce_tam_deallocate ( kindic ) 
     792      !!----------------------------------------------------------------------- 
     793      !! 
     794      !!                  ***  ROUTINE oce_tam_deallocate  *** 
     795      !! 
     796      !! ** Purpose : Deallocate the tangent linear and  
     797      !!              adjoint arrays 
     798      !! 
     799      !! ** Method  : kindic = 0  deallocate both tl and ad variables 
     800      !!              kindic = 1  deallocate only tl variables 
     801      !!              kindic = 2  deallocate only ad variables 
     802      !! 
     803      !! ** Action  : 
     804      !!                    
     805      !! References :  
     806      !! 
     807      !! History : 
     808      !!        ! 2010-06 (A. Vidard) initial version 
     809      !!----------------------------------------------------------------------- 
     810      !! * Arguments 
     811      INTEGER, INTENT(IN) :: & 
     812         & kindic        ! indicate which variables to allocate/initialize 
     813       
     814      !! * Local declarations 
     815      ! Dellocate tangent linear variable arrays 
     816      ! --------------------------------------- 
     817       
     818      IF ( kindic == 0 .OR. kindic == 1 ) THEN 
     819 
     820         IF ( ALLOCATED(ub_tl) ) DEALLOCATE( ub_tl ) 
     821 
     822         IF ( ALLOCATED(un_tl) ) DEALLOCATE( un_tl ) 
     823 
     824         IF ( ALLOCATED(ua_tl) ) DEALLOCATE( ua_tl ) 
     825 
     826         IF ( ALLOCATED(vb_tl) ) DEALLOCATE( vb_tl ) 
     827 
     828         IF ( ALLOCATED(vn_tl) ) DEALLOCATE( vn_tl ) 
     829 
     830         IF ( ALLOCATED(va_tl) ) DEALLOCATE( va_tl ) 
     831 
     832         IF ( ALLOCATED(wn_tl) ) DEALLOCATE( wn_tl ) 
     833 
     834         IF ( ALLOCATED(rotb_tl) ) DEALLOCATE( rotb_tl ) 
     835             
     836         IF ( ALLOCATED(rotn_tl) ) DEALLOCATE( rotn_tl ) 
     837             
     838         IF ( ALLOCATED(hdivb_tl) ) DEALLOCATE( hdivb_tl ) 
     839 
     840         IF ( ALLOCATED(hdivn_tl) ) DEALLOCATE( hdivn_tl ) 
     841             
     842         IF ( ALLOCATED(tb_tl) ) DEALLOCATE( tb_tl ) 
     843             
     844         IF ( ALLOCATED(tn_tl) ) DEALLOCATE( tn_tl ) 
     845 
     846         IF ( ALLOCATED(ta_tl) ) DEALLOCATE( ta_tl ) 
     847             
     848         IF ( ALLOCATED(sb_tl) ) DEALLOCATE( sb_tl ) 
     849 
     850         IF ( ALLOCATED(sn_tl) ) DEALLOCATE( sn_tl ) 
     851 
     852         IF ( ALLOCATED(sa_tl) ) DEALLOCATE( sa_tl ) 
     853             
     854         IF ( ALLOCATED(rhd_tl) ) DEALLOCATE( rhd_tl ) 
     855             
     856         IF ( ALLOCATED(rhop_tl) ) DEALLOCATE( rhop_tl ) 
     857 
     858         IF ( ALLOCATED(rn2_tl) ) DEALLOCATE( rn2_tl ) 
     859 
     860         IF ( ALLOCATED(spgu_tl) ) DEALLOCATE( spgu_tl ) 
     861             
     862         IF ( ALLOCATED(spgv_tl) ) DEALLOCATE( spgv_tl ) 
     863             
     864#if defined key_dynspg_rl 
     865         IF ( ALLOCATED(bsfb_tl) ) DEALLOCATE( bsfb_tl ) 
     866          
     867         IF ( ALLOCATED(bsfn_tl) ) DEALLOCATE( bsfn_tl ) 
     868          
     869         IF ( ALLOCATED(bsfd_tl) ) DEALLOCATE( bsfd_tl ) 
     870          
     871#else 
     872         IF (ALLOCATED(sshb_tl) ) DEALLOCATE( sshb_tl ) 
     873 
     874         IF (ALLOCATED(sshn_tl) ) DEALLOCATE( sshn_tl ) 
     875 
     876         IF (ALLOCATED(ssha_tl) ) DEALLOCATE( ssha_tl ) 
     877 
     878         IF (ALLOCATED(sshu_tl) ) DEALLOCATE( sshu_tl ) 
     879 
     880         IF (ALLOCATED(sshv_tl) ) DEALLOCATE( sshv_tl ) 
     881 
     882         IF (ALLOCATED(sshbb_tl) ) DEALLOCATE( sshbb_tl ) 
     883 
     884#endif       
     885         IF ( ALLOCATED(gtu_tl) ) DEALLOCATE( gtu_tl ) 
     886 
     887         IF ( ALLOCATED(gtv_tl) ) DEALLOCATE( gtv_tl ) 
     888 
     889         IF ( ALLOCATED(gsu_tl) ) DEALLOCATE( gsu_tl ) 
     890 
     891         IF ( ALLOCATED(gsv_tl) ) DEALLOCATE( gsv_tl ) 
     892 
     893         IF ( ALLOCATED(gru_tl) ) DEALLOCATE( gru_tl ) 
     894 
     895         IF ( ALLOCATED(grv_tl) ) DEALLOCATE( grv_tl ) 
     896 
     897 
     898 
     899#if defined key_zdfddm 
     900!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
     901!!!!  AW: The declaration/allocation/initialization of these variables 
     902!!!!      should be moved to a new module zdf_ddm_tam_init to be consistent 
     903!!!!      with NEMO. 
     904         IF ( ALLOCATED(rrau_tl) ) DEALLOCATE( rrau_tl ) 
     905             
     906 
     907!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
     908#endif 
     909 
     910 
     911      ENDIF 
     912 
     913      IF ( kindic == 0 .OR. kindic == 2 ) THEN 
     914 
     915         ! Allocate adjoint variable arrays 
     916         ! -------------------------------- 
     917       
     918         IF ( ALLOCATED(ub_ad) ) DEALLOCATE( ub_ad ) 
     919 
     920         IF ( ALLOCATED(un_ad) ) DEALLOCATE( un_ad ) 
     921 
     922         IF ( ALLOCATED(ua_ad) ) DEALLOCATE( ua_ad ) 
     923 
     924         IF ( ALLOCATED(vb_ad) ) DEALLOCATE( vb_ad ) 
     925 
     926         IF ( ALLOCATED(vn_ad) ) DEALLOCATE( vn_ad ) 
     927 
     928         IF ( ALLOCATED(va_ad) ) DEALLOCATE( va_ad ) 
     929 
     930         IF ( ALLOCATED(wn_ad) ) DEALLOCATE( wn_ad ) 
     931             
     932         IF ( ALLOCATED(rotb_ad) ) DEALLOCATE( rotb_ad ) 
     933 
     934         IF ( ALLOCATED(rotn_ad) ) DEALLOCATE( rotn_ad ) 
     935 
     936         IF ( ALLOCATED(hdivb_ad) ) DEALLOCATE( hdivb_ad ) 
     937 
     938         IF ( ALLOCATED(hdivn_ad) ) DEALLOCATE( hdivn_ad ) 
     939 
     940         IF ( ALLOCATED(tb_ad) ) DEALLOCATE( tb_ad ) 
     941             
     942         IF ( ALLOCATED(tn_ad) ) DEALLOCATE( tn_ad ) 
     943 
     944         IF ( ALLOCATED(ta_ad) ) DEALLOCATE( ta_ad ) 
     945 
     946         IF ( ALLOCATED(sb_ad) ) DEALLOCATE( sb_ad ) 
     947             
     948         IF ( ALLOCATED(sn_ad) ) DEALLOCATE( sn_ad ) 
     949             
     950         IF ( ALLOCATED(sa_ad) ) DEALLOCATE( sa_ad ) 
     951             
     952         IF ( ALLOCATED(rhd_ad) ) DEALLOCATE( rhd_ad ) 
     953             
     954         IF ( ALLOCATED(rhop_ad) ) DEALLOCATE( rhop_ad ) 
     955             
     956         IF ( ALLOCATED(rn2_ad) ) DEALLOCATE( rn2_ad ) 
     957 
     958         IF ( ALLOCATED(spgu_ad) ) DEALLOCATE( spgu_ad ) 
     959 
     960         IF ( ALLOCATED(spgv_ad) ) DEALLOCATE( spgv_ad ) 
     961 
     962#if defined key_dynspg_rl 
     963         IF ( ALLOCATED(bsfb_ad) ) DEALLOCATE( bsfb_ad ) 
     964          
     965         IF ( ALLOCATED(bsfn_ad) ) DEALLOCATE( bsfn_ad ) 
     966 
     967         IF ( ALLOCATED(bsfd_ad) ) DEALLOCATE( bsfd_ad ) 
     968 
     969#else 
     970         IF ( ALLOCATED(sshb_ad) ) DEALLOCATE( sshb_ad ) 
     971 
     972         IF ( ALLOCATED(sshn_ad) ) DEALLOCATE( sshn_ad ) 
     973 
     974         IF ( ALLOCATED(ssha_ad) ) DEALLOCATE( ssha_ad ) 
     975 
     976         IF ( ALLOCATED(sshu_ad) ) DEALLOCATE( sshu_ad ) 
     977 
     978         IF ( ALLOCATED(sshv_ad) ) DEALLOCATE( sshv_ad ) 
     979 
     980         IF ( ALLOCATED(sshbb_ad) ) DEALLOCATE( sshbb_ad ) 
     981 
     982#endif       
     983         IF ( ALLOCATED(gtu_ad) ) DEALLOCATE( gtu_ad ) 
     984 
     985         IF ( ALLOCATED(gtv_ad) ) DEALLOCATE( gtv_ad ) 
     986 
     987         IF ( ALLOCATED(gsu_ad) ) DEALLOCATE( gsu_ad ) 
     988 
     989         IF ( ALLOCATED(gsv_ad) ) DEALLOCATE( gsv_ad ) 
     990 
     991         IF ( ALLOCATED(gru_ad) ) DEALLOCATE( gru_ad ) 
     992 
     993         IF ( ALLOCATED(grv_ad) ) DEALLOCATE( grv_ad ) 
     994 
     995 
     996 
     997#if defined key_zdfddm 
     998!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
     999!!!!  AW: The declaration/allocation/initialization of these variables 
     1000!!!!      should be moved to a new module zdf_ddm_tam_init to be consistent 
     1001!!!!      with NEMO. 
     1002         IF ( ALLOCATED(rrau_ad) ) DEALLOCATE( rrau_ad ) 
     1003!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
     1004#endif 
     1005 
     1006      ENDIF 
     1007 
     1008   END SUBROUTINE oce_tam_deallocate 
    7901009       
    7911010END MODULE oce_tam 
Note: See TracChangeset for help on using the changeset viewer.