--- MITgcm/pkg/autodiff/adcommon.h 2005/09/12 20:31:53 1.13 +++ MITgcm/pkg/autodiff/adcommon.h 2009/10/22 12:35:51 1.23 @@ -1,3 +1,6 @@ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/pkg/autodiff/adcommon.h,v 1.23 2009/10/22 12:35:51 mlosch Exp $ +C $Name: $ + C-- These common blocks are extracted from the C-- automatically created tangent linear code. C-- You need to make sure that they are up-to-date @@ -18,23 +21,13 @@ #endif -#ifdef EXACT_CONSERV common /addynvars_r/ - & adetan, adetah, - & aduvel, advvel, adwvel, - & adtheta, adsalt, - & adgu, adgv, adgt, adgs, - & adgunm1, adgvnm1, adgtnm1, adgsnm1 -#else - common /addynvars_r/ & adetan, - & aduvel, advvel, adwvel, - & adtheta, adsalt, - & adgu, adgv, adgt, adgs, + & aduvel, advvel, adwvel, + & adtheta, adsalt, + & adgu, adgv, adgt, adgs, & adgunm1, adgvnm1, adgtnm1, adgsnm1 -#endif _RL adetan(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adetah(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) _RL adgs(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) _RL adgsnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) _RL adgt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) @@ -49,10 +42,14 @@ _RL advvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) _RL adwvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) + common /addynvars_r_2/ + & adetah + _RL adetah(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + #ifdef ALLOW_CD_CODE - common /addynvars_cd/ + common /addynvars_cd/ & aduveld, advveld, - & adetanm1, + & adetanm1, & adunm1, advnm1 _RL aduveld(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) _RL advveld(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) @@ -61,28 +58,66 @@ _RL advnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) #endif - common /adffields/ - & adfu, adfv - & , adqnet, adempmr -cph & , adsst, adsss - _RL adfu(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adfv(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adqnet(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adempmr(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -cph _RL adsst(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -cph _RL adsss(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + COMMON /adffields_fu/ adfu + COMMON /adffields_fv/ adfv + COMMON /adffields_Qnet/ adQnet + COMMON /adffields_Qsw/ adQsw + COMMON /adffields_dQdT/ addQdT + COMMON /adffields_EmPmR/ adEmPmR + COMMON /adffields_saltFlux/ adsaltFlux + COMMON /adffields_SST/ adSST + COMMON /adffields_SSS/ adSSS + COMMON /adffields_lambdaThetaClimRelax/ adlambdaThetaClimRelax + COMMON /adffields_lambdaSaltClimRelax/ adlambdaSaltClimRelax +#ifdef ATMOSPHERIC_LOADING + COMMON /adffields_pload/ adpload + COMMON /adffields_sIceLoad/ adsIceLoad +#endif + + _RS adfu (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS adfv (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS adQnet (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS adQsw (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS addQdT (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS adEmPmR (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS adsaltFlux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS adSST (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS adSSS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS adlambdaThetaClimRelax + & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS adlambdaSaltClimRelax + & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#ifdef ATMOSPHERIC_LOADING + _RS adpload (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS adsIceLoad (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#endif #ifdef ALLOW_DIFFKR_CONTROL COMMON /ADDYNVARS_DIFFKR/ & addiffKr _RL addiffKr (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif +#ifdef ALLOW_KAPGM_CONTROL + COMMON /ADDYNVARS_KAPGM/ + & adkapgm + _RL adkapgm (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif +#ifdef ALLOW_KAPREDI_CONTROL + COMMON /ADDYNVARS_KAPREDI/ + & adkapredi + _RL adkapredi (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #endif -#if (defined (ALLOW_EDTAUX_CONTROL) || defined (ALLOW_EDTAUY_CONTROL)) - double precision adeddytaux(1-olx:snx+olx,1-oly:sny+oly,nr,nsx, +#ifdef ALLOW_BOTTOMDRAG_CONTROL + COMMON /ADDYNVARS_BOTTOMDRAG/ + & adbottomdragfld + _RL adbottomdragfld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#endif +#ifdef ALLOW_EDDYPSI_CONTROL + double precision adeddypsix(1-olx:snx+olx,1-oly:sny+oly,nr,nsx, $nsy) - double precision adeddytauy(1-olx:snx+olx,1-oly:sny+oly,nr,nsx, + double precision adeddypsiy(1-olx:snx+olx,1-oly:sny+oly,nr,nsx, $nsy) - common /adedtauffields/ adeddytaux, adeddytauy + common /adeddypsiffields/ adeddypsix, adeddypsiy #endif @@ -122,17 +157,28 @@ #endif #ifdef ALLOW_SEAICE - _RL adarea(1-olx:snx+olx,1-oly:sny+oly,3,nsx,nsy) - common /adseaice_dynvars_1/ adarea -c - _RL adheff(1-olx:snx+olx,1-oly:sny+oly,3,nsx,nsy) - _RL adhsnow(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /adseaice_trans/ adheff, adhsnow -# ifdef SEAICE_ALLOW_DYNAMICS - _RL aduice(1-olx:snx+olx,1-oly:sny+oly,3,nsx,nsy) - _RL advice(1-olx:snx+olx,1-oly:sny+oly,3,nsx,nsy) - common /adseaice_dynvars_2/ aduice, advice -# endif -#endif + _RL adarea (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + _RL adheff (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + _RL adhsnow (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + _RL aduice (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + _RL advice (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + common /adseaice_dynvars_1/ + & adarea, adheff, adhsnow, aduice, advice +#endif + +#ifdef ALLOW_DEPTH_CONTROL + _RL adr_low_control(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + _RL adhfacc(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy) + _RL adhfacs(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy) + _RL adhfacw(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy) + _RL adrecip_hfacc(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy) + _RL adrecip_hfacs(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy) + _RL adrecip_hfacw(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy) + common /adgrid_r/ adr_low_control, + & adrecip_hfacc, adrecip_hfacw, adrecip_hfacs + common /adgrid_r_c/ adhfacc + common /adgrid_r_s/ adhfacs + common /adgrid_r_w/ adhfacw +#endif /* ALLOW_DEPTH_CONTROL */ #endif /* ALLOW_AUTODIFF_MONITOR */