text:
Transportation and Parking Services, commonly known as TAPS, is in charge of general Transportation transportation issues on campus: collecting parking fees, issuing permits, ticketing violations, enforcing bike parking rules, and annoying students who dont pay for parking.  They are a UC Davis university department  not a private agency as some rumors suggest  and make a good deal of money for the university. Revenue generated by TAPS subsidizes ASUCD Unitrans because the bus service loses a lot of money.

TAPS hires a lot of students for enforcement and managing events. If youre a sadist who loves inflicting fines on others, this job may be for you. After all, TAPS is often accused of being the most evil organization on campus. People never call the California Regional Primate Research Center Monkey Farm evil, despite the fact that theyre probably giving diseases to all of those poor primates. But, being the selfish creatures we are, parking tickets are more objectionable to us. If you go into the TAPS office, youll notice that employees are protected by bulletproof glass.

TAPS also has some programs to encourage alternatives to driving oneself to campus: http://goclub.ucdavis.edu/carpool/ Carpool Program, UCD Rideshare Matching Service, http://goclub.ucdavis.edu/train/ Trainpool Program, Transitpool Program, http://goclub.ucdavis.edu/van/ Vanpool Program.  See their website for details.  Be warned, however, that they may require a ridiculous amount of paperwork in order to participate.

If you bike, walk, carpool, vanpool, bus, or train to campus, then you should check out the TAPS http://goclub.ucdavis.edu/ goClub.  You will receive a variety of benefits, depending on your mode of transport.  For example, with goBike you receive one complimentary parking permit per month (to be used at any time during the year) for the days you are unable to ride your bike (you must agree not to buy a parking pass when you are a part of this program).

Look for The Long Ride sculpture hanging in their lobby.

 Bicycle Programs

If your bike is on UC Davis Property, and you have lost your bike keys or your bike lock is malfunctioning, TAPS can help. Call the Bicycle Program at 5307522453 and they can come out and cut your lock. They do require that the bike have a valid California Bicycle License when they cut the lock. If it doesn’t, they can renew or register the bike anew when they cut the lock. A valid photo I.D. (e.g. student registration card or drivers license) will also be required. TAPS lock cutting service is only available between the hours of 8 a.m. – 5 p.m., Monday through Friday (not including University holidays).

TAPS is responsible for installation and maintenance of bicycle racks on campus.  If your building needs more bike racks, or needs abandoned bikes removed so functioning bikes can be locked, call 5307522453 and make a request.  They have a backlog of orders, but if you state that the problem is urgent and is preventing you from locking your bike as instructed by the TAPSpublished Davis Bike Map ( http://taps.ucdavis.edu/bicycle/mapsdirections/bikemap.pdf  far right column) then you can expect prompt action, especially if you ask for a response in writing.

TAPS sponsors the Campus Committee on Bicycles which meets monthly.  Members of the UCD community can bring matters of concern to the committee.  Please ask for a written response and be prepared to follow up to ensure that an appropriate decision is reached and action taken.

Twice a year, TAPS organizes a bike auction to sell abandoned bicycles on campus. Throughout the year, bike officers keep an eye out for bikes left on campus overnight a couple nights in a row. The officer then puts up a tag, saying hell remove the bike in one week. He then goes around six days later with another tag, saying that there is one day to move the bike.  Then, after waiting another week, if the bike still has both tags on it, the university appropriates the bicycle and offers it up for auction after holding it for 90 days.  The viewing of auction items is from 8:00  9:00am (on a Saturday) and the auction usually runs from 9:00am to 1:00pm.  Bring snacks, be prepared to make a day of it if you want to bid on a specific bike because it may take 4 hours to come up to the auction block.
http://taps.ucdavis.edu/bicycle/auctions/
 Parking Enforcement

 Avoiding Fines
   Ride your bike, walk, or take the bus.
   There are many ways to avoid getting citations from TAPS. The most obvious way is to buy a permit. The cost of a C permit is http://taps.ucdavis.edu/parking/permits/rates.cfm pretty high, and day parking is $9. UCD Parking Rates Rates have changed over the years.
   A Permit lots are available to C permit holders after 4pm, and any permit will work in an expired meter after 5pm.
   If you choose to park illegally, there are certain things you want to avoid doing:
     Dont park illegally during finals week. Although there is no more enforcement than usual, there are fewer cars so you are more likely to be caught
     Dont park in a handicapped, vendor, carpool or DiamondE (government vehicle) space. Since TAPS officers use the DiamondE spots, youre more likely to get caught, though the fine is still only $40. If you park in a handicapped spot, the cite is $288.
       The UC Davis Police Department will occasionally enforce DiamondE and handicapped spaces  although they dont care what kind of permit you have.
     Dont park in a Deans Only or Vice Chancellors Only spot.  You dont want them on your bad side.
     If youve just been cited recently, you may want to pay for parking for a while. Theyre not going to target you, but they might start to remember you. Especially if your vehicle stands out from others.
     Remember, citations are $40 each. If you can park for free for more than five times, youve made your money back, in terms of daily permits.
    Despite popular belief, TAPS is open during the majority of the calendar year.  TAPS is only closed when the rest of the University is  only during University recognized holidays and the part of winter break when the whole University is shut down.

 Free Parking
   Theres actually some free parking on campus:
     Parking is always free on weekends and holidays except during special events.
     During the academic year, parking is free in any lot from 10pm to 7am, Monday thru Friday.
     During the summer months, parking is free from 5pm to 7am, Monday thru Friday.
     There are a few 1hour only spots near Shields Grove, but its pretty far from central campus.
   You may want to try parking downtown, though you need to be aware of special parking districts and time limits which can vary from block to block.
   Bike parking is always free :)  Its technically allowed in the general vicinity of any bike rack or wheel well.
   Promise to not buy a parking permit, and Go Club gives you 12 one day passes for free.

 Appealing Citations
When you receive a ticket from TAPS, you are considered guilty unless proven innocent. The ticket is considered proof that your vehicle was in fact in violation of posted parking regulations. If you feel that the ticket was given erroneously (ex: you had a visitor permit on your dash and the enforcement employee did not see it through their own carelessness), you may want to appeal the ticket. Should you choose to appeal, you must fill out a Request for Citation Review within 21 days of the citation (you do not have to pay the fine before the review). If the review dismisses the ticket, youre off the hook, but if not, you now must pay the fine. If you wish to appeal further, you may request (within 21 days of the citation review) an Administrative Review to be held in person or by mail (you must pay the fine first). The issuing employee does not have to be present. If the fine is dismissed, you will be refunded. If not, you may take the case to the Yolo County Superior Court within 30 days of the administrative decision. If you win in court, TAPS will refund your citation and the court filing fee. Keep in mind that TAPS is not interested in being nice or reasonable. Your evidence to appeal needs to be pretty convincing to be successful. Unfortunately, this may be difficult to provide, even if they did issue a bogus ticket. Also remember you have to fill everything out exactly correct and conform perfectly to their timetable. The process is purposely such so that you will get frustrated, pay the fine, and go away.

 Formal Complaints
If you get a bogus ticket that fails appeal or have some other negative interaction with a TAPS employee, ALWAYS file a formal complaint, even for very minor things. Some of the parking enforcement personnel (they call themselves Sr. Parking Representatives) have a serious godcomplex and enjoy giving citations. Some tend to be especially aggressive at the end of their shift, like they have to meet a quota or something. Obviously, it is unethical to file a complaint if the TAPS employee does in fact follow all procedures cordially. But, chances are that they will be rude  if you have a confrontation with them. Some employees have been known to threaten individuals in parking lots. If an interaction with a TAPS employee is serious (threats issued, etc.), file a police report immediately. Depending on what happened, you may be able to press charges. In all cases, you should file a complaint with the employees supervisor. If your interaction is with an enforcement employee, note that they are supervised by George Lamb. He is in the TAPS office MF 7am4pm. He will make note of the complaint, which, in most cases, will go on that employees record for a period of one year. The issue may be addressed with the employee individually or with all the enforcement employees at their Monday morning meeting. George said that he receives complaints about specific enforcement employees from time to time and that it generally involves a couple of individuals more than the others. He also noted that should an employee receive a large number of complaints in a year or complaints severe in nature, action may be taken against them, including dismissal. TAPS is widely thought to be evil, but nothing will ever change if it goes undocumented. Therefore, it is imperative to report everything inappropriate or unprofessional experienced when dealing with them. If their phone rings constantly and their employees are implicated constantly in legitimate complaints, change will become more likely.

 Motorist Assistance

Believe it or not, TAPS doesnt exist only to write parking tickets. They also provide the following services to motorists in need (from their website):
   1. Lock Out Service: TAPS will assist you if youve locked your keys in your car.
   1. Tire Inflation: TAPS will inflate a tire if one becomes deflated.
   1. Ride to Gas Station: TAPS will provide a gas can and a ride to the nearest gas station if you run out of fuel.
   1. Jump Start: TAPS will provide a jump start if your battery dies.
Call 7528277 (TAPS)

 TAPS in the media
  http://www.californiaaggie.com/media/storage/paper981/news/2006/10/10/CampusNews/Parking.Permit.Dispensers.Vandalized.Stolen2341304.shtml Parking permit despensers vandalized, stolen in California Aggie on 20061010
  http://media.www.californiaaggie.com/media/storage/paper981/news/2006/09/14/CampusNews/Investigations.Launched.Into.Dispute.Between.Uc.Davis.Police.Officer.And.Taps.Em2271678.shtml Investigations launched into dispute between UC Davis police officer and TAPS employee in California Aggie on 2006914

20061018 11:15:22 nbsp Ive never had a problem with TAPS, but their treatment of disabled motorists disgusts me.  I question the legality and the ethics of making disabled motorists buy a parking permit in addition to their disabled decal.  Also, it is pretty obvious that many of these diabled parking areas are filled by the same motorists, day after day.  Every now and then, someone forgets to put one of the decals up.  TAPS swoops in to ticket that person, when they have to know that that person can legally park there.  Since you have to prove that you have a disabled decal to get a permit, theres no reason why a motorist should have to have both the permit and the decal on display.  Its just an excuse to create more ticketing opportunities.  Its predatory. Users/MisterProfessor

20061121 13:26:37 nbsp So are tickets from TAPS enforcable via DMV of California?  Or can they only be used against you not beign able to register for classes and/or withholding a degree? Users/MarkKlebanov
  UCDPD is an actual police department, so yes, these are enforceable throughout California.  Though if you have outofstate license plates, its much harder for them to track you down.  Users/BrentLaabs
  Tickets from TAPS that are not paid for are then routed to the DMV onto your vehicle registration. They have no effect on your university registration.

20061122 15:19:25 nbsp I just found out that even if you have purchased a DMV disabled person placard, TAPS can still give you tickets if you do not get the Universitys disabled placard as well. What a rip! Users/MyaBrn

20070320 00:17:37 nbsp Today i thought it might be a good idea to used my friends expired night pass (with foil over the punch marks) to study on campus at night.  Anyway I didnt get a ticket, however my roommate changed his 6 dollar day ticket from saying 9th to 19th and was hit with 208 fine for forging the pass.  Apparently all passes/tickets are scanned. Users/KyleLanderhoffis

20080208 11:26:19 nbsp I parked at a meter one day and put in a few quarters, then realized the dang thing ate my money! I moved to the next spot over and only had an hour and a half worth of quarters left for my 2 hour class. I had to risk it, and left my class early. I went running out to the parking lot in the rain and saw the TAPS people walking away from my car. The meter had expired 3 minutes before and they already gave me a ticket. I tried to tell them about the other meter that was broken and they said that was not their fault that my meter ran out and to have a nice day. I was and still am royally pissed at TAPS. They didnt even go look at the meter that I said was broken, just walked off all smuglike. A thirty dollar ticket for three minutes. I hate those people. Users/tgdavis

20080212 08:25:31 nbsp TAPS is ridiculous. The people there have horrible attitudes and treat you like crap. My friend was given a ticket because he apparently had tape on permit. Can you believe that? A $210 ticket for apparently having tape on the permit. He had been using that same permit for a good 4 months, and all of a sudden he gets his with this absolutely asinine ticket. After calling back TAPS and having the permit confiscated, it costs $10 to get a new permit, and the TAPS person on the line says that the permit was altered because they have photos of the permit that they ticketed. The TAPS woman on the line goes on to say that the permit in the photos and the permit that they have are different, even though they are one and the same. I tell them to look at the number on the permit and the number in the photos and I let her know that they are indeed the same permit. She just stonewalls me by saying the same thing over and over again, that I have to have my friend appeal the citation, and that the permits arent the same. TAPS is full of unreasonable people, especially the officers. They have a vindictive attitude, it makes you think that the reason why these people choose to work as TAPS officer is because its an outlet for their anger for something else inadequate in their life. Users/IdealParadigm

20080215 17:44:07 nbsp Watch out for this guy Matt and his sidekick they love to give out those ridiculous tickets. Like the one mentioned above with tape on the permit. Users/astromud27

20080225 00:28:36 nbsp Just because someone gets away with doing something for over a month doesnt mean its ok. Speed over and over and over and over and tell the cop when you get pulled over that you have been speeding for years and never got caught. Smart! And how do you know these parking people by name? You must be a disgruntled TAPS employee yourself, so why would anyone listen to you? Users/whatever
  Mr. or Ms. Whatever, I just thought I would bring it to your attention that anyone can easily look up who works for TAPS; its published on their http://taps.ucdavis.edu/admin/Org2008.pdf website. There is in fact a night parking rep (as of 12/07) by the name Matt Tidd. Working for TAPS does not make one anonymous... some of those people are even listed in the phone book. I dont see any reason to suspect that users/astromud27 is a disgruntled employee based on his or her comment, although a Importance of using your RealName RealName would certainly improve his or her (and your) credibility. users/RyanCoates

20080225 00:56:33 nbsp TAPS and City of Davis parking enforcement are two of the top 5 reasons to not drive in town. Users/PxlAted

20080225 22:56:49 nbsp I do wonder about the legality of being able to ticket disabled motorists who park in handicapped spots with out a UCD placard. Users/StevenDaubert

20080227 23:30:00 nbsp You should read the California Vehicle Code. If you truly want to know the law. Look up the section. The California Vehicle Code sets the law and rules for the entire State of California and will tell you the exact laws and rules for handicapped and for parking on university campuses, which is different then parking within a city. Read the section Users/whatever

20080312 22:04:57 nbsp Matt and his side kick just got me tonight.  The citation says for parking over 18 from the curb but my wheels are almost touching the curb.  Im dying to know what they were thinking when citing me.  What THEY are doing is illegal.  I dont care who you are it isnt legal to cite someone for any random thing that you come up with just because you decide to cite every 11th car or so that you drive past on your shift.  Godcomplex is right! Maybe hes lonely and thinks hes going to make friends this way through his hilarious practical jokes.  FYI my car with valid permit was parked in its proper space for 20 minutes before badge 10A rolled along.  Maybe he was bored thats a good reason to make up a bogus citation.
In case any one finds this useful here is a list of possible parking violations and their fees (I would link it but it doesnt take you there):
VIOLATION CODE  	VIOLATION DESCRIPTION  	FINE AMOUNT
4.02 	Valid Parking Permit Required 	$30.00
4.03 	Valid Day/Night Permit Required 	$30.00
4.04(B) 	Permit Improperly Displayed 	$30.00
4.05 	Illegally Parked Restricted Area 	$30.00
4.05(A) 	Illegally Parked On Street/Core 	$54.00
4.05(B) 	Parked Restricted Area OffSt/Core 	$54.00
4.05(C) 	Parked In Reserved Lot 	$30.00
4.06 	Expired Meter 	$30.00
4.07 	Meter Feeding Prohibited 	$30.00
4.08(A) 	Parked In Red Zone/Stopping 	$30.00
4.08(B) 	Parked In 30 Minute Loading Zone 	$30.00
4.08(C) 	Parked In 5 Minute Pass Load Zone 	$30.00
4.08(D) 	Parked in 30 Minute Zone 	$30.00
4.09 	Space Markings 	$30.00
4.09(A) 	Not Parked In Marked Space 	$30.00
4.09(B) 	Oversized Vehicles 	$30.00
4.10 	Exceeded Max Time Limit 	$30.00
4.11 	Prohibited Parking 	$30.00
4.12 	Parked In TowAway Zone 	$30.00
4.13 	Parked In Temp No Parking Sign 	$30.00
4.14 	Parked In Undesignated Area 	$30.00
4.15 	Blocking Traffic Prohibited 	$30.00
4.16 	Parked Blocking Handicap Ramp 	$288.00
4.18(A) 	Cancelled or Altered Permit 	$208.00
4.18(B) 	Lost or Stolen Permit 	$208.00
4.20 	Parked On Bicycle Path 	$30.00
4.21 	Parking In Bicycle Area 	$30.00
4.22 	Parked In Fire Lane 	$30.00
4.23 	Lodging In Vehicle Prohibited 	$30.00
4.25 	Extensive VEH Repair Prohibited 	$30.00
4.26 	Vehicle Storage Prohibited 	$30.00
4.27 	Removed Chalk Marking 	$40.00
4.28 	Parked In/Blocking Handicapped 	$288.00
4.32 	Meter Tampering 	$208.00
5.02 	Disregarded Bollards 	$30.00
5.03 	Center Core Traffic 	$54.00
CVC22500 	Blocking Driveway 	$35.00
CVC22502A 	Parked More Than 18 From Curb 	$30.00
CVC22651 	Vehicle Can Be Towed 	$0.00

None of them applied to my vehicle and I am starting a nice newspaper article on it now. Users/SamGibbs

20080319 11:37:44 nbsp
Did you read your own post? Look at the 2nd to last one, CVC 22502A Parked More Than 18 From Curb. Ill bet the ticket was for $30.00 If you want to beat the system you have to be smarter than the system Users/whatever

20080325 19:45:29 nbsp Its interesting seeing how these comments have progressed even to the point where someone has posted the UCD parking rules. as for the 18 inches violation, its a California Vehicle Code. If you read more into that you will notice that CVC22502A states that every vehicle parked upon a roadway where there are adjacent curbs shall be parked with the righthand wheels of such vehicle parallel with and within 18 inches of the righthand curb... chances are that person cited had his or her lefthand wheels next to the curb; therefore, the righthand wheels were more than 18 inches from said curb.

As for permits, keep in mind I do believe that TAPS officers are humans too (despite what others might think) and can only see valid permits if the numbers, expiration dates and the permit itself are clearly visible. Also Sam, if your permit was valid you could easily have the citation dismissed. Users/dreamknight64

20080413 00:09:51 nbsp whatever, honestly, get a life, youre defending TAPS unnecessarily. You didnt get the point of my post when I stated that the permit violation that I had received was bogus. What I am saying is that there was never tape on the permit, and after months of use, having a TAPS officer all of a sudden say that there was tape on the permit is ridiculous. And to be so absurd as to support the most minor of parking violations such as the guy who posted that he parked almost touching the curb, shows that youre: 1.) A troll on daviswiki, which means youre a loser. 2.) An ahole in general online. Oh wait, those are both one and the same thing, theyre synonymous with each other.

From your response both to my post and SamGibbs post, you obviously dont read or you just have horrible reading comprehension. Users/IdealParadigm

20080413 11:25:31 nbsp I love everyones rants here. Was looking over everything said and again what is so ridiculous about parking citations? are they only ridiculous because you know very well that you were caught and no way to challenge the ticket? Idealparadigm I dont know why you even mention the 18 citation that SamGibbs got, if he got cited there is a valid reason. if you read what i posted previously about CVC22502A it states that the righthand wheels need to be near the curb. I myself was cited for such a violation but not by TAPS but by UCD Police; I too was upset when I got it because my wheels were next to the curb but it was not my righthand wheels. Also Sam you stated that you got cited 20 minutes after parking? Where did you park and what time? Loading zones are still loading zones no matter what time nor what permit you may have. A Spaces are for A permits until 4pm when c permits become valid; every other permit is valid after 5pm. Now a mistake a few friends of mine have made is in the lot by the tennis courts: there is a space that says Limited to A Permits anytime, One hours  that word anytime means anytime, no other permit is valid there.

Oh, btw way Ideal..didnt you say last time that the permit was your friends but now in this recent post you state that it was yours? So which one is it?

So please people, quit complaining and whining just because you know you did something wrong and have no way to get out of it. Clearly read the ticket and comments in the bottom of it before you go ranting.

Also BTW, before more people get to getting pissed off when they get an unexpected ticket...anyone ever read the signs around the MU bus circle? they say No stopping, and no loading/unloading of auto passengers....I wonder why there have such signs....i bet its just another way for TAPS to cite people since its perfectly okay to stop the buses...o wait, TAPS doesnt have the authority to control traffic, so I guess then its for the Police to have some fun and give out bogus tickets too??????

 Users/dreamknight64

20080413 11:25:49 nbsp I realize that TAPS has a job to do, but whats up with all the chickenS tickets?  Once, I parked at a meter to find that the TAPS officer left me a ticket before the meter was up (by a only a few minutes, but still, I showed up on time).

One of my best buddies in college worked for TAPS and I always bitched to him about this sort of stuff.  He and I would really get into it.  All in good fun, though.  Good times.   Users/CurlyGirl26

20080417 10:50:52 nbsp Dreamknight64, if you read my both of my posts, I never said that the permit was his. In my first post, I referred to it as a permit that he used, not that it was explicitly his permit. And just like whatever, you probably read my post wrong. The only way you could have misinterpreted it is in the part where I said that he received the citation, and in my second post, I refer to it as my citation. I never state who the permit actually belongs to. Who the permit belongs to is not relevant to my point at this time, thats a whole other story with the stonewalling that they were doing. As for parking violations, youre just being complacent and accepting the fact that the law is the law, and youre not willing to change it. The only situation that I can think of where someone would not be able to park their right set of wheels next to the curb is on a one way street on the left side of the street. In that case, I suppose that everyone who parks on a oneway street on the left side should be ticketed then?

I like how you try to find some sort of contradiction in my post and then bring up the fact that Im helping to defend SamGibbs. Im saying that TAPS goes out of their way to enforce every single detail of the law in terms of parking enforcement.

Have you ever spoken to a police officer? Do you know how many things that they can enforce and ticket you for, but they dont? For example, if youre driving by on the street and you see a group of people protesting, and you support those protesters, if you honk your horn in your car, you can get ticketed for illegal use of horn. Generally, law enforcement officers dont enforce that law, unless its a very large protest, and they think it might threaten the safety of others. Stop defending TAPS like whatever is, and get over yourself.

I am attempting to help appeal the ticket that my friend got, with MY permit, just to clarify, if you cant read in between the lines. I was with him when he got the ticket, and thats why Im helping him to appeal it.

As for the parking signs around the bus circle in the MU, thats for safety reasons, and theyre clearly displayed. The problem with TAPS is when they sit at a parking meter literally waiting for it to expire so that they can ticket someone, its a little ridiculous.

Actually, you know what dreamknight64? Why dont we all go learn every single detail of the California Vehicle Code, so that we can all prevent ourselves from getting tickets? After all, it obviously is reasonable and feasible to do so, even though Im a busy college student. As a matter of fact, why dont you form a campus club dedicated to educating all the students that drive to campus, you can even be the teacher!

Lastly, I have never received a ticket with my permit, with my car. The ticket that I am talking about, again, just to clarify, was my friends car, with MY permit. I was with him at the time, and there are many details that are being ironed out right now. The ticket can be appealed, and there have been many technicalities in doing so, which is the only reason why it has not been done yet. Users/IdealParadigm

20080421 22:39:42 nbsp Okay wish you didnt have to keep saying stuff and let things be idealparadigm. Yes I am trying to defend TAPS because no one else does, all everyone does is complain, and Bch about TAPS; its always negative things about them never any positives. If it werent for them anyone would be parking in the lots and there would be no parking available for anyone at all. And yes I am accepting the fact that the law is the law and you know why??? BECAUSE IT IS, without laws things would be all fux0rd. Also the parking rules here are UC parking codes meant to supplement the CVC they are not laws.

Next,when has a person ever really seen a TAPS officer literally wait for a meter. I never have, plus its funny how everyone who comes up running to their car always claims that they were only FIVE minutes over as if 5 is some magical number because thats the number i always hear.

Now the next point. your citation, it is completely relevant on who the permit belongs to. first of all why did your friend have your permit in his car, as you should know permits are not transferable therefore no one should be using it other than the person who purchased it (that includes disabled placards btw)

Finally about your stupid little idea for a club and the 18inches thing. if you read more into that CVC, there is an exception to one way streets. Also you dont need to read every code or memorize the stuff like you would like to do in your club/class. Ever hear of the DMV handbook? It states some rules about parking in there such as the code i mentioned. But then again i cant expect someone like you to pick up the DMV handbook since i am sure you are such an excellent driver. I mean i am sure it only took you a few tries just to pass the written exam since thats where the questions for it come from.

And yes I again will admit that I am defending TAPS (as was whatever) because they do a great job at handling the stupidities of certain drivers when it comes to parking. The day I will stop defending them is the day people like you quiting bching and ranting about how TAPS is evil and how they are wrong for pointing out your mistake in not being able to understand such a simple thing as a sign that tells you where and when you can park. Users/dreamknight64

20080506 10:43:19 nbsp so its 9:30, the parking lot is empty except for maybe 10 cars, and two sneaky little taps guys are running around ticketing cars and giggling like school girls.  doesnt this seem kind of unreasonable?  i am normally not an advocate of violence but i really really would like to see somebody knock the hell out of these guys.     Users/dudechill

20080608 16:56:33 nbsp Seems theres a lot of controversy over TAPS and citations here. Without reading all the long comments posted, Ill make a short note that:
One drizzly day in Fall 2007, I parked at a meter in a lot and definitely did not put in enough change to last me until I got out of the class, and when I ran back to my vehicle, a TAPS officer was making his rounds. I scampered up to my car and the TAPS officer very kindly let me go, just telling me that my meter ran out and to be sure to keep a better eye on the time next time. I thanked him and left. Phew! :X Users/AmyChow

20080807 22:22:21 nbsp You see, dreamknight64, this is why youre an idiot. Youre taking the side of TAPS simply because some people complain about them giving tickets out. Honestly, the majority of people who complain about TAPS are the people who get tickets. Now out of the UC Davis population, how many students actually get tickets, probably not as many in comparison to how many students and faculty actually drive to school on a daily basis

As for the law being the law, youre absolutely right. Thats why no law has ever been repealed. Oh wait, there have been laws that have been repealed. You remember slavery, dont you? The law was the law back then, but it has been repealed. Just because something is a law doesnt mean its right. Granted, this is about parking, so chances are there arent going to be many things unjust about parking laws, but about laws being laws youre just ignorant. As for the UC Parking Codes, just because they arent actual laws in the state doesnt mean they cannot be enforced, they are just as effective, and might as well be treated as laws.

Just because you have never seen a TAPS officer wait for a meter to expire doesnt mean it doesnt happen. Have you seen George Washington die? Well, since you probably havent, I guess he never died then, right? Just as I said before, you lack reading comprehension, but now it seems you just seem to have a misunderstanding of English as a whole. You must not understand what an expression of speech is. When someone says that they were late five minutes to a meter it doesnt literally mean that they were five minutes late. In this case five minutes means shortly after the meter expired. Thats the reason why you always hear that number, not because people have stopwatches in class counting the minutes that they were late to a parking meter. Get the stick out of your ass.

Obviously you failed to read my post before. As I have already addressed the issues with the permit ownership. You just fail to comprehend what I typed on my post. Ill say it again, just so you can make a feeble attempt at understanding what Im saying: My friend and I were both in the car, and I had my permit.  There should be no reason why he should get a ticket for transferring a permit, because I was with him. It would be transferring if I let him borrow it, which was not the case.

Im a great driver, thanks. I passed the written test in one attempt. Ive never gotten a ticket before, and I dont have any accidents. So please, spout more inaccuracies on that soapbox of yours.

Obviously you failed to read again, as in a previous post I said that I have never received a ticket before in my car, or at all for that matter.

As for TAPS, they may do a good job on parking enforcement, but for their job as a whole? Theyre horrible. When it comes to enforcing bike parking and getting rid of abandoned bikes, they are horrible. The only time they even start to remotely clean up is around the Summer time. So as an organization, they are not doing their whole entire job detail, they are excelling in car parking, but they are lacking in bike parking. Sorry to break your hero image of TAPS, but its the truth.

As for me, Im done with you, your English skills and comprehension are subpar, its apparent that youre not even reading a majority of my post, much less the whole thing, before you decide to post your rambunctious and ridiculous responses. What you need to do is get off your soapbox, take a seat in English class and learn how to think before you write or even talk. Youre about as amusing as watching paint dry. Im done with you. Have fun being the #1 TAPS fan, douchebag. Users/IdealParadigm

20081014 14:02:36 nbsp fuck this am just gonna forge it.
catch me if you can TAPS ahhaa. just get a permit the copy one that is working paste the shiny area of the permit and finally put celophan tape over it so i looks shiny.
oo and yes, the student go work for taps do have attitude problems. Once i was caught parking in the arc, while she and her friends were giving me the ticket i ran towards my car, she said i should buy the one day ticket if i wanted to get away with it, which i did but her tone of voice was very high pitched and bossy, and ofcourse her firends were there so she had to look cool.
this other time one FAT ASIAN guy was about to give me a ticket. i could see is mantits from a fucking mile away.  Users/Alekhine

20081119 09:57:52 nbsp They are a selfsufficient organization, therefore, requires them to suck your blood in order to survive.
 Users/mrb4b00

20090217 18:08:13 nbsp
Representatives at the front desk are often very rude, especially if you ask them simple questions
There often are not enough windows open for the quarter kickoff rushes
Parking is overpriced and there are way too many A parking spots in places where there needs to be more C parking. Student to professor ratio does not seem to be taken into consideration.
TAPS is ruthless and will ticket you as much as possible. They already charge you and arm and a leg, yet they want to find the most ways to rack on some more to your debt. Users/ThUn

20090223 09:38:28 nbsp TAPS...What can I say about TAPS...? They basically make it not worthwhile to have a car while attending UCD. I dont really want to spend 500+ dollars on a freaking permit for the year, times 4. Im pretty sure their workers stand at the meters just to wait for somebodys to just run out of time and write them a ticket. Even if it is at 8:40 in the morning when there are still a shitload of spaces around for others to park at. From the looks of what everybody is saying on this page, Im not alone. Maybe its time for TAPS to change their system so BOTH students and TAPS can benefit from their existence.  Users/jfong252

20090303 10:56:54 nbsp @ThUn:

I hate to support the man here, but I think if you look at the numbers you will find that the student to employee ratio here is relatively even. (1,2)  Also, the amount of A parking spaces is far less than the amount of C spaces, there are almost 3 C spaces for every A space. (3)  Parking here, while not ideal, is far better than other places, such as Sac State.  UCD has one of the lowest parking rates in the UC system.  Unitrans (which is subsidized by TAPS...) is a great way to get around Davis.  While TAPS is not perfect, they do their best, and could do a lot worse.

1 http://facts.ucdavis.edu/student_population_headcount_fall.lasso
2 http://facts.ucdavis.edu/employee_headcount.lasso
3 http://taps.ucdavis.edu/parking/info/inventory.xls Users/Ucd2006

20090303 17:56:30 nbsp Just some comments. I have seen way too many times a parking structure with all the C spots full, and only like 1/5 of the A spots taken. They should give one more level at least to C permits. We definitely need another parking structure! Although, I actually have no rude comments for TAPS itself. Today, actually, I parked at a meter at about 4pm, thinking I could with my C permit. I was walking back about 4:30something, when I saw a TAPS officer standing by my car with his little computer thingy. I calmly explained I had a C permit, and thought after 4pm i could park there. He explained it was after 5pm you can use a parking meter, and after 4pm you can use your C permit in A permit lots. I mixed those two around. He nicely said I was lucky he didnt get their for a while, gave my a warning and walked away. So no ticket, got lucky i guess. But i was in a good mood, treated the man with respect, and we both came away happy. :) Users/mperkel

20090320 11:33:29 nbsp I got a ticket for parking where a permit was need and I still cant find any sign saying a permit is needed to park there.  I appealed, and they denied it citing a completely irrelevant reason (saying I wasnt the owner of the permit displayedbut I didnt even have a permit displayed) and so now they want me to pay the fine before even contesting it further.  Its a pretty BS system.  Considering their response did not at all respond to my issue (proper sign postage) it is obvious they didnt not spend any time considering if they were in the wrong.  Ill continue to contest it until they show me Im wrong. Users/KernHaug

20090403 22:39:36 nbsp What I dont understand is why we cant park until 10pm. The lots all empty after 5 and just sit unused. What a waste of space. Shouldnt TAPS be designed to work with students, not against them?? Users/WeiChun

20090504 18:28:12 nbsp All the fines went up $10.00 starting May 1, 2009. http://taps.ucdavis.edu/parking/citations/schedule.cfm Watch out! And for everyone that complains about everything TAPS does: No one wants to hear a grown educated college student whining and bitching about parking. Get over yourself and park correctly like everyone else. People who hate the police hate them for a reason, people who hate TAPS hate them for a reason. If your doing nothing wrong, you have no reason to hate them.  Users/complaintdepartment

20090603 20:22:52 nbsp UCD TAPS  wannabe cops, or police application rejects. They put on their spiffy uniforms and feel like they wield authority. I DO give it up to them when they enforce the problems of crammed parking and fake passes on campus, but to be honest, their people skills are crappy. What worries me is the vibe they give off that makes me think they REALLY thinks theyre cops. SOME of them are cocky and very impolite.

That sucks because they do NOT have law enforcement experience to deal with unruly people in a professional manner, and if they are rude or extremely unprofessional, what if they come into contact with a deranged individual or someone whos not good with stress? What are they to do on the spot? Yeah they can radio for help, but the fact of the matter is, their motorola radios with a small bandwidth, COPLOOKING UNIFORMS (and not EVERY civilian knows that light blue means you are a nonsworn employee), NO WEAPON, NO PROTECTIVE VEST UNDERNEATH, and CONSTANT PUBLIC CONTACT is just a bad combination when it comes to the safety of students as well as for TAPS officials themselves.

STOP acting like cops, because if crap hits the fan, you DEFINITELY wont want to act like one then. In THIS day and age, you are more likely to run into people who are dealing with A LOT of personal, academic, and financial stress; keep that in mind TAPS officials, when you mouth off to someone or walk around acting like you have a REAL badge on.

In my opinion TAPS degrades the rep of UCDPD, because people see the uniform and parking enforcement and see the two synonymously, which is very unfortunate.

Even City of Davis Parking Enforcement is understanding with cases in which you really couldnt move your car for some reason; all it takes is a phone call.

UCD with all the student fees being spent on ridiculous campus beautification projects, why dont you invest in the new license plate cameras that various parking enforcement agencies use. It would reduce human error as well as maybe even save the reputation of TAPS from total damnnation because of their unprofessional staff. With the millions being spent on sports and building projects, as well as the ridiculous increase in various fees, Im sure SOME can be rerouted to help out a department that deals DIRECTLY with the student body. Get rid of TAPS, and hire people who are TRAINED to deal with public issues, NOT students who want to get their jollies writing tickets.

 Users/Omicron

20100607 15:08:28 nbsp I went to TAPS to sign up for a monthly withdraw from my paycheck for a monthly parking pass to be mailed to me.  They strongly urged me that day to come and pick up my pass each month because they said they have had occasions with these passes coming up missing via campus or USPS mail.  I let them know that I have confidence in the USPS and since it is difficult to come and pick up, I would just have them mailed to my home.  I am almost forty years old and have never had a problem with USPS.  In addition, TAPS closes at 4 and I get off work at 5 so this would be a monthly inconvenience to say the least.  The first couple of months were great; I received my pass in the mail.  Then the third or so month, I didn’t get my pass in the mail.  I called TAPS to let them know and they said I was just out of luck.  If I wanted a new pass, I would have to purchase a new one.  They pointed out that I signed a release to have it mailed to me and that it’s not guaranteed that I will receive it.  They stressed again why they make that so clear to everyone.

Frustrated with this system and to be green and save money, I cancelled my parking permit and signed up instead for a monthly bus pass, again to be sent to my home.  I know, I don’t know what I was thinking, but honestly just couldn’t see it happening again.  Yet again, after just a couple of months, my bus pass didn’t come in the mail.  So I cancelled that one too and now just pay $1.00 each day, which ends up being less money for TAPS and campus because I only go one way.

I have spoken on many occasions by email, phone, or in person with TAPS employees regarding the issue with passes getting lost in the mail.  On Friday, June 4th I was in the TAPS office discussing this with cashier #25 who also told me this happens all the time.  In fact, she said, “There was once three months in a row where many people didn’t receive their passes in the mail.”

I asked her why someone hasn’t looked into this problem.  I told her that it would seem to me that they would want to investigate at this point.  She said there is no way to pin point what happened.  I said that I thought someone could make quite a bit of money if they took those out of the mail or something.  It’s just a theory.  She said, “We can’t go pointing any fingers, so we don’t.”

It just felt like every time I talked to one of the TAPS employees about this, they were so aloof and unconcerned and that bothered me.  Where is the service?  Where is the concern for their customers?  Where is the concern for how this looks for the campus?  How many have had to suffer from this whether it is last minute transportation needs or not enough money to pay again?  I know it is hearsay but one of my friends said his roommate had worked at TAPS and they are aloof on this issue.

Part of this is that they blame it on the mail system, so that leaves us with USPS or campus mail, either way it is not good for things to come up missing.  If we lose something here from our department in the campus mail, we have sent out a process request to track it down and can not only locate the item, but even pin point who had what and when by campus mail logs.

I believe it is simple to check who was working on that day at TAPS and campus mail.  Who is responsible for processing these and what is the procedure, are there any checks and balances in place or is this completely unregulated?  If TAPS sincerely feels that it is the USPS, has anyone ever contacted them to file a report or have it investigated?  I think not if they haven’t tried those steps within their own organization.

It is sad to think that maybe part of the reason why TAPS doesn’t pursue this is because they make double the income to turn a blind eye to this, which doesn’t make me feel real good about this even more.  If that is the case, it reminds me of the very concerns we have financially with our government, greed and mishandling.  I was even told to not pursue this because TAPS makes lots of money for campus and I could be walking into a hornet’s nest.

Finally, please explain to me why TAPS fiercely stresses the importance of personally picking up the passes, yet on their website and any other paperwork dealing with them, they say to just mail it in.

Why does TAPS trust all mail to go to and from their department, unless it is a valued transportation pass?  It would seem to me that if they have problems with those, they would be having problems with all of their mail, especially if there is no wrong doing
 Users/SusanRoads

20100607 17:06:12 nbsp In response to SusanRoads, I would say this kind of issue calls for taking it to the top. A welldrafted. respectful email to John Meyer (The Vice Chancellor of Admin and Resource Management, which oversees TAPS)and CCd to Cliff Contreras, the TAPS director explaining the situation would at least bring their attention to all the negative comments they receive about on the Wiki. The bad definitely outweighs the good here, especially with regard to customer service. This may be more energy than you are willing to expend, but if you feel strongly its been my experience that good things can happen when you speak up for yourself. Users/jsbmeb
  I second this advice. Users/TomGarberson
  I wonder if they would simply start using certified mail for an extra $2 bucks.
  FWIW Ive been living on campus as a department resident for three years and I dont trust campus mail farther than I can see them. Ive lost checks, packages and all sorts of stuff through them. That stuff has NEVER happened to me with normal USPS, FedEx, or UPS service. Only mail or receive stuff through campus mail that you dont mind losing.

20100623 10:36:37 nbsp TAPS is not looking into the problems with students and staff not getting their bus and parking passes in the mail even though I sent my formal letter to the powers that be for them.  I am determined that if they continue to not address this issue, I will do my own investigation and will not give up because what they are doing is wrong, especially in such hard times. If anyone has had any experiences with not receiving your passes in the mail, please post your experience here.  It will help to get to the bottom of this longstanding issue. Users/SusanRoads

Miss Roads You might find yourself receiving a more favorable reply/letter of action from someone that can actually help you if you used your real name. Your, alleged complaint loses creditability and action when you use a fake name. How do you expect someone, ANYONE, to do anything for you if you use a fake name? Grow a spine if you have a beef to whine about and use your real name. Otherwise youre just like the rest Users/ComplaintDepartment

  Kind of like you, Mr. Or Ms. Complaint Department, who didn;t even bother to sign your idiotic retort?  Users/WesOne

20110412 15:38:09 nbsp Hmmm...its interesting that the mean response to Susan Roads comment about TAPS is under the name, ComplaintDepartment. Is that THEIR real name? I wonder what makes that user believe that she is not using her real name. It sounds like a real name to me. If it isnt her real name, how would you know? Maybe you work for TAPS and couldnt find her name in your database? It would seem to me that is the only way you would have such confidential information. Worse, you could be some other entity on the UCD campus that looked into this on behalf of TAPS. She did say that she was told that she, may be walking into a hornets nest. Maybe she is a student or staff member that needs to remain anonymous for such a time as this. It is obvious that someone read the comment and tried to track her name down. In todays world, surely it is good to remain anonymous in many cases to prevent harmful consequences for speaking up. Sounds to me like, the man, had an eye on this one. If she used her real name or not, I just dont see why that would even be an issue or how you could possibly know. This is the very reason some of us stay anonymous, but still share with the people to expose wrongdoings. Users/HeavenBound777

20131120 Its quite disappointing to see the decline in support and service from the TAPS office. They have lost any sense of behaving in a humane way towards students and the community. I have tried to fight two recent tickets and was frankly shocked by the way the TAPS office treated me, how they treated others who were there with questions, complaints, etc. I know that it is not a fun job by any means but for this office to lose any sign that they are human is hugely disappointing. It used to be that if a staff or faculty (or student?) were to take the time and come into the TAPS office with a legitimate question or complaint, that someone at the TAPS office would listen and consider the request. They might as well have machines there now that just spit out no. Pay your $45 fee. My recent tickets were for parking at an expired meter, where I read 120 as 120 minutes, not an hour and 20 minutes. I asked for an exception and was denied. I then received a ticket for parking on top of the white line in the parking space. My request to dismiss was denied. Can someone please redirect the TAPs office back to planet earth, or even better, planet Davis. This is a friendly town and campus. But nobody would know that if they have to deal with TAPS.

max_stars_repo_name: voflo/Search

max_issues_repo_name: voflo/Search

max_forks_repo_name: voflo/Search


    program demo_not
    implicit none
    integer :: i

       i=13741
       write(*,'(b32.32,1x,i0)')i,i
       write(*,'(b32.32,1x,i0)')not(i),not(i)

    end program demo_not


text:
!::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
!
!    This file is part of ICTP RegCM.
!
!    ICTP RegCM is free software: you can redistribute it and/or modify
!    it under the terms of the GNU General Public License as published by
!    the Free Software Foundation, either version 3 of the License, or
!    (at your option) any later version.
!
!    ICTP RegCM is distributed in the hope that it will be useful,
!    but WITHOUT ANY WARRANTY; without even the implied warranty of
!    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
!    GNU General Public License for more details.
!
!    You should have received a copy of the GNU General Public License
!    along with ICTP RegCM.  If not, see <http://www.gnu.org/licenses/>.
!
!::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

module mod_template

  use mod_basicmodule

  private

  real(dp) :: arealvar
  integer :: integervar
  real(dp) , dimension(4) :: fixed_dims_array
  real(sp) , allocatable , dimension(:,:) :: allocatable_2d_array

  public :: allocatable_2d_array    ! Data accessed from outside
  public :: init_mod_basicmodule    ! Allocate space and init data
  public :: release_mod_basicmodule ! Release allocated resources and cleanup
  public :: meaningful_subroutine   ! A subroutine doing some work

  contains

  subroutine init_mod_basicmodule(lfag)
    implicit none

    ! Dummy arguments are to be specified of theyr intent

    logical , intent(in) :: lflag   ! Flag to control behaviour

    ! Local variables

    integer :: istat

    !-----------------------------------------------------------

    if ( lflag ) then
      allocate(allocatable_2d_array(iy,jx), stat=istat)
    end if

  end subroutine init_mod_basicmodule

  subroutine release_mod_basicmodule
    implicit none

    !-----------------------------------------------------------

    if ( allocated(allocatable_2d_array) ) then
      deallocate(allocatable_2d_array)
    end if

  end subroutine release_mod_basicmodule

  real(dp) function internal_function(a)
    implicit none
    real , intent(in) :: a

    !-----------------------------------------------------------

    ! Constants are to be declared in double precision
    internal_function = dlog(a) * 3.0D0 + 4.0D0

  end function internal_function

  subroutine meaningful_subroutine
    implicit none

    integer :: i , j

    !-----------------------------------------------------------

    do i = 1 , iy
      do j = 1 , jx
        ! Cast of variables need to be specified
        allocatable_2d_array(i,j) = internal_function(dble(i))
      end do
    end do

  end subroutine meaningful_subroutine

end module mod_template
! vim: tabstop=8 expandtab shiftwidth=2 softtabstop=2

max_stars_repo_name: taobrienlbl/RegCM

max_issues_repo_name: taobrienlbl/RegCM

max_forks_repo_name: taobrienlbl/RegCM


text:
      SUBROUTINE getcarg(narg, arg, numargs)
      IMPLICIT NONE
C-----------------------------------------------
C   D u m m y   A r g u m e n t s
C-----------------------------------------------
      INTEGER, INTENT(in)  :: narg
      INTEGER, INTENT(out) :: numargs
      CHARACTER(LEN=*), INTENT(out) :: arg
C-----------------------------------------------
C   L o c a l   V a r i a b l e s
C-----------------------------------------------
      INTEGER :: numchars
C-----------------------------------------------
c$$$!DEC$ IF DEFINED (WIN32)
c$$$      INTEGER :: nargs
c$$$      numargs = nargs() - 1
c$$$      CALL getarg(narg, arg, numchars)
c$$$!DEC$ ELSEIF DEFINED (LINUX)
      INTEGER iargc
      numargs = iargc()
      CALL getarg(narg, arg)
c$$$!DEC$ ELSEIF DEFINED (VMS)
c$$$      CALL lib$get_foreign(arg,,numchars)
c$$$      numargs = MIN(1,numchars)
c$$$!DEC$ ELSEIF DEFINED (CRAY)
c$$$      INTEGER :: ier
c$$$      INTEGER ipxfargc
c$$$      numargs = ipxfargc()
c$$$      CALL pxfgetarg(narg, arg, numchars, ier)
c$$$!DEC$ ELSEIF DEFINED (MACOSX)
c$$$      numargs = command_argument_count()
c$$$      CALL get_command_argument(narg,arg)
c$$$!DEC$ ELSE
c$$$      INTEGER iargc, getarg
c$$$      numargs = iargc()
c$$$      numchars = getarg(narg, arg)
c$$$!DEC$ ENDIF

      END SUBROUTINE getcarg

ext: f


text:
module rojff_json_null_m
    use rojff_json_value_m, only: json_value_t
    use rojff_string_sink_m, only: string_sink_t

    implicit none
    private
    public :: json_null_t, create_json_null

    type, extends(json_value_t) :: json_null_t
    contains
        procedure :: equals
        procedure :: write_to_compactly
        procedure :: write_to_expanded
    end type
contains
    subroutine create_json_null(json)
        class(json_value_t), allocatable, intent(out) :: json

        allocate(json_null_t :: json)
    end subroutine

    elemental function equals(lhs, rhs)
        class(json_null_t), intent(in) :: lhs
        class(json_value_t), intent(in) :: rhs
        logical :: equals

        associate(unused => lhs); end associate
        select type (rhs)
        type is (json_null_t)
            equals = .true.
        class default
            equals = .false.
        end select
    end function

    subroutine write_to_compactly(self, sink)
        class(json_null_t), intent(in) :: self
        class(string_sink_t), intent(inout) :: sink

        associate(unused => self); end associate
        call sink%append("null")
    end subroutine

    subroutine write_to_expanded(self, indentation_level, sink)
        class(json_null_t), intent(in) :: self
        integer, intent(in) :: indentation_level
        class(string_sink_t), intent(inout) :: sink

        associate(unused => indentation_level); end associate
        associate(unused => self); end associate
        call sink%append("null")
    end subroutine
end module

max_stars_repo_name: everythingfunctional/rojff

max_issues_repo_name: everythingfunctional/rojff

max_forks_repo_name: everythingfunctional/rojff


MODULE sqerr_g_module

  use parallel_module, only: comm_grid, comm_spin
  use bb_module, only: bb
  use fft_module, only: init_fft,finalize_fft,forward_fft,d1_to_z3_fft

  implicit none

  PRIVATE
  PUBLIC :: calc_sqerr_g
  PUBLIC :: init_sqerr_g

  real(8),allocatable :: fold(:,:,:)
  integer :: icount

CONTAINS

  SUBROUTINE init_sqerr_g( m, n, nmax, f1_in, f2_in )
    implicit none
    integer,intent(IN) :: m,n,nmax
    real(8),intent(IN) :: f1_in(m,n),f2_in(m,n)
    integer :: n0,ierr
    integer,parameter :: ndat=2
    include 'mpif.h'
    call write_border( 1, " init_sqerr_g(start)" )
    if ( allocated(fold) ) deallocate( fold )
    allocate( fold(m,nmax,ndat) ) ; fold=0.0d0
    n0=size( f1_in(:,:)  )
    call mpi_allgather( f1_in,n0,MPI_REAL8,fold(1,1,1),n0,MPI_REAL8,comm_spin,ierr )
    call mpi_allgather( f2_in,n0,MPI_REAL8,fold(1,1,2),n0,MPI_REAL8,comm_spin,ierr )
    call write_border( 1, " init_sqerr_g(end)" )
  END SUBROUTINE init_sqerr_g

  SUBROUTINE calc_sqerr_g( m, n, nmax, ndat, f_in )
    implicit none
    integer,intent(IN)  :: m,n,nmax,ndat
    real(8),intent(IN)  :: f_in(m,n,ndat)
    integer :: ierr,i,n0,j
    real(8),allocatable :: f(:,:,:),ftmp(:)
    complex(8),allocatable :: zw(:,:,:),zw0(:,:,:),zw1(:,:,:)
    include 'mpif.h'

    call write_border( 1, " calc_sqerr_g(start)" )

    allocate( f(m,nmax,ndat) ) ; f=0.0d0

    n0=size( f_in(:,:,1) )
    do i=1,ndat
       call mpi_allgather( f_in(1,1,i),n0,MPI_REAL8,f(1,1,i),n0,MPI_REAL8,comm_spin,ierr )
    end do

    call init_fft

    allocate( ftmp(m) ) ; ftmp=0.0d0

    icount=0

    do i=1,ndat
       do j=1,nmax
          icount=icount+1
          ftmp(:)=f(:,j,i)-fold(:,j,i)
          call d1_to_z3_fft( ftmp, zw1 )
          call forward_fft( zw1, zw )
          call analyze_residue( zw1 )
       end do
    end do

    deallocate( ftmp )

    call finalize_fft

    fold=f

    deallocate( f )

    call write_border( 1, " calc_sqerr_g(end)" )

    return
  END SUBROUTINE calc_sqerr_g

  SUBROUTINE analyze_residue( zw )
    implicit none
    complex(8),intent(IN) :: zw(0:,0:,0:)
    integer :: ML1,ML2,ML3,i1,i2,i3,j1,j2,j3,k1,k2,k3
    real(8) :: dif_tot,dif_min,dif_max,dif,gmin,gmax
    real(8) :: gg,gx,gy,gz,gg_min,gg_max,dif_gg_min,dif_gg_max
    logical :: disp

    ML1=size(zw,1)
    ML2=size(zw,2)
    ML3=size(zw,3)

    dif_tot=0.0d0
    dif_min= 1.d100
    dif_max=-1.d100

    dif_gg_min=0.0d0
    dif_gg_max=0.0d0
    gg_min= 1.d100
    gg_max=-1.d100

    do i3=0,ML3-1
    do i2=0,ML2-1
    do i1=0,ML1-1
       j1 = i1-ML1 ; if ( j1 < -(ML1-1)/2 ) j1=i1
       j2 = i2-ML2 ; if ( j2 < -(ML2-1)/2 ) j2=i2
       j3 = i3-ML3 ; if ( j3 < -(ML3-1)/2 ) j3=i3
       k1 = mod(j1+ML1,ML1)
       k2 = mod(j2+ML2,ML2)
       k3 = mod(j3+ML3,ML3)
       if ( k1/=i1 .or. k2/=i2 .or. k3/=i3 ) then
          write(*,*) k1,k2,k3,i1,i2,i3
          call stop_program_f( "stop@sqerr_g_module" )
       end if
       gx=j1*bb(1,1)+j2*bb(1,2)+j3*bb(1,3)
       gy=j1*bb(2,1)+j2*bb(2,2)+j3*bb(2,3)
       gz=j1*bb(3,1)+j2*bb(3,2)+j3*bb(3,3)
       gg=gx*gx+gy*gy+gz*gz
       dif=abs(zw(i1,i2,i3))**2
       dif_tot=dif_tot+dif
       if ( j1==0 .and. j2==0 .and. j3==0 ) cycle
       if ( dif < dif_min ) then
          dif_min=dif
          gmin=gg
       end if
       if ( dif > dif_max ) then
          dif_max=dif
          gmax=gg
       end if
       if ( gg < gg_min ) then
          gg_min=gg
          dif_gg_min=dif
       end if
       if ( gg > gg_max ) then
          gg_max=gg
          dif_gg_max=dif
       end if
    end do
    end do
    end do
    call check_disp_switch( disp, 0 )
    if ( disp ) then
       write(*,*)
       write(*,'(1x,"   max_diff",i1,"=",es14.5," at gg=",f10.5)') icount,dif_max, gmax
       write(*,'(1x,"diff@gg_min",i1,"=",es14.5," at gg=",f10.5)') icount,dif_gg_min,gg_min
       write(*,'(1x,"   min_diff",i1,"=",es14.5," at gg=",f10.5)') icount,dif_min, gmin
       write(*,'(1x,"diff@gg_max",i1,"=",es14.5," at gg=",f10.5)') icount,dif_gg_max,gg_max
       write(*,'(1x," diff_total",i1,"=",es14.5)') icount,dif_tot
    end if
  END SUBROUTINE analyze_residue

END MODULE sqerr_g_module


!
! Newman-Penrose fields of definite spin and boost weight
! for the background Kerr spacetime.
! The fields have been rescaled by the highest power of R that allows
! them to remain regular and nonzero from the black hole horizon to
! future null infinity.
!
! rh_0:   rescaled by R
! mu_0:   rescaled by R
! ta_0:   rescaled by R^2
! pi_0:   rescaled by R^2
! ep_0:   rescaled by R^2
! psi2_0: rescaled by R^3
!
!=============================================================================
module mod_bkgrd_np
!=============================================================================
   use mod_prec
   use mod_params, only: &
      ZI, nx, ny, &
      cl=>compactification_length, &
      bhm=>black_hole_mass, &
      bhs=>black_hole_spin

   use mod_cheb, only: R=>Rarr
   use mod_swal, only: cy=>cyarr, sy=>syarr
!=============================================================================
   implicit none
   private

   public :: bkgrd_np_init

   complex(rp), allocatable, public, protected :: &
      mu_0(:,:), ta_0(:,:), pi_0(:,:), rh_0(:,:), ep_0(:,:), psi2_0(:,:)
!=============================================================================
contains
!=============================================================================
   subroutine bkgrd_np_init()
      allocate(mu_0(nx,ny))
      allocate(ta_0(nx,ny))
      allocate(pi_0(nx,ny))
      allocate(rh_0(nx,ny))
      allocate(ep_0(nx,ny))
      allocate(psi2_0(nx,ny))
      !----------------------------
      mu_0 = &
         1.0_rp / (-(cl**2) + ZI*bhs*R*cy)
      !----------------------------
      ta_0 = &
         (ZI*bhs*sy/sqrt(2.0_rp)) / ((cl**2 - ZI*bhs*R*cy)**2)
      !----------------------------
      pi_0 = &
      -  (ZI*bhs*sy/sqrt(2.0_rp)) / (cl**4 + (bhs*cy*R)**2)
      !----------------------------
      rh_0 = &
      -  0.5_rp*( &
            cl**4 - 2.0_rp*(cl**2)*bhm*R + (bhs*R)**2 &
         )/( &
            ((cl**2 - ZI*bhs*R*cy)**2)*(cl**2 + ZI*bhs*R*cy) &
         )
      !----------------------------
      ep_0 = &
         0.5_rp*( &
            (cl**2)*bhm - (bhs**2)*R - ZI*bhs*(cl**2-bhm*R)*cy &
         )/( &
            ((cl**2 - ZI*bhs*R*cy)**2)*(cl**2 + ZI*bhs*R*cy) &
         )
      !----------------------------
      psi2_0 = &
      -  bhm / ((cl**2 - ZI*bhs*R*cy)**3)
      !----------------------------
   end subroutine bkgrd_np_init
!=============================================================================
end module mod_bkgrd_np


text:
      subroutine rpn2cons_fw_manifold(ixy,maxm,meqn,mwaves,maux,mbc,
     &                            mx,ql,qr,auxl,auxr,fwave,s,amdq,apdq)
      implicit none

      integer maxm, mbc,mwaves,meqn,maux, mx
      integer ixy

      double precision fwave(meqn,mwaves, 1-mbc:maxm+mbc)
      double precision    s(mwaves,1-mbc:maxm+mbc)
      double precision   ql(meqn,1-mbc:maxm+mbc)
      double precision   qr(meqn,1-mbc:maxm+mbc)
      double precision amdq(meqn,1-mbc:maxm+mbc)
      double precision apdq(meqn,1-mbc:maxm+mbc)
      double precision auxl(maux,1-mbc:maxm+mbc)
      double precision auxr(maux,1-mbc:maxm+mbc)

      integer i, iface, m, idir
      double precision qll,qrr
      double precision urrot, ulrot, g, uhat
      double precision nv(2), ur(2), ul(2)
      double precision g1, g2, n1, n2

      logical qad_debug
      common /debug_common/ qad_debug

      idir = ixy-1
      do i = 2-mbc, mx+2
         !! Edge length;  assumes that edge length is stored at the
         !! left edge.
         g = auxl(12 + 2*idir,i)

c        # Cell-centered values
         ur(1) = auxl(2,i)
         ur(2) = auxl(3,i)

         ul(1) = auxr(2,i-1)
         ul(2) = auxr(3,i-1)

c        # left edge   : 4,5
c        # bottom-edge : 9,10
         nv(1) = auxl(4 + 4*idir,i)
         nv(2) = auxl(5 + 4*idir,i)

         urrot = g*(nv(1)*ur(1) + nv(2)*ur(2))
         ulrot = g*(nv(1)*ul(1) + nv(2)*ul(2))

         qrr = ql(1,i)
         qll = qr(1,i-1)

         if (qad_debug) then
!!            qrr = 1.d0
!!            qll = 1.d0
         endif

c        # Use Roe-average values
         uhat = (ulrot + urrot)/2.d0

         if (uhat .ge. 0) then
            amdq(1,i) = 0.d0
            apdq(1,i) = urrot*qrr - ulrot*qll
         else
            amdq(1,i) = urrot*qrr - ulrot*qll
            apdq(1,i) = 0.d0
         endif
         fwave(1,1,i) = urrot*qrr - ulrot*qll
         s(1,i) = uhat
      enddo

      return
      end

max_stars_repo_name: ECLAIRWaveS/ForestClaw

max_issues_repo_name: ECLAIRWaveS/ForestClaw

max_forks_repo_name: ECLAIRWaveS/ForestClaw


text:
! { dg-do compile }
       subroutine foo (a)
       real t, a, baz
       call bar (*10)
       t = 2 * baz ()
       IF (t.gt.0) t = baz ()
10     END

max_stars_repo_name: maurizioabba/rose

max_issues_repo_name: sujankh/rose-matlab

max_forks_repo_name: sujankh/rose-matlab


text:
C    @(#)kompai.f	20.3 2/13/96
        integer function kompai (i,j)

C       This subroutine determines the relative sorting order of two
C       "I" intertie entities ARCINT(*,I) and ARCINT(*,J)

        include 'ipfinc/parametr.inc'
        include 'ipfinc/arcntl.inc'

        if ( i .eq. j) then
           kompai = 0
        else
           kompai = kompr (arcint(1,i),arcint(1,j),junk)
           if (kompai .eq. 0) then
              kompai = kompr (arcint(2,i),arcint(2,j),junk)
           endif
        endif
        return
        end

max_stars_repo_name: mbheinen/bpa-ipf-tsp

max_issues_repo_name: cuihantao/bpa-ipf-tsp

max_forks_repo_name: mbheinen/bpa-ipf-tsp


text:
module rmsd_m
  use v3d_func_rep
  use structure_c
  use llist_c
  use mk
  implicit none
  save
  private
  public :: rmsd_init, rmsd_set_anc_s1, rmsd_set_anc_s2, rmsd_calc, rmsd_set

  type anchor
    integer, dimension(3) :: i, t
    double precision, dimension(3) :: d
  end type

  type(structure), pointer :: s1 => null(), s2 => null()
  integer :: natoms = 0
  double precision :: am_eps = 1.d0, rmsdlim = .5d0
  logical :: mirror = .true.

  type(anchor) :: anc_s1, anc_s2
  double precision, dimension(:,:), allocatable :: s1_coords, s2_coords
  integer, dimension(:), allocatable :: atypes, ntypes

contains
  subroutine rmsd_set(rmsdlimit,mirrorflag,eps)
    double precision :: rmsdlimit, eps
    logical :: mirrorflag

    am_eps = eps
    mirror = mirrorflag
    rmsdlim = rmsdlimit
  end subroutine

  subroutine rmsd_init(samplestruc)
    type(structure) :: samplestruc
    integer :: natyp, atyptmp, i

    if (natoms .ne. 0) then
      call rmsd_clr()
    end if

    natoms = struc_get_natoms(samplestruc)
    allocate(s1_coords(3,natoms),s2_coords(3,natoms))

    natyp = samplestruc%lbtype(0)%i(0)
    allocate(atypes(natyp),ntypes(0:natyp))

    ntypes(0) = natyp
    do i = 1, natyp
      atyptmp = samplestruc%lbtype(0)%i(i)
      atypes(i) = atyptmp
      ntypes(i) = samplestruc%lbtype(atyptmp)%i(0)
    end do
  end subroutine

  subroutine rmsd_clr()
    deallocate(s1_coords,s2_coords,atypes,ntypes)
    natoms = 0
  end subroutine

  subroutine rmsd_set_anc_s1(s1_in)
    type(structure), target :: s1_in

    if (struc_get_natoms(s1_in) .ne. natoms) then
      call rmsd_init(s1_in)
    end if

    s1 => s1_in

    call anc_fix(s1,anc_s1,s1_coords)

  end subroutine

  subroutine rmsd_set_anc_s2(s2_in)
    type(structure), target :: s2_in

    if (struc_get_natoms(s2_in) .ne. natoms) then
      call rmsd_init(s2_in)
    end if

    s2 => s2_in

    call anc_fix(s2,anc_s2,s2_coords)

  end subroutine

  subroutine rmsd_calc(rmsd,anccnt)
    integer :: anccnt, tmpcnt1, tmpcnt2
    double precision :: rmsd, rmsdtmp

    rmsd = 999.d0

    call rmsd_match_struc(s1,anc_s1,s1_coords,s2,rmsdtmp,tmpcnt1)
    rmsd = min(rmsd,rmsdtmp)
    call rmsd_match_struc(s2,anc_s2,s2_coords,s1,rmsdtmp,tmpcnt2)
    rmsd = min(rmsd,rmsdtmp)

    anccnt = tmpcnt1 + tmpcnt2
  end subroutine

  subroutine rmsd_match_struc(mdl,anc_mdl,mdl_coords,tgt,rmsd,anccnt)
    type(structure) :: mdl, tgt
    type(anchor) :: anc_mdl
    type(llist) :: anc_list_tgt
    double precision, dimension(3,natoms) :: mdl_coords
    integer, dimension(3) :: sample
    double precision :: rmsdtmp, rmsd
    integer :: anccnt
    logical :: liststat

    rmsd = 999.d0
    anccnt = 0

    call rmsd_match_anc(tgt,mdl,anc_mdl,anc_list_tgt)

    call list_rewind(anc_list_tgt)

    liststat = list_status(anc_list_tgt)

    do while (liststat)
      !~if (anccnt .gt. 2 + natoms) exit
      if (rmsd .le. rmsdlim) exit
      anccnt = anccnt + 1
      call superpose(tgt,transfer(list_get(anc_list_tgt),sample),mdl,mdl_coords,rmsdtmp)
      call list_next(anc_list_tgt,liststat)
      rmsd = min(rmsd,rmsdtmp)
    end do

    call list_clear(anc_list_tgt)
  end subroutine

  subroutine rmsd_match_anc(tgt,mdl,anc_mdl,bucket)
    type(structure) :: mdl, tgt
    type(anchor) :: anc_mdl
    type(llist) :: bucket, bucket1, bucket2
    double precision :: epstmp, tmpd1, tmpd2, tmpd3, tmpd
    integer :: i, j, k, ii, jj, kk

    epstmp = min(am_eps,anc_mdl%d(1),anc_mdl%d(2),anc_mdl%d(3))

    do i = 1, tgt%lbtype(anc_mdl%t(1))%i(0)
      ii = tgt%lbtype(anc_mdl%t(1))%i(i)
      do j = 1, tgt%lbtype(anc_mdl%t(2))%i(0)
        jj = tgt%lbtype(anc_mdl%t(2))%i(j)

        tmpd1 = abs(get_dist(struc_get_coords(tgt,ii),struc_get_coords(tgt,jj))-anc_mdl%d(1))
        if (tmpd1 .ge. epstmp) cycle

        do k = 1, tgt%lbtype(anc_mdl%t(3))%i(0)
          kk = tgt%lbtype(anc_mdl%t(3))%i(k)

          tmpd2 = abs(get_dist(struc_get_coords(tgt,ii),struc_get_coords(tgt,kk))-anc_mdl%d(2))
          tmpd3 = abs(get_dist(struc_get_coords(tgt,jj),struc_get_coords(tgt,kk))-anc_mdl%d(3))
          if (tmpd2 .ge. epstmp .or. tmpd3 .ge. epstmp) cycle

          tmpd = (tmpd1 + tmpd2 + tmpd3) / 3.d0 !max(tmpd1,tmpd2,tmpd3)

          if (tmpd .lt. 2*rmsdlim) then
            call list_add(bucket,transfer((/ii,jj,kk/),list_data))
          else if (tmpd .lt. am_eps*.5d0) then
            call list_add(bucket1,transfer((/ii,jj,kk/),list_data))
          else! if (tmpd .lt. 4*rmsdlim) then
            call list_add(bucket2,transfer((/ii,jj,kk/),list_data))
          end if

        end do
      end do
    end do

    call list_merge(bucket, bucket1)
    call list_merge(bucket, bucket2)
  end subroutine

  subroutine superpose(tgt,anc_tgt_i,mdl,mdl_coords,rmsd)
    type(structure) :: mdl, tgt
    integer, dimension(3) :: anc_tgt_i
    double precision :: rmsd1, rmsd2, rmsd
    integer :: i
    double precision, dimension(3,natoms) :: mdl_coords, mdl_tcrd, tgt_tcrd

    call anc_superpose(tgt,anc_tgt_i,tgt_tcrd)
    call assign_atoms(mdl,mdl_coords,tgt,mdl_tcrd,tgt_tcrd)
    call rmsd_quat(mdl_tcrd,tgt_tcrd,rmsd1)
    if (mirror) then
      do i = 1, natoms
        mdl_coords(:,i) = get_refl_plane_n((/0.d0,0.d0,1.d0/),mdl_coords(:,i))
      end do
      call assign_atoms(mdl,mdl_coords,tgt,mdl_tcrd,tgt_tcrd)
      call rmsd_quat(mdl_tcrd,tgt_tcrd,rmsd2)
      rmsd = min(rmsd1,rmsd2)
    else
      rmsd = rmsd1
    end if
  end subroutine

  subroutine anc_superpose(tgt,anc_tgt_i,tgt_coordstmp)
    type(structure) :: tgt
    integer, dimension(3) :: anc_tgt_i
    double precision, dimension(3) :: tx, ty, vec
    double precision, dimension(3,3) :: tmat_tgt
    double precision, dimension(3,natoms) :: tgt_coordstmp
    integer :: i

    tx(:) = get_normal(struc_get_coords(tgt,anc_tgt_i(2)) - struc_get_coords(tgt,anc_tgt_i(1)))
    vec(:) = struc_get_coords(tgt,anc_tgt_i(3)) - struc_get_coords(tgt,anc_tgt_i(1))
    ty(:) = get_normal(vec(:) - get_sc_prod(tx,vec)*tx(:))

    tmat_tgt(1,:) = tx
    tmat_tgt(2,:) = ty
    tmat_tgt(3,:) = get_cr_prod(tx,ty)

    do i = 1, natoms
      tgt_coordstmp(:,i) = get_lin_map(tmat_tgt,struc_get_coords(tgt,i))
    end do

  end subroutine

  subroutine assign_atoms(mdl,mdl_coords,tgt,mdl_coordstmp,tgt_coordstmp)
    type(structure) :: mdl, tgt
    integer :: tn, i, j, k, nttn
    integer, dimension(natoms) :: tmpsol, mdl_idx
    double precision, dimension(natoms*natoms) :: distances
    double precision, dimension(3,natoms) :: mdl_coords, mdl_coordstmp, tgt_coordstmp

    do tn = 1, ntypes(0)
      if (ntypes(tn) .eq. 1) then
        mdl_idx(mdl%lbtype(atypes(tn))%i(1)) = tgt%lbtype(atypes(tn))%i(1)
      else
        nttn = ntypes(tn)
        k = 0
        do i = 1, nttn
          do j = 1, nttn
            k = k + 1
            distances(k) = get_dist(mdl_coords(:,mdl%lbtype(atypes(tn))%i(j)),tgt_coordstmp(:,tgt%lbtype(atypes(tn))%i(i)))
          end do
        end do

        call mk_ass(nttn,reshape(distances,(/nttn,nttn/)),tmpsol(1:nttn))

        do i = 1, nttn
          mdl_idx(mdl%lbtype(atypes(tn))%i(i)) = tgt%lbtype(atypes(tn))%i(tmpsol(i))
        end do

      end if
    end do

    do i = 1, natoms
      mdl_coordstmp(:,mdl_idx(i)) = mdl_coords(:,i)
      !~write(*,*) mdl_idx(i)
    end do
  end subroutine

  subroutine rmsd_quat(crd1,crd2,rmsd)
    double precision, dimension(3,natoms) :: crd1, crd2
    double precision, dimension(3,3) :: comat
    double precision, dimension(4,4) :: fmat
    double precision, dimension(4) :: ew
    double precision, dimension(136) :: work
    double precision :: rmsd
    integer :: k, info
    external dsyev

    comat = calc_comat(crd1,crd2)
    fmat = calc_fmat(comat)

    call dsyev('N','L',4,fmat,4,ew,work,136,info)

    if (info .eq. 0) then
      rmsd = 0.d0
      do k = 1, natoms
        rmsd = rmsd + get_nrm_sq(crd1(:,k)) + get_nrm_sq(crd2(:,k))
      end do

      rmsd = dsqrt(abs(rmsd - 2*ew(4))/natoms)
    else
      rmsd = 666.d0
    end if
  end subroutine

  function calc_comat(crd1,crd2) result(mat)
    integer :: i, j, k
    double precision, dimension(3,3) :: mat
    double precision, dimension(3,natoms) :: crd1, crd2

    do i = 1, 3
      do j = 1, 3
        mat(i,j) = 0.d0
        do k = 1, natoms
          mat(i,j) = mat(i,j) + crd1(i,k)*crd2(j,k)
        end do
      end do
    end do
  end function

  function calc_fmat(comat) result(fmat)
    double precision, dimension(3,3) :: comat
    double precision, dimension(4,4) :: fmat

    fmat(1,1) = comat(1,1) + comat(2,2) + comat(3,3)
    fmat(2,1) = comat(2,3) - comat(3,2)
    fmat(3,1) = comat(3,1) - comat(1,3)
    fmat(4,1) = comat(1,2) - comat(2,1)
    fmat(2,2) = comat(1,1) - comat(2,2) - comat(3,3)
    fmat(3,2) = comat(1,2) + comat(2,1)
    fmat(4,2) = comat(1,3) + comat(3,1)
    fmat(3,3) =-comat(1,1) + comat(2,2) - comat(3,3)
    fmat(4,3) = comat(2,3) + comat(3,2)
    fmat(4,4) =-comat(1,1) - comat(2,2) + comat(3,3)

  end function

  subroutine anc_fix(struc,anc,coords)
    type(structure) :: struc
    type(anchor) :: anc
    double precision, dimension(3,natoms) :: coords

    integer :: i, j
    double precision :: dist, tmpdist
    double precision, dimension(3) :: mc1, mc2, mc3, mx, my, vec
    double precision, dimension(3,3) :: tmat

    dist = 0.d0

    do i = 1, natoms-1
      do j = i+1, natoms
        tmpdist = get_dist(struc_get_coords(struc,i),struc_get_coords(struc,j))

        if (tmpdist .le. dist) cycle

        dist = tmpdist
        anc%i(1) = i
        anc%i(2) = j
      end do
    end do

    dist = 0.d0

    do i = 1, natoms
      tmpdist = get_dist_to_line(struc_get_coords(struc,anc%i(1)),struc_get_coords(struc,anc%i(2)),struc_get_coords(struc,i))

      if (tmpdist .le. dist) cycle

      dist = tmpdist
      anc%i(3) = i
    end do

    do i = 1, 3
      anc%t(i) = atlabel(struc_get_atmtype(struc,anc%i(i)))
    end do

    mc1 = struc_get_coords(struc,anc%i(1))
    mc2 = struc_get_coords(struc,anc%i(2))
    mc3 = struc_get_coords(struc,anc%i(3))

    anc%d(1) = get_dist(mc1,mc2)
    anc%d(2) = get_dist(mc1,mc3)
    anc%d(3) = get_dist(mc3,mc2)

    mx = get_normal(mc2 - mc1)
    vec(:) = mc3 - mc1
    my = get_normal(vec(:) - get_sc_prod(mx,vec)*mx(:))

    tmat(1,:) = mx
    tmat(2,:) = my
    tmat(3,:) = get_cr_prod(mx,my)

    do i = 1, natoms
      coords(:,i) = get_lin_map(tmat,struc_get_coords(struc,i))
    end do
  end subroutine

end module

max_stars_repo_name: frostbaum/RMSDysator

max_issues_repo_name: frostbaum/RMSDysator

max_forks_repo_name: frostbaum/RMSDysator


text:
      double complex function BSYALggppmphp(e1,p2,p3,e4,za,zb,zab,zba)
      implicit none
C-----Authors: John Campbell and Keith Ellis, November 2011
C---- arXiv:1101.5947 [hep-ph], Eq. (94)
C---- higher-point (3- and 4-point) contributions only
C---- (These are twiddle functions, c.f.arXiv:1101.5947[hep-ph],Eq.(91))
      include 'constants.f'
      include 'masses.f'
      include 'zprods_decl.f'
      include 'sprods_com.f'
      include 'zabprods_decl.f'
      include 'qdef.f'
      include 'massiveintegrals.f'
      double precision xbeta2,s23,mt3
      double complex BSYA0ggppmp,AT0ggppmp,tmp
      integer e1,p2,p3,e4,j
      j=p2-1
      mt3=mt**3
      s23=s(p2,p3)
      xbeta2=1d0-4d0*mt**2/s23

c---- SB see changes in BSYALggppmp.f
      AT0ggppmp=-BSYA0ggppmp(e1,p2,p3,e4,za,zb,zab,zba)
      tmp =  + I41x2x3x4(j) * (  - 1.D0/2.D0*za(e1,p3)*za(e4,p3
     &    )*zb(p3,p2)*zab(p3,q1,p2)*mt - zab(p2,q1,p2)*s23*AT0ggppmp )
      tmp = tmp + I31x23x4 * (  - 6.D0/(za(p3,p2))*za(
     &    e1,p2)*za(e4,p3)*zab(p3,q1,p2)**2*s23**(-2)*xbeta2**(-2)*mt3
     &     - 6.D0/(za(p3,p2))*za(e1,p3)*za(e4,p2)*zab(p3,q1,p2)**2*
     &    s23**(-2)*xbeta2**(-2)*mt3 + 1/(zab(p2,q1,p2))/(za(p3,p2))*
     &    za(p3,p2)*za(e4,e1)*zab(p3,q1,p2)**2*mt + 2.D0/(zab(p2,q1,p2)
     &    )/(za(p3,p2))*za(e1,p2)*za(e4,p3)*zab(p3,q1,p2)**2*mt - 1.D0/
     &    2.D0/(zab(p2,q1,p2))/(zab(p2,q1,p2))/(za(p3,p2))*za(e1,p3)*
     &    za(e4,p3)*zab(p2,q1,p2)**2*zab(p3,q1,p2)*mt + 1.D0/2.D0/(zab(
     &    p2,q1,p2))/(zab(p2,q1,p2))/(za(p3,p2))*za(e1,p3)*za(e4,p3)*
     &    zab(p2,q1,p2)*zab(p3,q1,p2)*s23*mt - 1/(zab(p2,q1,p2))/(zab(
     &    p2,q1,p2))/(za(p3,p2))*za(e1,p3)*za(e4,p3)*zab(p3,q1,p2)*s23*
     &    mt3 - 1.D0/4.D0/(zab(p2,q1,p3))*za(e1,p2)*za(e4,p2)*zb(p3,p2)
     &    *zab(p3,q1,p2)**2*s23**(-1)*mt*xbeta2**(-1) + 1.D0/4.D0/(zab(
     &    p2,q1,p3))*za(e1,p3)*za(e4,p3)*zb(p3,p2)*zab(p2,q1,p3)*zab(p3
     &    ,q1,p2)*s23**(-1)*mt*xbeta2**(-1) - 1/(zab(p2,q1,p3))*za(e4,
     &    e1)*zab(p3,q1,p2)*mt3 )
      tmp = tmp + I31x23x4 * (  - 6.D0/(zab(p2,q1,p3))
     &    /(za(p3,p2))*za(e1,p2)*za(e4,p2)*zab(p2,q1,p2)*zab(p3,q1,p2)
     &    **2*s23**(-2)*xbeta2**(-2)*mt3 - 3.D0/4.D0/(zab(p2,q1,p3))/(
     &    za(p3,p2))*za(e1,p2)*za(e4,p2)*zab(p3,q1,p2)**2*mt*
     &    xbeta2**(-2) + 1.D0/2.D0/(zab(p2,q1,p3))/(za(p3,p2))*za(e1,p2
     &    )*za(e4,p2)*zab(p3,q1,p2)**2*mt + 1/(zab(p2,q1,p3))/(za(p3,p2
     &    ))*za(e1,p2)*za(e4,p3)*zab(p2,q1,p2)*zab(p3,q1,p2)*mt*
     &    xbeta2**(-1) + 1/(zab(p2,q1,p3))/(za(p3,p2))*za(e1,p2)*za(e4,
     &    p3)*zab(p2,q1,p2)*zab(p3,q1,p2)*mt + 2.D0/(zab(p2,q1,p3))/(
     &    za(p3,p2))*za(e1,p2)*za(e4,p3)*zab(p3,q1,p2)*xbeta2**(-1)*mt3
     &     + 2.D0/(zab(p2,q1,p3))/(za(p3,p2))*za(e1,p2)*za(e4,p3)*zab(
     &    p3,q1,p2)*s23*mt + 6.D0/(zab(p2,q1,p3))/(za(p3,p2))*za(e1,p3)
     &    *za(e4,p3)*zab(p2,q1,p2)*zab(p2,q1,p3)*zab(p3,q1,p2)*
     &    s23**(-2)*xbeta2**(-2)*mt3 + 3.D0/4.D0/(zab(p2,q1,p3))/(za(p3
     &    ,p2))*za(e1,p3)*za(e4,p3)*zab(p2,q1,p3)*zab(p3,q1,p2)*mt*
     &    xbeta2**(-2) )
      tmp = tmp + I31x23x4 * ( 2.D0/(zab(p2,q1,p3))/(
     &    zab(p2,q1,p3))*za(e1,p2)*za(e4,p2)*zb(p3,p2)*zab(p2,q1,p2)*
     &    zab(p3,q1,p2)*s23**(-1)*xbeta2**(-1)*mt3 + 1/(zab(p2,q1,p3))
     &    /(zab(p2,q1,p3))*za(e1,p2)*za(e4,p2)*zb(p3,p2)*zab(p3,q1,p2)*
     &    xbeta2**(-1)*mt3 )
      tmp = tmp + I32x3x41 * ( 1.D0/2.D0/(zab(p2,q1,p2)
     &    )*za(e1,p3)*za(e4,p3)*zb(p3,p2)*zab(p3,q1,p2)*mt )
      tmp = tmp + I312x3x4(j) * (  - 1/(za(p3,p2))*za(
     &    e1,p3)*za(e4,p3)*zab(p3,q1,p2)*mt )
      tmp = tmp + I461x2x3x4(j) * ( 1/(zab(p2,q1,p2))/(
     &    zab(p2,q1,p2))*za(e1,p3)*za(e4,p3)*zb(p3,p2)*zab(p3,q1,p2)*
     &    mt3 + 2.D0/(zab(p2,q1,p2))/(zab(p2,q1,p3))*za(e1,p2)*za(e4,p3
     &    )*zb(p3,p2)*zab(p3,q1,p2)*mt3 - 1/(zab(p2,q1,p2))/(zab(p2,q1,
     &    p3))*za(e4,e1)*zab(p2,q1,p2)**2*zab(p3,q1,p2)*mt + 1/(zab(p2,
     &    q1,p2))/(zab(p2,q1,p3))*za(e4,e1)*zab(p2,q1,p3)*zab(p3,q1,p2)
     &    **2*mt - 2.D0/(zab(p2,q1,p3))*za(e4,e1)*zab(p3,q1,p2)*mt3 +
     &    1/(zab(p2,q1,p3))/(zab(p2,q1,p3))/(za(p3,p2))*za(e1,p2)*za(e4
     &    ,p2)*zab(p2,q1,p2)*zab(p3,q1,p2)*s23*mt + 1/(zab(p2,q1,p3))/(
     &    zab(p2,q1,p3))/(za(p3,p2))*za(e1,p2)*za(e4,p2)*zab(p2,q1,p3)*
     &    zab(p3,q1,p2)**2*mt )
      tmp = tmp + I2h23 * (  - 12.D0/(za(p3,p2))*za(e1,
     &    p2)*za(e4,p3)*zab(p3,q1,p2)**2*s23**(-3)*xbeta2**(-2)*mt3 -
     &    1/(za(p3,p2))*za(e1,p2)*za(e4,p3)*zab(p3,q1,p2)**2*s23**(-2)*
     &    mt*xbeta2**(-1) - 12.D0/(za(p3,p2))*za(e1,p3)*za(e4,p2)*zab(
     &    p3,q1,p2)**2*s23**(-3)*xbeta2**(-2)*mt3 - 1/(za(p3,p2))*za(e1
     &    ,p3)*za(e4,p2)*zab(p3,q1,p2)**2*s23**(-2)*mt*xbeta2**(-1) -
     &    1/(zab(p2,q1,p3))*za(e1,p2)*za(e4,p3)*zb(p3,p2)*zab(p3,q1,p2)
     &    *s23**(-1)*mt + 1/(zab(p2,q1,p3))*za(e4,e1)*zab(p2,q1,p2)*
     &    zab(p3,q1,p2)*s23**(-1)*mt - 12.D0/(zab(p2,q1,p3))/(za(p3,p2)
     &    )*za(e1,p2)*za(e4,p2)*zab(p2,q1,p2)*zab(p3,q1,p2)**2*
     &    s23**(-3)*xbeta2**(-2)*mt3 - 1/(zab(p2,q1,p3))/(za(p3,p2))*
     &    za(e1,p2)*za(e4,p2)*zab(p2,q1,p2)*zab(p3,q1,p2)**2*s23**(-2)*
     &    mt*xbeta2**(-1) - 3.D0/2.D0/(zab(p2,q1,p3))/(za(p3,p2))*za(e1
     &    ,p2)*za(e4,p2)*zab(p3,q1,p2)**2*s23**(-1)*mt*xbeta2**(-2) + 2.
     &    D0/(zab(p2,q1,p3))/(za(p3,p2))*za(e1,p2)*za(e4,p3)*zab(p2,q1,
     &    p2)*zab(p3,q1,p2)*s23**(-1)*mt*xbeta2**(-1) )
      tmp = tmp + I2h23 * ( 1/(zab(p2,q1,p3))/(za(p3,p2
     &    ))*za(e1,p2)*za(e4,p3)*zab(p3,q1,p2)*mt*xbeta2**(-1) + 12.D0
     &    /(zab(p2,q1,p3))/(za(p3,p2))*za(e1,p3)*za(e4,p3)*zab(p2,q1,p2
     &    )*zab(p2,q1,p3)*zab(p3,q1,p2)*s23**(-3)*xbeta2**(-2)*mt3 +
     &    1/(zab(p2,q1,p3))/(za(p3,p2))*za(e1,p3)*za(e4,p3)*zab(p2,q1,
     &    p2)*zab(p2,q1,p3)*zab(p3,q1,p2)*s23**(-2)*mt*xbeta2**(-1) + 3.
     &    D0/2.D0/(zab(p2,q1,p3))/(za(p3,p2))*za(e1,p3)*za(e4,p3)*zab(
     &    p2,q1,p3)*zab(p3,q1,p2)*s23**(-1)*mt*xbeta2**(-2) - 1/(zab(p2
     &    ,q1,p3))/(zab(p2,q1,p3))/(za(p3,p2))*za(e1,p2)*za(e4,p2)*zab(
     &    p2,q1,p2)*zab(p3,q1,p2)*mt*xbeta2**(-1) - 2.D0/(zab(p2,q1,p3)
     &    )/(zab(p2,q1,p3))/(za(p3,p2))*za(e1,p2)*za(e4,p2)*zab(p3,q1,
     &    p2)*xbeta2**(-1)*mt3 )

c---- SB see changes in BSYALggppmp.f
      BSYALggppmphp=-tmp

      return
      end

max_stars_repo_name: tmartini/JHUGen

max_issues_repo_name: tmartini/JHUGen

max_forks_repo_name: tmartini/JHUGen


text:
c               Copyright 1993 Colorado State University
c                       All Rights Reserved

C ... OMADIN.F

      subroutine omadin(tomatch,curomad)

      implicit none
      include 'const.inc'
      include 'parcp.inc'

c ... Argument declarations
      character*5 tomatch
      character*5 curomad

c ... Read in the new omad type

c ... Local variables
      integer   ii, OMADLNS
      double precision temp
      character fromdat*5, name*20, string*80

c ... Number of lines to read for each type
      parameter (OMADLNS =  7)

      open(unit=11, file='omad.100',status='OLD')
      rewind(11)
20    continue
      read(11, 100, end=200) fromdat
      if (tomatch .ne. fromdat) then
        do 25 ii = 1, OMADLNS
          read(11, *) temp, name
25      continue
        goto 20
      else
        read(11, *) temp, name
        omadtyp = int(temp)
        call ckdata('schedl','omadty',name)
        read(11, *) astgc, name
        call ckdata('schedl','astgc',name)
        read(11, *) astlbl, name
        call ckdata('schedl','astlbl',name)
        read(11, *) astlig, name
        call ckdata('schedl','astlig',name)
        read(11, *) astrec(N), name
        call ckdata('schedl','astrec',name)
        astrec(N) = 1.0 / astrec(N)
        read(11, *) astrec(P), name
        call ckdata('schedl','astrec',name)
        astrec(P) = 1.0 / astrec(P)
        read(11, *) astrec(S), name
        call ckdata('schedl','astrec',name)
        astrec(S) = 1.0 / astrec(S)
        close(11)
        curomad = tomatch
      endif

      return

100   format(a5)

200   continue
      call message('  Error reading in values from the omad.100 file.')
      string = '   Looking for type: ' // tomatch
      call message(string)
      STOP

      end


text:
	SUBROUTINE SV_DCOD  ( curtim, gemfil, stntbl, prmfil,
     +			      iadstn, maxtim, nhours, iret )
C************************************************************************
C* SV_DCOD								*
C*									*
C* This subroutine decodes SLS tornado and thunderstorm watch bulletins	*
C* and writes the data to an ASCII file.				*
C*									*
C* SV_DCOD  ( CURTIM, GEMFIL, STNTBL, PRMFIL, IADSTN, MAXTIM, NHOURS,   *
C*		IRET )    						*
C*									*
C* Input parameters:							*
C*	CURTIM		CHAR*		Current time for input data	*
C*	GEMFIL		CHAR*		Output file name template	*
C*	STNTBL		CHAR*		Station table			*
C*	PRMFIL		CHAR*		Parameter table file name	*
C*	IADSTN		INTEGER		Number of additional stations	*
C*	MAXTIM		INTEGER		Number of times allowed		*
C*	NHOURS		INTEGER		Number of hours prior to CURTIM	*
C*									*
C* Output parameters:							*
C*	IRET		INTEGER		Return code			*
C*					 -5 = Unable to get bultim	*
C*									*
C**									*
C* Log:									*
C* F. J. Yen/NCEP	12/00	Created from WN_DCOD			*
C* F. J. Yen/NCEP	 1/01	Restructured to disregard '$$' delimeter*
C* F. J. Yen/NCEP	 1/01	Replaced SV_RDTB with DC_STNS		*
C* F. J. Yen/NCEP	 4/01	Added state abbreviation to header line.*
C* F. J. Yen/NCEP        3/02   Checked issue time & false delimeter -  *
C* M. Li/SAIC		 08/02	WN_CNTY -> BR_CNTY			*
C* B. Yin/SAIC           3/04   Changed SS_GTIM to CSS_GTIM             *
C************************************************************************
	INCLUDE		'GEMPRM.PRM'
	INCLUDE		'BRIDGE.PRM'
C*
	CHARACTER*(*)	curtim, gemfil, prmfil, stntbl
C*
	CHARACTER	bultin*(DCMXBF), parms(MMPARM)*4,
     +			starry(5)*2800, filnam*132, errstr*80, wtype*2,
     +			state*2, dattim*11, bultim*12,
     +			wmohdr*8, oristn*8, seqnum*4, cnties*700,
     +			exptim*6, sysdt*12, dattmp*12, county(LLSTFL)*6,
     +			strtim*11, stptim*11, bbb*4
	CHARACTER	adstn(LLSTFL)*8, stnnam(LLSTFL)*32,
     +			stat(LLSTFL)*2, coun(LLSTFL)*2,
     +			tbchrs(LLSTFL)*20
        INTEGER         istarr (5), irdtar (5)
	INTEGER		istnm(LLSTFL), ispri(LLSTFL), itype
	REAL		adlat(LLSTFL), adlon(LLSTFL), selv(LLSTFL)
	LOGICAL		more, morect, cntyol
C------------------------------------------------------------------------
	iret = 0
C
C*	Initialize open file lists. Set the max number of open files.
C*	Set the type of output file and file source.
C
	maxfil = 2
	iftype = 6
 	CALL DC_FINT ( maxfil, iftype, prmfil, ier )
	iflsrc = 2
C
C*	Read the county table.
C
	CALL DC_STNS  ( stntbl, adstn, istnm, stnnam, stat, coun, adlat,
     +		adlon, selv, ispri, tbchrs, nade, ier )
	IF  ( ier .ne. 0 )  THEN
	    RETURN
	END IF
C
C*	Loop until a timeout occurs.
C
	iperr = 0
	DO WHILE ( iperr .eq. 0 )
	    icor = 0
C
C*	    Get the bulletin.
C
	    CALL DC_GBUL ( bultin, lenbul, ifdtyp, iperr )
	    IF ( iperr .eq. 0 ) THEN
		more = .true.
		CALL DC_TEST ( bultin, lenbul, itest, ier )
C
C*		Break bulletin into 5 strings.
C
		CALL ST_CLSL (bultin,'*',' ',5,starry, inumb, ierr)
C
C*		Parse the header info from the bulletin.
C
                CALL DC_GHDR ( bultin, lenbul, seqnum, wmohdr,
     +                         oristn, bultim, bbb, nchar, ierr )
		IF ( ierr .ne. 0 ) THEN
		    CALL DC_WLOG ( 2, 'DC', ierr, ' ', ier )
                    CALL ST_UNPR ( bultin (:80), 80, errstr, len1, ier )
                    CALL DC_WLOG ( 2, 'DCSVRL', 1, errstr(:len1), ier )
                    more = .false.
                END IF
		IF ( more ) THEN
		    CALL SV_GHDR ( bultin, lenbul, icor, wtype,
     +			       iwtchn, state, iers )
                    IF (  bbb .eq. 'COR'  ) icor = 1
                    IF ( iers .lt. 0 ) THEN
			more = .false.
			CALL ST_UNPR ( bultin (:80), 80, errstr,
     +				       len1, ierr )
			CALL DC_WLOG ( 2, 'DCSVRL', iers,
     +				       errstr (:len1), ierr )
		    END IF
		END IF
                IF ( more ) THEN
		    icor = icor + itest
C
C*                  Get the system time, and make a standard GEMPAK time
C*                  from the "current" time.
C
		    itype = 1
                    CALL CSS_GTIM ( itype, sysdt, ier )
                    IF ( curtim .eq. 'SYSTEM' ) THEN
                        dattmp = sysdt
                      ELSE
                        CALL TI_STAN ( curtim, sysdt, dattmp, ier )
                    END IF
                    CALL TI_CTOI ( dattmp, istarr, ier )
C
C*		    Set the GEMPAK date/time. Use bultim to set
C*		    the output file name.
C
		    CALL ST_LSTR ( bultim, len, ier )
                    IF ( len .ne. 6 ) THEN
                        IF ( curtim .eq. 'SYSTEM' ) THEN
                            bultim = dattmp ( 5:6 ) // dattmp ( 8:11 )
                          ELSE
                            iret = -5
			    CALL ST_UNPR ( bultin (:80), 80, errstr,
     +					len1, ierr )
		            CALL DC_WLOG ( 2, 'DCSVRL', iret,
     +					errstr (:len1), ierr )
			    more = .false.
                        END IF
                    END IF
		    IF ( more ) THEN
                        CALL ST_NUMB ( bultim, issue, ier )
                        irday  = issue / 10000
                        irhour = mod ( issue, 10000 ) / 100
                        irmin  = mod ( mod ( issue, 10000 ), 100 )
C
                        CALL DC_ITIM ( istarr, irday, irhour, irmin,
     +                             irdtar, ier )
C
C*                      If invalid values in issue time, use system or
C*                      current time.
C
                        CALL TI_DAYM ( irdtar (1), irdtar (2), ndays,
     +				ier )
                        IF ( irday  .lt. 1 .or. irday  .gt. ndays .or.
     +                       irhour .lt. 0 .or. irhour .gt. 23    .or.
     +                       irmin  .lt. 0 .or. irmin  .gt. 59 )  THEN
                            irday  = istarr (3)
                            irhour = istarr (4)
                            irmin  = istarr (5)
                        END IF
                        CALL DC_ITIM ( istarr, irday, irhour, irmin,
     +                             irdtar, ier )
		        CALL TI_ITOC ( irdtar, dattim, ier )
                        IF ( ier .eq. 0 ) THEN
C
C*                          Set bultim from dattim, in case original
C*			    value
C*                          was invalid.
C
                            bultim = dattim ( 5:6 ) // dattim ( 8:11 )
C
C*		            Remove control characters from
C*			    entire bulletin.
C
		            CALL ST_UNPR ( bultin, lenbul, bultin, lenb,
     +					iret )
C
C*		            Make a file name from the template and the
C*			    time.  Open the file as part of the open
C*			    file list.
C
 		            CALL FL_MNAM ( dattim, gemfil, filnam, ier )
 		            CALL DC_FCYL ( filnam, iflsrc, stntbl,
     +					   iadstn, maxtim, lunf, nparm,
     +					   parms, ierr )
C
C*	                    Check that the file was opened properly.
C
		            IF ( ierr .ne. 0 ) THEN
C
C*	    	                If not, write an error to the decoder
C*			        log file.
C
	    	                CALL DC_WLOG ( 0, 'SF', ierr, filnam,
     +						iret )
                                more = .false.
		            END IF
		            IF ( more ) THEN
C
			        cntyol = .false.
			        morect = .true.
			        npos = 50
			        DO WHILE ( npos .lt. lenb .and. morect )
				    nloc = npos + 1
				    nloce = lenb
				    irdash = INDEX ( bultin(nloc:nloce),
     +							'-' )
				    IF ( irdash .gt. 0 ) THEN
				        nlocmb = nloc + irdash
				        ictybeg = nlocmb - 7
				        CALL SV_CNTT ( bultin, ictybeg,
     +					   lenb, cnties, exptim,
     +					   jx, iers )
				        IF ( iers .eq. 0 ) THEN
				            IF ( .not. cntyol ) THEN
		            	                IF ( wtype .eq. 'TS'
     +						     .or. wtype .eq.
     +							'TN' ) THEN
 	                        	            CALL WN_STFS (
     +						      bultim, istarr,
     +						      exptim, cnties,
     +						      1440, 720,
     +						      bultin, 'DCSVRL',
     +						      strtim, stptim,
     +						      county, numcty,
     +						      iret )
			       		          ELSE
				  	            more = .false.
                            		        END IF
                            		        IF ( (wtype .eq. ' ')
     +							.or.
     +						     (strtim .eq. ' ')
     +							.or.
     +						     (stptim .eq. ' ') )
     +                            	              more = .false.
				              ELSE
					        CALL BR_CNTY ( cnties,
     +						    county, numcty,
     +						    iret )
				            END IF
C
C*				            Write out header (if first
C*					    time) and next county list
C
				            IF ( more ) THEN
					        CALL SV_OUT ( lunf,
     +						      wtype, strtim,
     +						      stptim, iwtchn,
     +						      state, icor,
     +						      county, numcty,
     +						      cntyol, adstn,
     +						      istnm, stnnam,
     +						      stat, coun, adlat,
     +						      adlon, selv,
     +						      ispri, tbchrs,
     +						      nade, iret )
					        cntyol = .true.
				            END IF
				          ELSE
				            CALL ST_UNPR ( bultin (:80),
     +				  	        80, errstr, len1, ierr )
				            CALL DC_WLOG ( 2, 'DCSVRL',
     +					        iers, errstr (:len1),
     +					        ierr )
				        END IF

				      ELSE
				        morect = .false.
			            END IF
				    IF ( morect ) THEN
				        npos = jx
				    END IF
			        END DO
		            END IF
			END IF
                    END IF
                END IF
 	        CALL DC_FCLS ( ier )
	    END IF
	END DO
C*
	RETURN
	END

max_stars_repo_name: oxelson/gempak

max_issues_repo_name: oxelson/gempak

max_forks_repo_name: oxelson/gempak


text:
Describe Users/HollySA here.

Multiwiki sparkly spammer.  bannedgroup Solved for values of SA.