Changeset 2587 for branches/TAM_V3_0/NEMOTAM/OPATAM_SRC/oce_tam.F90
- Timestamp:
- 2011-02-15T12:58:59+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/TAM_V3_0/NEMOTAM/OPATAM_SRC/oce_tam.F90
r1885 r2587 34 34 PUBLIC & 35 35 & oce_tam_init, & !: Initialize the TAM fields 36 & oce_tam_deallocate, & 36 37 !: 37 38 & ub_tl, & !: Tangent linear of before u-component velocity … … 788 789 789 790 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 790 1009 791 1010 END MODULE oce_tam
Note: See TracChangeset
for help on using the changeset viewer.